Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Implementacja panelu administracyjnego przy MVC
jajcarzd1
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Witam

Chciałbym Was prosić o zdanie jak u Was to wygląda. Otóż mam swojego frameworka który zbudowany jest mniej wiecej w oparciu o schemat MVC. Aplikacja w katalogu app ma podkatalolgi controllers, models, helpers itd. Podoba struktura jest w katalogu system. Coś podobnie jak w kohanie. Ale mniejsza z tym pytanie moje brzmi w jaki sposób budujcie panel administracyjny do danej aplikacji opierając się o ten schemat. W chwili obecnej mam coś w stylu małego b2b, aplikacja wymaga zalogowania, więc prawdopodobnie zrobię tak, że jeśli logujący będzie miał rolę 'admin' to pokażą się dodatkowe zasoby dostepne dla niego w menu przy zachowaniu tego samego layoutu. Natomiast kontrolery, modele itd będa wrzucane do tych samych katalogów co dla innych userów. Ale zastanawia mnie sytuacja taka gdy będę chciał zrobić w oparciu o ten schemat np. cms-a lub tym podobne gdzie frontend i backend będzie zupełnie inny i nie powiązany.

Czy wtedy robicie np katalog admin w a nim powielacie to samo co dla frontendu czyli np katalogi

Kod
app
- controller
- models
..
cache
config
public
system
templates
....


a potem w routerze dajcie jakieś datkowe reguły które przy wykryciu linku postaci np

Kod
http://project/admin/order/index


odpalają kontroler order z akcja index ?

czy może robicie tak że np. w takiej konfiguracji katalogów

Kod
app
- controller
   - admin
- models
..- admin
....


dodajcie w podlatalogu controllers, models itp np podlatalog admin a w nim dopiero kontrolery, modele i inne pliki administracyjne aby dokonac rozdziału funkcjonalnego ? Tylko że tu jest problem zmiany już np. autoloaderów wszystkich plików bo są inne lokaliazje i szereg innych spraw jak np. to że jest ten sam frontcontroller, bootstrap (coś jak w zendzie) który będzie mi odpalał akcje niekoniecznie potrzebne dla administracji, odpalane jakieś dodatkowe viewHelpery itp.

Generalnie chyba wiadomo o co mi chodzi, chciałbym usłyszeć Wasze zdanie i sugestie
Będe wdzieczny za info pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gothye
post
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


Dzięki phpion (IMG:style_emoticons/default/winksmiley.jpg)
ale chodziło mi o rozwiązanie jakie zastosował jajcarzd1 do budowy menu ,ale z tego co podałeś to również wnioskuje ze to następuje przez pobranie struktury katalogów oraz plików w app (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował gothye 8.07.2010, 13:20:37
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Cytat(gothye @ 8.07.2010, 14:20:15 ) *
Dzięki phpion (IMG:style_emoticons/default/winksmiley.jpg)
ale chodziło mi o rozwiązanie jakie zastosował jajcarzd1 do budowy menu ,ale z tego co podałeś to również wnioskuje ze to następuje przez pobranie struktury katalogów oraz plików w app (IMG:style_emoticons/default/winksmiley.jpg)


No ja nie jadę na kohanie tylko mówię o swoim własnym rozwiązaniu (IMG:style_emoticons/default/smile.gif) więc trudno cokolwiek mi tu polecać.

Cytat(phpion @ 8.07.2010, 08:06:26 ) *
Pytanie nie było skierowane do mnie, ale odpowiem: wystarczy, że dla każdej "aplikacji" będziesz miał osobny front controller. Ja stosuję taką strukturę katalogów:
Kod
--public_html
----admin
------index.php // front controller dla admina
----index.php // front controller dla sekcji użytkowej

Konieczna będzie ingerencja w $config['site_domain'] w application/config/config.php - musisz ją dynamicznie modyfikować w zależności od aplikacji. Najprościej w każdym z front controllerów utworzyć jakąś stałą np. APPNAME (o wartości np. frontend lub backend), a potem skorzystać z warunku:
  1. $config['site_domain'] = APPNAME == 'backend' ? '/admin/' : '/';


Hmm czyli mówisz że wszędzie dodawałeś podkatalogi dla backendu dlla kontrolerów, widoków itp. ale jeśli chodzi własnie o sterowanie to mówisz że masz osobny frontcontroller ? Teraz się tak właśnie zastanawiam czy nie zrobić tego w ten sposób że mojej strukturze nie dodać jednak katalogu admin z osobnym plikiem index.php i będzie ona wyglądać tak:

Kod
- admin
   index.php
-app
  - controllers
  - helpers
  - models
  class.bootstrap.php
-cache
-config
-libraries
-public
-system
-templates
-templates_c
  index.php


i w nim będe odpalał drugi plik froncontroller-a dla panelu administracyjnego. Tylko się zastanawiam czy dodawać dodatkowe katalogi w ten sposób (czyli osobny admin dla kazdego katalogu):

Kod
- app
- controllers
   - admin
- helpers
   - admin
- models
   - admin


a może w ten sposób:

Kod
-app
- admin
   - controllers
   - models
   - helpers
- controllers
- helpers
- models


albo jednak w ogóle stworzyć osobny katalog app w katalogu admin:

Kod
- admin
  -app
    - controllers
    - helpers
    - models
    class.bootstrap.php
    index.php
-app
- controllers
- helpers
- models
class.bootstrap.php
-cache
-config
-libraries
-public
-system
-templates
-templates_c
index.php


z osobnym bootstrapem gdzie inicjuję sobie różne rzeczy plus może osobny templates, config. Sam już nie wiem na co się zdecydować

Ten post edytował jajcarzd1 9.07.2010, 08:06:25
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: 18.10.2025 - 02:11