YII Framework Modülleri Arasında Model Erişimi

Share Button

Hobi için uğraştığım proje anlaşılan bu ara epey blog yazısı yazmama vesile olacak.

YII framework de modüler bir proje geliştiriyorsanız projenin herhangibir yerinden modül içerisindeki bir modüle ulaşmak için aşağıdaki yolu izleyebilirsiniz.

1- Framework ün yardımcısını kullanarak veya manuel olarak aşağıdaki klasör yapısını oluşturmak suretiyle yeni bir modül oluşturun.

protected/
  modules/
    blog/
      components/
      models/
      views/
      controllers/

2- Güzel… Şimdi konfigürasyon dosyasına (protected/config/main.php) oluşturduğumuz modülü tanımlayalım.

  array('modules' => array(
    ---
    'blog'
  ));

3- Post isimli yeni bir model oluşturun ve bu modeli yeni oluşturduğunuz modülün model klasörüne (protected/modules/blog/model/) Post.php olarak kayıt edin.

class Post
{
  public function newPost()
  {
    ...
  }
}

4- Şimdi de modül sınıfımızı oluşturalım. Bu modülün içine ekleyeceğimiz getPost metodu az önce oluşturduğumuz modele başka modüllerden erişebilme imkanını sağlayacak. Bu sınıfı yeni oluşturduğunuz modül klasörüne BlogModule.php olarak kayıt edin.

class BlogModule extends CModule
{
  public function init()
  {
    $this->setImport(array('blog.models.*',
                           'blog.components.*'));
  }
  
  public function getPost()
  {
    return new Post();
  }
}

Oluşturduğumuz blog modülü dışında, projenin herhangibir yerinde Post modeline ulaşmamız gerektiğinde aşağıdaki şekilde ulaşabiliriz.

$post = Yii::app()->getModule('blog')->getPost();

Hepsi bu. İyi eğlenceler :) .

Share Button

About İbrahim Gündüz

1983 yılında İstanbul’da doğdu. İlkokul yıllarında cobol ve basic le olan tanışması, yazılıma olan ilgisini arttırdı 2005 yılında. Uludağ Üniversitesi Teknik Bilimler Meslek Yüksek Okulu Elektronik bölümünden mezun olan Gündüz, çeşitli alanlarda faaliyet gösteren kurumlarda yazılım geliştirici olarak görev almıştır. Mesleki ilgi alanları, ölçeklenebilir sistemler, uygulama entegrasyonları ve ödeme sistemleridir. Halen Markafoni back end geliştirici olarak çalışmaktadır.

One comment

  • Fatih P.
    Ocak 19, 2013 - 10:16 pm | Permalink

    magento yu hatirladim gorunce :)

  • Bir Cevap Yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir