![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam mały problem z modułami w Zend oraz z Bootstraperem Struktura katalogowa: -application --modules ---admin ----controllers ----views ----Bootstrap.php ---website ----controllers ----views ----Bootstrap.php -Bootstrap.php Plik .ini:
Głowny bootstrap.php:
Admin bootstrap.php
Website bootstrap.php
Problem polega na tym, że wypisuje: Bootstrap ROOT Bootstrap ADMIN oraz wyświetla zawartość modułu Website. Takie trochę pogmatwane coś to trochę i nie wiem co jest źle, idę na logikę czyli jak wcześniej w pliku .ini zadeklarowałem, że resource.frontController.defaultModule = "website" to czemu mi otwiera bootstrap`a admina... Dodatkowo jak wpiszę: localhost/admin -> uruchamia się ErrorController modułu website a nie admin. Siedzę na tym cały dzień, przeszperałem wszystkie(chyba) strony anglojęzyczne z tym i ni ch..a Z góry dziękuję za wszelką pomoc. Pozdrawiam Ten post edytował Fluke 17.01.2012, 21:53:59 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 5 Dołączył: 9.02.2011 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
W Zend Framework odpalane są Bootstrapy wszystkich modułów jakie zadeklarowane są w aplikacji.
W linku poniżej po angielsku opisane czemu http://stackoverflow.com/questions/5304067...pecific-modules |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
To nie rozumiem po co sa bootstrapy w modulach jak i tak zostana nadpisane.
Jak chcialem zmieniac w kazdym bootstrapie layout strony to ustawiany byl w tym ostatnim bootstrapie czyli u mnie w module website, bootstrap Website_Bootstrap. Rozkminilem jak zmieniac layouty dla odpowiednich modolow za pomoca pluginow ale zastanawia mnie caly czas ta logika. Jeszcze nie probowalem ladowac pluginow w poszczegolnych modolach ale pewnie zostana zaladowane wszystkie ktore sa zdefiniowane w Bootstrap, Admin_Bootstrap, Website_Bootstrap. Pozdrawiam. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
No widzisz, Zend w v1 tak działa rozwiązaniem jest nie używanie jego lub dodanie jakiegoś pluginu, tak samo pliki konfiguracyjne, nie ma znaczenia jaki moduł jest aktywny i tak zostaną przeprasowane wszystkie wpisy nawet te zaczynające się od nazwy modułu. W drugiej wersji fw jest już to poprawione na wzór tego czego oczekujesz - z resztą na logikę tak powinno być od początku, ale Zend"owcy wymyślili to inaczej i powinniśmy się cieszyć z przyznania się do błędu i zmian. (beta można pobrać z głównej zf'a)
Ja osobiście mam takie rozwiązanie na podział modułowy i uzależnienie od tego lay'a. ;-) Pliki są poukładane tak: http://screenup.pl/?l=CEHQAY8 Całość odpowiada mi bardzo, a zmiany jakich trzeba dokonać są w miarę nie wielkie.
I boot:
Kod metody "_initAutoload" jest uzależniony od ilości modułów, dla kolejnych musisz dodawać wpis (3 linie) - odpowiada za zmuszenie Zend'a do poszukiwania klas formów i modelów w odpowiednich modułach, aczkolwiek korzystanie z innych niż aktualnie edytowany jest możliwe, wszystko oparte jest na prefixach, dla modułów deklaracje podajemy ZAWSZE Z PREFIXEM danego modułu, a przy jego wywoływaniu jest trochę inaczej, moduł default nie wymaga prefixu, a każdy inny tak! Całość ma podzielić aplikację na części, stronę główną firmy, bloga i panel który tym wszystkim zarządza - trochę inne podejście niż w założeniach mam wrażenie, ale dla mnie słuszne "moduł" to osobny system który może bez problemu działać bez innych części, a nie jakaś konkretna funkcjonalność np. news'y. ;-) Mam nadzieję, że to Ci pomoże. -------------------- Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 5 Dołączył: 9.02.2011 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
W podanym linku był przykład jak sensownie to rozwiązać. Tworzysz plugin ogólnie do layoutow. Nie ma sensu tworzyć pluginów dla każdego modułu oddzielnie. I w takim pluginie sprawdzasz jaki moduł jest załadowany i po niem ustawiasz layout.
ewentualnie
jeżeli wolisz tak jak poniżej napisał ShadowD trzymać layouty wewnatrz modułów Ten post edytował pawv 18.01.2012, 15:34:00 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Z tego rozwiązanie taż korzystałem, zmuszało mnie do trzymania lay w jednym katalogu w obrębie całej aplikacji, w moim rozwiązaniu każdy moduł ma swój katalog w swoim ciele dzięki czemu każdy z modułów może mieć wiele lay'ów i wszystko nie jest zmiksowane. ;-)
-------------------- Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
No właśnie, projektanci Zenda chyba tutaj tymi bootstrapami logiką nie zaszaleli...
Moim zdaniem najlepszym rozwiązaniem było by gdyby ładował się najpierw główny bootstrap a następnie odpowiedniego modułu. W ten sposób w głównym bootstrapie można byłby załadować plugina, który byłby odpowiedzialny za layout`y a resztę pluginów ładował by odpowiedni bootstrap w module. Jeszcze natknąłem się na taki jeden problem odnośnie standardowego laya:
Wyskakuje mi Zend_Application_Resource_Exception:
Czyli może chodzi tutaj o to, że standardowy moduł ma się nazywać "Default". Jak robiłem moduły po przez:
To w ten sposób wszystko chodziło jak należy. Czyli pytanie: czy bootstrapy są potrzebne i tak każda aplikacja napisana w Zend powinna je mieć czy można sobie obrać jakąkolwiek drogę? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Ja z bootstrapa korzystam tylko głównego, co do Twojego pytania - lay nie musi być wybierany w bootstrapie, więc pisz tak jak jest Ci wygodniej. ;-)
-------------------- Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 07:26 |