Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] modele w aplikacji z modułami
Daimos
post
Post #1





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witam
Ciekawi mnie jakie Wy macie rozwiązania na modele w aplikacjach z modułami.
Kiedy ustawimy sobie moduły, autoloader automatycznie nam dopisuje ścieżkę do modeli "zbiorczych", które są w katalogu głównym aplikacji, a teraz co z modelami, które mają być dedykowane dla danego modułu?
Czyli jak wywołać model, który będzie np. w katalogu:
Cytat
application/module/NAZWAJAKAS/models/ModelTestowy.php

Tam autoloader sam już nie wejdzie, trzeba sobie radzić. Niektórzy robią to dodając include_paths do każdego modułu, inni piszą plugin, który dodaje include_path oddzielnie dla każdego modułu, np:
  1. public function dispatchLoopStartup(Zend_Controller_Request_Abstract $req)
  2. {
  3. $moduleName = $req->getModuleName();
  4. PATH_SEPARATOR . APPLICATION_PATH . '/modules/' . $moduleName . '/models');
  5. }

Macie na to jakieś ciekawe rozwiązania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eai
post
Post #2





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


To prawda trzeba dbać o optymalizację i wydajność kodu, ale równie ważny jest porządek w aplikacji i uniknięcie własnych tworów. Pamiętaj, że Zend Framework jest ciągle rozwijany, i programiści głowią się nad wydajnością, ale jeżeli będziesz stosował się do dokumentacji i korzystał z zenda w należyty sposób (korzystając z narzędzi jakie oferuje - bez tworzenia samoróbek np. do rejestracji modułów) to unikniesz problemów przy aktualizacji.

Co do wydajności aplikacji, to oprócz tego że starasz się programować jak najwydajniej to pomyśl też troche ja business man. Projekt to koszty, na początku projektu nie wiadomo czy coś wypali czy nie więc lepiej koszty obniżać. Na początku aplikacja nie będzie na pewno nie wiadomo jak obciążona poziom 5 request/s jest zadowalający a w ZendFrameworku taki poziom bez problemu osiągniesz. Dlatego nie ma co tracić czasu na sprawy, które nie są w tym momencie aż tak istotne. Jeśli projekt wypali i przynosi określone korzyści to wtedy inwestujesz czas w doskonalenie projektu. Ważne jest by umieć dostosować się do danej sytuacji.

No dobra, ale to jeszcze nie koniec moich pomysłów (IMG:style_emoticons/default/smile.gif)

Zend_Loader oferuje możliwość zdefiniowania własnego handler'a do ładowania klas. Działa to tak, że jeśli zend nie potrafi znaleźć klasy to w następnej kolejności wywoła zarejestrowany handler.
Napisz własny handler, zadbaj o jego wydajność przy zadowalającym poziomie uzyteczności. Może takie rozwiązanie Cię zadowoli.

Tu masz dokładny przykład jak to się robi, jest to bardzo łatwe więc nie ma sensu bym to tłumaczył.
http://framework.zend.com/manual/en/zend.l...r.load.autoload

Edit Napisany handler nie zastępuje istniejącego, tylko jest uruchamiany jak ZendFramework nie potrafił załadować klasy. Spróbuj np. rozpoznać pierwszy człon nazwy klasy do momentu wystąpienia znaku "_", sprawdź czy folder z takim modułem istnieje i spróbuj załadować klasę modelu. Tu już możesz kombinować według uznania i tego co potrzebujesz.


Ten post edytował eai 17.10.2010, 19:17:47
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 23:23