CodeIgniter'daki Kütüphaneler Tasarımı

4 Cevap php

Benim ilk büyük CodeIgniter uygulama yazmaya başlamak üzereyim, ama ben başlamadan önce ben kütüphanelerin rolü ne olması gerektiğini merak ediyorum. Ben MVC bir acemi değilim, ama anladığım kadarıyla modeli veri yapıları (iş mantığı) saklandığı yerde olmalıdır. Böylece kütüphane kontrolörleri ek olarak, uygulama mantığını yazmak için bir yer mi? Bu kütüphanelerde modelleri birleştirmek için iyi bir fikir mi?

Örneğin, ben profilleri ve mesajlaşma olacak bir üye yönetim sistemi yazmak için gidiyorum. MVC + L (kütüphane) kurulum ne gibi görünmelidir? 2 model (profil, mesaj) ve bunları birleştiren bir kütüphane? Her nesne için bir kütüphane? Hayır kütüphaneler, sadece modelleri ve denetleyiciler?

4 Cevap

CodeIgniter'daki Kütüphaneler sadece PHP sınıflardır. Normalde bir PHP sınıfı yazardı Herzaman, CodeIgniter'daki bir 'Library.' Yazarsınız

Çoğunlukla, bu tür veritabanı aramaları veya büyük veri manipülasyonları çekişmeler veri Model gitmeli. Açıkçası PHP küçük miktarlarda HTML İzlenme gitmek, ve kullanıcı etkileşimi denetleyicisi aittir.

Muhtemelen bir PHP sınıfı olacağını, bir Doğrulama kütüphane isterim. Ancak, bakabilirsiniz böyle Tank Auth ve DX Auth gibi mevcut birçok açık kaynak kütüphaneler vardır.

Temel kural: geleneksel PHP kütüphanesi genellikle tarih fonksiyonları gibi, ilgili fonksiyonları, bir demet, ama CodeIgniter'daki bir yardımcı olacaktır. Geleneksel PHP sınıf / nesnenin bir CodeIgnter kütüphane olacaktır.

Kaynak system/helpers kodunu ve system/libraries klasörleri okumak korkmayınız

Ben sadece modelleri ve denetleyicileri öneriyoruz. i kütüphane yeniden kullanılabilir mantığın değil, uygulamaya özel bir için olduğunu düşünüyorum. Kontrolör ve model, sadece onlar için işi gittin eğer Ve sanırım.

İş mantığı denetleyicileri olmalıdır, veritabanı ile sadece etkileşim modellerde gitmeli.

Benim soru şey koymak için kendime sormak çok basittir. Ben modeli "eğer" bakmak. Verileri kontrol etmek orada bu IFS mı? Veritabanı başarılı ya da değil onlar etkileşim wether kontrol ediyorsanız ait olduğu yere, kodudur. Iade veri değerlerini kontrol ederse, o yanlış yerde muhtemelen (ve denetleyici gitmek gerekir).

Zack dediği gibi, küçük php kod ile HTML görünümleri gitmek gerekir.

Kütüphaneler sınıfları desteklemek için daha fazladır. Örneğin ben geçmişte özel bir kalender bir kütüphane (sınıf) yaptık.

Hatta bir sınıf ihtiyacınız yoksa, bir yardımcı koydum. (Örneğin, sadece belirli bir dize manipülasyon işlevi var, ama farklı yerlerde kullanmak istiyorum çünkü)

Ben Dennis DECOENE söylediklerine katılıyorum. Ama sonra bazı düşünce, o zaman neden kendi kütüphaneleri php sınıfları doğaya oranla çok daha "ilgisiz" işlemlerini yapıyoruz onların auth uygulama kütüphaneleri ve yardımcıları bir karışım oluşturarak auth kütüphane geliştiriciler.