Przede wszystkim, przepraszam za wszelkie wygody spowodowane tym postem, ponieważ po raz pierwszy zamieszczam tutaj pytanie i potrzebuję więcej czasu na przyzwyczajenie się do tego.Pytania CodeIgniter i HMVC
Q1. Chcę utworzyć 2 "kontrolerów master" dla frontend i backend jak ten:
- MY_Controller rozciąga CI_Controller
- FrontEnd rozciąga MY_Controller a wszystkie kontrolery interfejsu internetowego rozszerzy FrontEnd.
- backend rozciąga MY_Controller i wszystkie sterowniki backend rozszerzy backend.
Jaki jest najlepszy sposób, aby to zrobić z HMVC (MX)?
Dzięki @Wesley Murch za udzielenie pomysłu na umieszczenie 3 klas MY_Controller, Frontend, Backend do MY_Controller.php, ale myślę, że umieszczenie każdej klasy w jednym pliku php jest lepsze (czystsze). Czy ja się mylę? I myślał tworząc strukturę takiego:
- ./core/MY_Controller.php (wystaje MX_Controller)
- ./libraries/Backend.php (wystaje MY_Controller)
- ./libraries/Frontend. php (rozciąga MY_Controller)
- Auto obciążenie Backend i Frontend w autoload.php
- Wszystkie kontrolery interfejsu internetowego rozszerzy Frontend (Np:
class Blog extends Frontend
) - Wszystkie sterowniki backend przedłuży Backend (np
class Admin extends Backend
)
Will że praca bez narażania jeszcze jedną linię kodu w sterownikach backend/frontend do include_once lub require_once: ./libraries/Backend.php lub ./libraries/Backend.php?
Q2. Jak zaimplementować wiele motywów za pomocą HMVC? Na przykład w MVC, możemy mieć 2 tematy strutured tak:
- ./application/views/ theme1 /view_files.php
- ./ Application/views/theme2 /view_files.php
Ale w HMVC, widoki folderów wewnątrz oddzielone foldery i jeśli chcę zaimplementować wiele tematów, normalnie mam zrobić tak:
- ./application/modules/ module1/views/theme1 /view_files.php
- ./application/modules/ module1/views/motyw 2 /view_files.php
- ./application/modules/ module2/views/theme1 /view_files.php
- ./application/modules/ module2/views/theme2 /view_files.php
To nie jest to, czego chcę, ponieważ chcę umieścić plik wszystkich wyświetleń motywu w jednym folderze, a później, jeśli chcę utworzyć nowy motyw, będę musiał skopiować tylko jeden folder tematyczny. Ale zastanawiam się, jak mogę to zrobić bez łamania modeli HMVC (ponieważ o ile mi wiadomo, w modelu HMVC modele, widoki, kontrolery muszą znajdować się w jednym folderze modułów - przynajmniej z CI). To jest konflikt, w który utknąłem.
Dzięki Wesley, nie zrobił tego spróbować, ale to powinno działać. –
Zastanawiam się nad utworzeniem 2 bibliotek rozszerzonych z MY_Controller.php i ich automatycznego załadowania. Czy to będzie działało? O tematów, chcę mieć wiele tematów dla widoków takich jak: - **/views/theme1/view_files.php ** - **/views/theme2/view_files.php ** O js/css/obrazy, umiem się ułożyć. Na początku poprawię motyw, ale później mogę zezwolić użytkownikowi na wybór. W MVC mogę umieszczać motywy w podfolderach **/views/** jak wyżej, ale z HMVC, muszę znaleźć inny sposób rozmieszczenia ich w tematach, ponieważ foldery widoku są oddzielone (chcę, aby wszystkie pliki widoku o tym samym motywie były być tylko w 1 folderze) .. –
Niestety, zapomniałem wymienić zamiast tworzyć 2 klasy w 1 pliku, chcę utworzyć 2 biblioteki Backend i Frontend rozciąga się od MY_Controller i automatycznie ładują Backend i Frontend w plikach konfiguracyjnych. Następnie w kontrolerach, będę rozciągać się w następujący sposób: 'blog klasy rozszerza Frontend' –