Kontrol ve Model iç Yapılandırma nesne kullanılabilir hale getirmek için en iyi uygulama

3 Cevap php

Uygulama başlangıç ​​ben Yapılandırma nesne (Singleton) oluşturma. Nasıl Yapılandırma nesne modeli ve Denetleyici içeride mevcut yapabilir? Ben yöntem parametr olarak kurucusuna Yapılandırma nesne geçirmek mıyım yoksa daha bu-> config = Yapılandırma $ kullanmalısınız :: getInstance (?) Başka bir yöntem?

Teşekkür ederim

3 Cevap

Singleton aslında bir global değişken için sadece fantezi sözdizimi ve globalsın olduğu kadar kötü (ve onlar are kötü). Bu sınıflar arasında hiçbir sert kavrama oluşturur ve maksimum esneklik sağlar gibi bir parametre geçirerek temiz seçenektir. Başka makul (ama oldukça gelişmiş) seçeneği, bir bağımlılık enjeksiyon kap kullanın örneğin bkz this post etmektir.

Config bir Singleton ise, hemen hemen istediğiniz herhangi bir çözüm kullanabilirsiniz:

  • Passing it as a parameter is not needed, as it's global
    • Bir parametre dependancy enjeksiyon için izin verebilirsiniz Ama geçen - ki sen bazı otomatik testler isterseniz yardımcı olabilir
  • Bir sınıf özelliği olarak saklanması yararlı olabilir - ama o da gerekli değil.


Generally, for that kind of object, I just use Config::getInstance() each time I need it, and don't store it in a class property.

Ama bu personnal tercihleri ​​meselesi sanırım ...

Ben genellikle Config::getInstance() vasıtasıyla bir örnek tekil yapmak, ve Environment#config (veya Bootstrap#config, öğreticiler Bootstrap ile gitmek) olarak accesors ekleyin ve {[(3) }] (Bu My_Top_Controller Zend_Controller genişletir ve tüm diğer denetleyicilerin atası) ve aynı zamanda geneli tuşu ile Zend_Registry ekleyin.