Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] modele w aplikacji z modułami
Daimos
post 17.10.2010, 13:37:49
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?


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eai
post 17.10.2010, 16:19:43
Post #2





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

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


Mówiąc domyślna przestrzeń, miałem na myśli podstawową konwencję nazewnictwa oraz listę zasobów jakie zostaną zarejestrowane. Bo korzystając z Autoloader'a mogę zarejestrować swoje własne i/lub zmodyfikować istniejące przestrzenie.

Domyślna przestrzeń aplikacji pozostanie czyli dla modeli: Application_Model_Tabela, Application_Form_Formularz itd.
A każdy z tych bootstrapów zarejestruje swoją przestrzeń nie kolidującą z przestrzenią dla Aplikacji (o której mówisz).
Główny bootstrap w katalogu application zostaje jak był. Definiujesz tylko dodatkowe bootstrapy dla modułów. Zaletą
takiego rozwiązania jest dobry podział logiki aplikacji. Załóżmy że masz moduł users, który odpowiada za autoryzacje, prawa dostępu, zarządzanie użytkownikami.
Napewno w swojej aplikacji używasz praw dostępu i rejestrujesz jakiś plugin wykorzystujący Zend_Acl i domyślam się że umieściłeś dodatkowy folder w katalogu library. Logicznie rzecz biorąc ten plugin powinien się znajdować w module users, i z tamtąd go powinieneś zarejestrować używając właśnie bootstrapa modułu users. Bo gdy usuniesz ten moduł (wyłączysz), to automatycznie wyłączysz sprawdzanie praw dostępów - bo po usunięciu tego modułu nie będzie co sprawdzać - użytkowników przecież nie będzie.

Mam nadzieje że rozumiesz idee smile.gif
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 23:49