Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Subfoldery Controllerów
Damiankossek
post
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

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


Witam,

Mam pytanie, jak wy rozwiązaliście w Zendzie problem Panelu Administacyjnego ?

W Kohanie miałem zrobione tak że Controllery od backendu miałem ładnie w folderze backend i wchodziło się do nich poprzez adres:

http://strona.pl/backend/news

I mogłem ładnie sobie szybko i prosto dodawać nowe moduły poprzez stworzenie nowego pliku w folderze backEnd ... Wydawało mi się to bardzo wygodnym rozwiązaniem.
Natomiast teraz przesiadłem się na Zenda i mam problem z subfolderami. Jak wygląda sprawa controllerów w subfolderach ?

Może macie jakieś inne ciekawe rozwiązania co do PA ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Zend ma określoną konwencję nazewniczą klas (która ułatwia zlokalizowanie odpowiedniego pliku), a autoloader i odpowiednia konfiguracja w głównym Bootstrapie załatwiają sprawę. Nie odpowiem Ci konkretnie na Twoje pytanie, bo nie wiem czy masz w projekcie zastosowaną budowę modułową?
Go to the top of the page
+Quote Post
Damiankossek
post
Post #3





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

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


No wlasnie jestem na etapie teoretycznego projektowania aplikacji chciałbym zapytać o wasze propozycje

Myśle aby rozwiązać to w ten sposób ze controllery od backendu trzymam w osobnym folderze:

- Controllers (katalog)
-- IndexContoller
-- ArticlesController
--- backend (katalog)
---- IndexContoller
---- ArticlesController

No i jak widać w folderze Controllers mam controllery od frontendu i katalog backend w którym beda controllery od wlasnie administracji. Rozwiazanie wydaje mi sie o tyle fajne ze każdy moduł ma swój osobny Controller, model i widok wiec w przyszłości mozna szybko i prosto rozbudować aplikacje poprzez stworzenie odpowiednich plików i uaktywnienia modułu w bazie. Jakie plusy i minusy ma taka koncepcja ? Moze macie jakieś lepsze pomysły ?

P.S przepraszam jeżeli zbytnio zszedlem z tematu

Ten post edytował Damiankossek 8.03.2011, 11:29:13
Go to the top of the page
+Quote Post
pgrzelka
post
Post #4





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


-public
-library
-app
--layouts
--plugins
--configs
--modules
---default
----controllers
----views
----models
---backend
----controllers
----views
----models
---inny_modul
----controllers
----views
----models
--Bootstrap.php

ja używam takiej struktury

Ten post edytował pgrzelka 8.03.2011, 12:25:55
Go to the top of the page
+Quote Post
Damiankossek
post
Post #5





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

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


Też już zrobiłem taki podział (IMG:style_emoticons/default/smile.gif) Fajnie to wszystko działa, miałem małe problemy z instalacją Zend Toola na Mac OS ale sobie poradziłem tymi komendami:

sudo pear channel-discover pear.zfcampus.org
sudo pear install zfcampus/zf-devel

Źródło: http://raphaelstolt.blogspot.com/2009/01/i...n-mac-os-x.html

Ten post edytował Damiankossek 8.03.2011, 23:57:32
Go to the top of the page
+Quote Post
Eagle
post
Post #6





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

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


Ja wszystkie akcję związane z artykułami wrzucam do jednego kontrolera, nie robię podziałów na admin/backend etc.
Dzięki temu wszystko jest w jednym miejscu i nie trzeba nigdzie szukać (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Damiankossek
post
Post #7





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

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


Ja preferuje podzial poniewaz latwiej we wszystkim sie polapac, a tym bardziej budowa modulowa. Wszystkim bardziej i lepiej da sie zarzadzac a juz nie mowie o prostocie rozszerzania aplikacji ... (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Eagle
post
Post #8





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

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


Oczywiście jest budowa modułowa (IMG:style_emoticons/default/wink.gif)
Nie wrzucam wszystkich rzeczy do /app/controllers (IMG:style_emoticons/default/tongue.gif)

-app
-- [...]
-- app/modules
--- article
---- controllers
---- controllers/IndexController - głównie CRUD
---- controller/TagsController - tagi
---- controller/CosinnegoController - inne rzeczy związane z artykułami

--- user
---- controllers
---- controllers/IndexController - CRUD
---- controllers/AclController - zarządzanie uprawnieniami

etc etc
Go to the top of the page
+Quote Post
Damiankossek
post
Post #9





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

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


A no to tak (IMG:style_emoticons/default/smile.gif) Myślałem że wszystko pakujesz do app/controllers (IMG:style_emoticons/default/wink.gif) A możesz powiesz jak radzisz sobie z routingiem ?

Bo linki w stylu http://strona/articles/index/show/id/1 nie są za przyjemne (IMG:style_emoticons/default/smile.gif)

Wolałbym to skrócić na styl http://strona.pl/articles,show,id,1

A zależy mi właśnie na budowie modułowej, bo gdybym wszystko pakował do defaulta to problemu nie ma (IMG:style_emoticons/default/smile.gif) Ale każdy moduł = osobny folder. A tworzenie osobnego Controllera dla jednej metody mija się z celem no ale właściwie ... (IMG:style_emoticons/default/smile.gif)

Ten post edytował Damiankossek 10.03.2011, 16:27:31
Go to the top of the page
+Quote Post
Eagle
post
Post #10





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

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


  1. $route = new Zend_Controller_Router_Route_Regex(
  2. '(.+)-a(\d+)',
  3. 'module' => 'article',
  4. 'controller' => 'index',
  5. 'action' => 'show'
  6. ),
  7. 1 => 'desc',
  8. 2 => 'id'
  9. )
  10. );
  11. $router->addRoute('article', $route);


Kod dość stary ale powinien działać (sporadycznie zdarza mi się używać innego routingu)

link wygląda tak: example.com/to_jest_jakis_tytul_artykulu-a20

a20, to ID=20 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Damiankossek
post
Post #11





Grupa: Zarejestrowani
Postów: 118
Pomógł: 8
Dołączył: 10.12.2009

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


No wszystko śmiga ładnie, napisałem sobie w bootstrapie metodę która pobiera routes z zewnętrznego pliku (IMG:style_emoticons/default/smile.gif)

application/modules/articles/boot.php

a w nim mam metodę buildRoutes i która ułatwia mi zarządzanie linkami, bezpotrzeby majstowania w bootstrapie (IMG:style_emoticons/default/smile.gif)

Dzięki !

Ten post edytował Damiankossek 10.03.2011, 21:15:36
Go to the top of the page
+Quote Post
darko
post
Post #12





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Z Zendem jest właśnie ten problem, że nie ma stałego układu struktury plików (i najprawdopodobniej z założenia nigdy nie będzie). Co więcej, każdy projekt ma inną strukturę i czasami trudno się do pewnych rzeczy przyzwyczaić. Jedyne, co można znaleźć na ten temat, to konwencjonalna struktura folderów w projektach o budowie modułowej:

-docroot/
--index.php
-application/
--default/
---controllers/
----IndexController.php
----FooController.php
---models/
----views/
-----scripts/
------index/
------foo/
-----helpers/
-----filters/
--blog/
---controllers/
----IndexController.php
---models/
---views/
----scripts/
-----index/
----helpers/
----filters/
--news/
---controllers/
----IndexController.php
----ListController.php
---models/
---views/
----scripts/
-----index/
-----list/
----helpers/
----filters/

Ten post edytował darko 18.03.2011, 16:39:43
Go to the top of the page
+Quote Post

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: 24.08.2025 - 07:39