Independend modüler yapıları ile Zend Framework ve Doktrini kullanma

3 Cevap php

Ben ZF ve Doktrini entegre hakkında makaleler bir sürü gördüm. Orada ZF için bir öneri de here ama onlar her iki olası yapıları vardır. Ya bir üst düzey modeli dizine tüm modelleri koymak ya da bir modül ile ilgili model dizine koydu.

application
|-- Bootstrap.php
|-- configs
|-- controllers
|-- models           - EITHER HERE
|-- modules
|   -- examplemodule
|       |-- controllers
|       |-- models   - OR HERE
|       |-- views
|-- views

For our projects I see problems for either of the two options:
1. One directory: application/models - in a complex system after a short time there will be hundreds of files, over all when you have the table classes two (e.g. User.php and UserTable.php).
2. Module based model directories: application/modules/examplemodule/models - in many cases we use models in multiple modules at the same time. So the "User" is required e.g. in the modules "game", "administration", ...

Bazı gruplandırma almak için üst düzey dizini "modelleri" başlığı altında alt dizinleri çeşit kullanmak için bir yolu var mı. Bu modül yapı tamamen bağımsız olması gerekir.

application
|-- Bootstrap.php
...
|-- models
|   -- user
|       |-- User.php
|       |-- Friend.php
|       |-- other user related models
|   -- game
|       |-- Game.php
|       |-- Score.php
|       |-- ...
...

Herhangi bir çözüm yaml dosyaları autoloading ve sınıf nesil desteklemelidir.

Herhangi bir fikir, bağlantıları veya çözümler? Teşekkürler!

3 Cevap

Biz şu anda çalışmak şirkette bu bir çözüm üzerinde çalışıyoruz.

Şu anda Zend modüler dizin yapısını takip ediyor ve bizim modellerimiz böyle bir baz dizin ile, her modül dizinde klasör var:

|----application
|--------modules
|------------content
|----------------models
|--------------------Base
|------------------------Content.php
|--------------------Content.php

Bizim modellerimiz özdevinimli_yükle, ama biz zf cli içine kod üretimi entegre değil, bu yüzden şu anda modelleri oluşturmak ve sonra el modül dizine kopyalayın.

Üzgünüm ihtiyacınız kesin cevabı yok, ama aynı zamanda Zend Toplulukta bu proposal ilginizi çekebilir.

Ben bir dizinde mayın tutmak. Demişler, geliştirici zaman pahalı ve CPU zamanı ucuz, bu yüzden geliştirici için optimize. Ayrıca, KISS ve YAGNI. Eğer optimize etmek gerekir kadar optimize etmeyin. O zamana kadar, otomatik yükleyici güveniyorum.

Bu değer ne için, ben bu kullanmak sitesi oldukça meşgul ve performans bir sorun olmamıştı.

Kullanıcı Modeli zaten kullanıcı Modülüne ait değil misiniz? Ve Oyunu Modülü daha büyük olasılıkla Kullanıcı Model bağlanmak için Arayüz çeşit olması gerekmez mi?

Gibi doğrudan Oyunu Modülünde Kullanıcı Modeli kullanılarak değil yapılandırmaya göre Game Modülü Kullanıcı Adaptörü geçen değil?

Birbirinin yerine zaman sonra hepsi bana, Modülleri az mantıklı.