Potrzebuję wymyślić najlepszą praktykę do efektywnego wykorzystania modeli w Zend Framework.Jak zoptymalizować modele w Zend Framework?
Obecnie mam zajęcia rozciągające Zend_Db_Table_Abstract
które obsługują moje zapytania dla każdej klasy odpowiedniej tabeli.
Kiedy potrzebuję uzyskać dostęp do 5 powiedz tych tabel ze sterownika, znajduję się tworzenie 5 nowych wystąpień każdego konkretnego obiektu Zend_Db_Table
. To naprawdę nieskuteczne.
Myślałem o realizacji wzór fabryki do tworzenia nowych instancji (lub dostarczyć kopię istniejącego statycznego), ale nie jestem pewien. Czy to najlepszy sposób, aby to osiągnąć?
Jaki jest prawidłowy sposób obsługi modeli zapewniających szybkość bez zużywania nadmiernych zasobów? Czy w grę powinien wchodzić leniwy załadunek?
[EDIT] Jako przykład mam klasy używam do obsługi coraz dane o lokalizacji z surowego zapytaniu i potrzebują tych obiektów w celu analizowania zapytanie:
// Initialize database object
$this->dbLocations = new Model_Locations;
$this->dbStates = new Model_States;
$this->dbZipcodes = new Model_Zipcodes;
$this->dbLookup = new Model_Lookup;
W innej klasie może potrzebować ponownie uzyskać dostęp do tych modeli, więc powtarzam powyższy kod. Zasadniczo reinicjowanie obiektów, które mogą być statyczne/singleton.
Twoje pytanie jest dość płace, czy możesz pokazać przykład kodu, w którym faktycznie tworzysz instancje 5 klas tabel i opisujesz, czego potrzebujesz. – markus
Rozumiem twoje obawy, ale tak naprawdę nie podążam. Stwierdziłem, że tworzenie wielu wystąpień klasy, a szczególnie klasy abstrakcyjnej, jest rzeczą w OOP. Kwestionowanie tego modelu tabeli jest trochę podobne do kwestionowania do mnie OOP lub dziedziczenia. –
Na poziomie podstawowym użycie w tej metodzie jest dopuszczalne. Mam niestandardowe "procedury obsługi", z braku lepszego słowa ", które pobiera obiekt zapytania, analizuje właściwości w nim i przekazuje je do modułu obsługi położenia, który pobiera wszystkie dane o położeniu dla tego zapytania, a następnie przekazuje je do Przypadek obsługi danych, a także handler danych pogodowych.W wielu fazach, muszę uzyskać dostęp do różnych tabel i skończyć inicjowanie tych obiektów z różnych klas. Zobacz więcej informacji: http://stackoverflow.com/questions/9116838/data-enapsulation-and-data-flow-in-php –