"Mikro" Ufak PHP Framework

composer require yidemir/mikro

komutuyla ilgili dizine projeyi dahil ettiğiniz taktirde fonksiyonlar otomatik olarak işlenecektir.

### Özellikler

  • Basit şifreleme/şifre çözme
  • Veritabanı fonksiyonelliği (oluştur, oku, güncelle, sil, sorgula)
  • Sayfalama (dizi sayfalama/veritabanı ilintili sayfalama)
  • Basit talep işleme (request)
  • Yanıt (response) işlemleri (html, json, yönlendirme)
  • Rotacı (rota metodları, gruplama, kaynak işleme)
  • Doğrulama (basit validasyon işlemleri, form validasyonu)
  • Görünüm (view) işleme (Basit ama kullanışlı gövde ve blok işlemleri)

### Neden ihtiyaç duyayım? Orta çaplı ya da büyük bir projede, projeden bağımsız servis geliştirmek için idealdir.

### Nasıl kullanırım? Evvela bir index.php sayfası oluşturalım ve yazmaya başlayalım:

require __DIR__ . '/vendor/autoload.php';

view\path(__DIR__ . '/views'); // görünüm dosyalarının bulunacağı dizin
crypt\secret('foobar'); // şifreleme kullanılacaksa belirlenmesi gereken gizli anahtar

route\get('/', function() {
	$posts = db\table('posts')->get('where comment_count=? and is_published=1', [5]);
	return response\json($posts);
});

route\get('/show/:id', function($id) {
	$post = db\table('posts')->find($id);
	return response\json($post);
});

route\post('/', function() {
	$values = request\all();
	$validator = validator\validate($values, [
		'title' => 'required|maxlen:255',
		'body' => 'required|minlen:5',
		'created_at' => 'required|time',
		'is_published' => 'nullable'
	]);
	
	if ($validator->fails) {
		return response\json([
			'message' => 'Form verileri geçersiz',
			'errors' => $validator->errors,
			'status' => 422
		], 422);
	}
	
	db\table('posts')->insert($validator->values);
	return response\json([
		'message' => 'Gönderi başarıyla eklendi',
		'code' => 200
	]);
});

Veya daha karmaşık bir uygulama yazacaksanız rota gruplama ve rota kaynağı oluşturma özelliğini kullanabilirsiniz.

route\get('/', 'AppControllersHomeController@index');

route\group([
	'path' => '/admin',
	'namespace' => 'AppControllersAdmin\',
	'middleware' => ['check_admin_callback']
], function() {
	route\get('/', 'DashboardController@index');
	route\resource('/posts', 'PostController');
	route\resource('/categories', 'CategoryController');
});

Daha detaylı bilgiler için kaynak kodlarına göz atabilir ve examples dizinini inceleyebilirsiniz. Dökümantasyon için henüz hazır değil.

İyi çalışmalar