"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