Framework

etiketlenmiş gönderiler

4 Mart 2019 Pazartesi günü PHP başlığında

"Mikro" Ufak PHP Framework

Mikro, küçük, kullanışlı ve hızlı bir PHP framework'tür. İçerisinde ufak tefek işlevsellikler barındırır. İsminden anlaşılabileceği üzere mikro düzeyde işlemler yapmak için idealdir.

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('/', 'App\Controllers\HomeController@index');

route\group([
    'path' => '/admin',
    'namespace' => 'App\Controllers\Admin\\',
    '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

8 Eylül 2018 Cumartesi günü PHP başlığında

DemirApp PHP 7 Uygulama Çatısı

Başlarken

DemirApp uygulama çatısı, kendi ihtiyaçlarımdan yola çıkarak yazdığım, basit ve minimal tutmaya çalıştığım bir uygulama. Küçük ve orta çaplı uygulamaları rahatça geliştirebileceğiniz bu PHP çatısında, PHP ile kod yazarken sıkça ihtiyaç duyduğum metod ve fonksiyonları bir araya getirdim. Umarım faydalı olur.

https://github.com/yidemir/App

Gereksinimler

  • PHP 7.1 ve üzeri
  • JSON yardımcısı
  • Apache, NGINX gibi bir sunucu

Kurulum

Kurulum için önerim, composer paket yöneticisini kullanmanızdır. Eğer kullanmıyorsanız, projenin Github kaynağından indirerek de kullanabilirsiniz.

Composer ile kurulum

$ composer require yidemir/app

ve kodlamaya başlayın:

<?php

use Demir\App;

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

App::get('/', function(){
    echo 'Merhaba dünya!';
});

App::run();

Git ile kurulum

$ git clone https://github.com/yidemir/App.git

App dizininin içine index.php dosyası oluşturun ve çalıştırın:

<?php

use Demir\App;

require __DIR__.'/src/App.php';

App::get('/', function(){
    echo 'Merhaba dünya!';
});

App::run();
Devamını okuyun »