CodeIgniter: Harici Nesneler (modeller değildir nesneler, düşünceler, ya da denetleyicileri) uygulamak için en iyi yolu?

3 Cevap php

Ben modelleri, görünüm veya denetleyicisi olmayan bir CodeIgniter projeye bazı derslere eklemek istiyorum. Onlar büyük olasılıkla bir Modeller / Kontrolörleri yılında inşa edilmiş ve çeşitli şekillerde kullanılır. Nerede bu sınıfları depolamak ve CodeIgniter'daki bunları uygulamak için en iyi yolu ne olmalıdır? (Ya da daha genel olarak, herhangi bir MVC tabanlı bir çerçeve?).

EDIT: CodeIgniter bazı belgeler ile bakıldığında, bir yardımcı nesneleri ekleme gibi gitmek için yol görünüyor, doğru mu?

3 Cevap

CI dışında kütüphaneleri entegre zorlu yapmaz MVC çerçeveler çok farklıdır. Genellikle, bir çift yaklaşım vardır:

  1. Sadece () / gerektiren () kütüphane ve normal kullanmak sayılabilir. Bir ad çakışması olmadığı sürece bu, çoğu zaman gayet iyi çalışıyor. CI çoğunlukla yolumdan kalır, bu yüzden yaygın değildir. Eğer gibi hissediyorum yerde bu durumda, kütüphane koyabilirsiniz. Genellikle ben sadece CI tarafından kullanılabilir olacak düşünmeyin, çünkü belge kök dışında, paylaşılan bir "libs" dizininde onları tutmaya çalışın.

  2. Uygulamalar / kütüphanelerde kitaplıklarınızı koyun ve CI-> load () yöntemini kullanarak yükleyebilirsiniz. Bu adlandırma konusunda bazı kısıtlamalar koyar, böylece mevcut kütüphaneleri masaj veya sargı kurucusuna çeşit yazmak gerekebilir. The CI docs on creating libraries oldukça iyi bu kapsar.

Şahsen ben çok ilk yaklaşımı tercih. Bu CI kullanmanın faydalarından biri.

Bir kütüphane olma imkanı yok ise Şahsen, ben onu çağıran Kütüphane nesne olarak aynı dosyada, özel durumlarda objects_helper.php ya, gibi yardımcıları klasörüne koyacağız ya.

Gibi bir şey kullanmak böylece aynı zamanda bir nesne fabrika kütüphanesi içine bakmak olabilir:

$this->factory->createUserObject( $name, $rank, $serial );

Finally, you could look into the hooks framework, but it does not sound like you really want to use that.


I would only use require/include if you feel that it does not make sense (from a code/philosophical perspective) in any other circumstance. It is generally a good idea to work within a framework whenever possible.

Ben bir kütüphane yapma tavsiye ve sadece kullanarak olur $ this-> load-> library (); Okumak için töreler bkz: http://codeigniter.com/user_guide/general/creating_libraries.html

Kütüphaneler ve yardımcıları arasında bir fark yoktur. Dışında kütüphane nesne yönelimli değil ise, o zaman o ise, o zaman sadece hiçbir sorun ile bir kütüphane yapmak gerekir, bir yardımcı olarak isteyeceksiniz.