![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
uczę się programować w MVC i chcę napisać sobie swój własny mały projekt który będzie miał 2 poziomy dostępu 1 dla wszystkich a drugi tylko dla administratorów. Zastanawiam się jak dobrze poukładać strukturę katalogów i jak napisać autoloader aby wszystko było bardzo proste do rozbudowania bez integracji w pliki które już będą. Chciałbym aby nazwy kontrolerów były możliwe do tłumaczenia na różne języki, czyli chyba najlepiej jak będą trzymane w bazie danych ? Generalnie chcę aby był porządek, aby pliki klas, widoku, kontrolerów i modeli dla zalogowanych były oddzielone od tych przeznaczonych dla dostępu publicznego. Prosiłbym tutaj o jakieś wskazówki doświadczonych programistów (IMG:style_emoticons/default/wink.gif) P.S. Większość powie żebym skorzystał z jakiegoś gotowego frameworka (IMG:style_emoticons/default/biggrin.gif) Ale chciałbym na początek nauczyć się MVC bez gotowych rozwiązań żeby lepiej ogarnąć OOP i MVC (IMG:style_emoticons/default/smile.gif) Ten post edytował Elber 11.05.2013, 17:37:18 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
1. po co chcesz tłumaczyć nazwy kontrolerów na inne języki?
2. MVC nie ma nic wspólnego z poziomem dostępu. 3. ściągnij cakephp, codeigniter i obadaj jak jest tam rozwiązany układ katalogów, generalnie zawsze jest tak że wszytko idzie przez index, pliki główne php trzymasz nad public_html, a pliki "web (img/css/js)" w nim. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
AD. 1 Po to by była możliwość przetłumaczenia aplikacji na inny język wraz z adresami url (IMG:style_emoticons/default/smile.gif) Np. strona.pl/kalendarz/dodaj tak by było dla języka PL a dla EN strona.pl/calendar/add (IMG:style_emoticons/default/smile.gif)
AD. 2 tak wiem że nie ma, chodzi mi tylko o ułożenie struktury katalogów rady jak dobrze ogarnąć dostęp do panelu dla zalogowanych bo on będzie miał całkiem inny wygląd i funkcjonalność niż strefa widoczna dla wszystkich AD. 3 to że wszystko idzie przez index.php też wiem (IMG:style_emoticons/default/smile.gif) a z rady o podglądzie jak to jest we frameworkach skorzystam (IMG:style_emoticons/default/smile.gif) Nachodzi mnie jeszcze jedno pytanie, jak np. w wordpressie jest rozwiązane wyświetlanie menu w panelu admina ? bo wgrywając jakiś moduł często pojawiają się tam nowe pozycje, menu te jest trzymane w bazie ? Czy jak to działa ? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
AD. 1 a nie lepiej przetłumaczyć uri przed routingiem? (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
No tak o to mi chodziło ;D Źle to określiłem, w bazie byłaby trzymana nazwa oryginalna i przetłumaczona, czyli w momencie przetwarzania url'a wyciągnąłbym nazwę oryginalna która jest przypisana do tej przetłumaczonej (IMG:style_emoticons/default/wink.gif) Generalnie ma to prawo bytu czy to zły pomysł / Inaczej się to robi ?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
AD. 1 Po to by była możliwość przetłumaczenia aplikacji na inny język wraz z adresami url :) Np. strona.pl/kalendarz/dodaj tak by było dla języka PL a dla EN strona.pl/calendar/add :) To nie kontroler, a reguły routera, a raczej uri chcesz tłumaczyć ;) AD. 2 tak wiem że nie ma, chodzi mi tylko o ułożenie struktury katalogów rady jak dobrze ogarnąć dostęp do panelu dla zalogowanych bo on będzie miał całkiem inny wygląd i funkcjonalność niż strefa widoczna dla wszystkich Kontroler dla admina jest inny niż kontroler na użytkownika tak samo jak ich widoki. Nachodzi mnie jeszcze jedno pytanie, jak np. w wordpressie jest rozwiązane wyświetlanie menu w panelu admina ? bo wgrywając jakiś moduł często pojawiają się tam nowe pozycje, menu te jest trzymane w bazie ? Czy jak to działa ? System rozszerzeń. Zakładając że masz tablicę do której dodajesz nazwy rozszerzeń jakie instalujesz i które sa aktywne i na tej podstawie generujesz menu. A jak chcesz się czegoś nauczyć i ma być to dobre, to nie patrz na WP ;) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Cytat Kontroler dla admina jest inny niż kontroler na użytkownika tak samo jak ich widoki. Kontroler może być przecież ten sam. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czyli system rozszerzeń trzymać lepiej w bazie czy na tablicy ? Generalnie o menu mi chodzi (IMG:style_emoticons/default/smile.gif)
A jak rozgraniczyć ładowanie konkretnych kontrolerów dla public i private w głównym routerze ? Poprzeglądałem frameworki i stwierdzam że jakoś żaden nie wydaje się być jakoś w miarę fajnie prosty i przejrzysty (tu odnoszę się do tego co ja chcę uzyskać, bo ogólnie nie można im nic zarzucić (IMG:style_emoticons/default/biggrin.gif) ) Może ktoś zdradzi jak układa katalogi dla małych aplikacji z 2 poziomami dostępu ? Ten post edytował Elber 11.05.2013, 19:05:11 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Główny katalog /Controller dla publicznych, katalog /Controller/Admin dla kontrolerów dla admina.
Oczywiście w /Controller pojawiają się inne katalogi jeśli trzeba, jednak są objęte innymi prawami dostępu. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok a jak z Routerem w takim wypadku ? np. jeśli $_GET['url'] == 'admin' to lecimi wyszystko dla admina a jak nie czyli else to public ?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Kontroler może być przecież ten sam. Dla usera i panelu admina? Słaby pomysł. Cytat Ok a jak z Routerem w takim wypadku ? np. jeśli $_GET['url'] == 'admin' to lecimi wyszystko dla admina a jak nie czyli else to public ? Nie specjalnie... Szczerze mówiąc nie wyobrażam sobie korzystanie z GET w przypadku nawet minimalnego FW. Poczytaj o URI. zakładając że Twój URL wygląda tak Cytat To router powinien wiedzieć że URI pasuje do jego deklaracji
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dla usera i panelu admina? Słaby pomysł. Niby czemu? Jaka jest pomiędzy nimi różnica? Przekazuje ten sam model do różnych widoków to dlaczego tworzyć osobne. Dodatkowo zgodne z założeniami Twórców tego wzorca. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
@destroyerr - jeśli panelem jest dodatkowa opcja "usuń" przy formularzu dodawania komentarzy itp. to tak. Inaczej to wygląda jak panel jest "osobną" aplikacją.
Ten post edytował !*! 12.05.2013, 19:02:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 00:52 |