2 min read

FuelPHP Pack Oluşturma

FuelPHP ile uygulama geliştirirken modüler yapının yanı sıra daha rahat ve işlevsel olarak düşündüğüm bir yapı olan paket yapısını sizlere bu yazıda nasıl kullanabileceğinizi anlatacağım.

Paketler FuelPHP’de ayrı bir kütüphane gibi görülür ve sadece kullanıldığı anda çağrılır. Yani siz bir paketi tanımlasanız bile config içinde, kullanmadığınız sürece o sınıfı include etmez. Örnek bir Cookie paketi oluşturalım.

Öncelikle fuel/app/config/config.php dosyasını açalım. İçinde yer alan Always Load kısmında kullanacağımız paketleri belirleyeceğiz. Örnek kod parçacığı;

'always_load'  => array(
	'packages'  => array(
                    'Cookie',
		),
),

Bu kod parçacığı sisteme kullanacağımız paketi tanıtmış oluyor. Yalnız include etmiş değiliz henüz.

  • fuel/packages dizinin altına cookie adında bir klasör oluşturalım. Bu klasör tanımlamış olduğumuz paketin ismi olmalı.
  • Bu dizinin altına bootstrap.php adında bir dosya oluşturup, hangi sınıfları kullanacağımızı ve hangi namespace tanımlamalarını yapacağımızı belirleyeceğiz. Örnek kod parçacığı;
<?php
/**
 * @version    1.0
 * @author     Enes Gür
 */

Autoloader::add_classes(array(
	'Cookie\\Cookie' => __DIR__.'/classes/cookie.php',
));
  •  Bu kod parçacığında Autoloader::add_classess metotunda ki dizide kullanacağımız sınıfın namespace tanımı ve bulunduğu yolu veriyoruz. Yani array’in index’i namespace, içindeki eleman ise kullanılacak sınıfın bulunduğu yol.
  • Bu örnekte cookie sınıfımızı classes adı altında bir klasörde olduğunu söyledik. Şimdi sıra sınıfımızı oluşturmaya geldi.
<?php
namespace Cookie;

/**
 * Description of cookie
 *
 * @author Enes Gür
 * @version 1.0
 */
class Cookie
{
    public static function _init()
    {
        echo "test";
    }
    public static function test()
    {
        echo "ilk metot";
    }
}
  •  namespace’imiz cookie yaptık. Sınıfın ismini de cookie yaptık. Yalnız isterseniz siz sınıfın ismini değiştirip farklı bir isim de kullanabilirsiniz.
  • Sınıfa ait bir _init metotu tanımlı bu metot sınıfı ilk kullandığınızda çalışacak sabit bir metottur. Bunu FuelPHP tanımlı bir şekilde otomatik olarak çağırır ilk include sırasında.
  • Şimdi controller dosyamızda paketimizi çağıralım;
<?php

class Controller_Welcome extends Controller
{
    public function action_index()
    {
        Cookie\Cookie::test();
    }
}
  •  Ekran çıktısı aşağıdaki gibi olacaktır.
testilk metot

Bu paketlere istenirse birden fazla sınıf dahil edilip her sınıfa ait bir _init metotu tanımlayabilirsiniz. Bu sayede paketlerle uygulamanızda daha bağımsız bir yapı olacaktır..