Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]logika systemu
Forum PHP.pl > Forum > Przedszkole
Kamil Pietrzak
Witam

Po raz kolejny podchodze do napisania systemu, ale chce aby to mialo rece i nogi.
Postanowilem zaczac od porzadnego projektu, aby nie pominac czegos i wiedziec co mam robic.

project wyglada tak:

  1. frontedn:
  2.  
  3. > klasa body
  4. create_title();
  5. create_site(); // tresc podstrony przez klase site()
  6. create_menu(); //przez klase menu
  7. create_ending();
  8.  
  9. show($name); //wyswietla jeden z powyzszych elementow
  10.  
  11. > klasa site
  12. SQL: nazwa_strony, typ
  13.  
  14. typy:
  15. - zwykla strona(new html)
  16. - strona artykul z linkiem do ?site=article&id=11, jesli w artykule zaznaczono "tytul linkiem"
  17. - strona z lista artykulow
  18.  
  19. > klasa menu()
  20. show_columns(); //tworzy wszystkie kolumny z menu i zapisuje do wewnetrznych zmiennych
  21. showADMIN_columns(); //zwraca wszystkei kolumny z tablicy
  22. showADMIN_menu($id);
  23. //wyswietlanei menu dla panelu administracyjnego i dla uzytkownika
  24.  
  25. form_add_menu);
  26. form_edit_menu($id);
  27.  
  28. form_links_new(); //z mozliwoscia uruchomienia kilka razy i dodawania kilku linkow na raz
  29. //podczas dodawania nowego linku inne beda wyswietlane aby moc dobrze wybrac jego pozycje
  30.  
  31.  
  32. NIEZALEZNE STRONY
  33. > klasa article
  34. ?site=article&id=24 // artykul
  35. ?site=articles_list=3&mode=text // skroty artykulow wedlug listy
  36. ?site=articles_list=3&mode=list // lista tytulow z odnosnikami do artykulow
  37.  
  38. > klasa users
  39. ?site=register
  40. ?site=login
  41. ?site=users&user=34 //iformacje o uzytkowniku < zalezne od tego czy przegladajacy jest zalogowany
  42. ?site=users&user=0 //ja
  43. ?site=myacc&action=stats
  44. ?site=myacc&action=edit
  45.  
  46. > klasa messages
  47. ?site=messages > automatycznie do ?site=messages&action=odebrane
  48. ?site=messages&action=write
  49. ?site=messages&action=odebrane
  50. ?site=messages&action=wyslane
  51.  
  52. > klasa contact
  53. ?site=contact // w miare rozwijania skryptu pojawi sie ?site=form
  54.  
  55. > klasa questionnaire
  56. ?site=questionnaire&id=7
  57.  
  58.  
  59. backend:
  60.  
  61. > klasa menu();
  62. add_menu();
  63. edit_menu();
  64. del_menu();
  65.  
  66. links_position($kierunek, $link);
  67. links_new($name, $url, $parent, $position) //po dodaniu linka na srodkowej pozycji, wyzsze beda musialy zostac przesuniete o jeden w gore
  68. links_del($id); // po skasowaniu linka z srodkowej pozycji, pozycjie innych bede musialy zostac zmienione
  69.  
  70. strony
  71. dodaj strone
  72. - zawartosc:
  73. - zwykla strona
  74. - kontakt
  75. - artykul
  76. - jeden z dostepnych //sql: article, id
  77. - pisz nowy
  78. - lista artykulow
  79. - dodaj do menu
  80. - nazwa
  81. - tagi
  82. - opis
  83. - tresc
  84.  
  85. artykuly
  86. //artykuly zawsze dostepne przez ?site=article&id=31
  87. pisz artykul
  88. - nazwa
  89. - autor
  90. - data utworzenia
  91. - 1/0 utworz nowa strone dla artykulu ?site=smarowanie_lancucha | sql: article,34
  92. - listy // listy, na ktorych znajdzie sie art(dowolna ilosc)
  93. - tytul linkiem - jesli artykul bedzie sie znajdowal na innej stronie niz ?site=article&id=23, to jego tytul bedzie linkiem do tej wlasnie strony
  94. - skracaj do x znakow, jesli jest wyswietlany z poziomu listy
  95.  
  96.  
  97.  
  98. skrypt lista
  99. Rowery.pl > artykuly > poradniki > jak smarowac lancuch
  100. Rowery.pl > artykuly > nieprzypisane > co nowego w sezonie 2012?
  101. > lista - tak z ktorej kliknieto artykul, jesli kliknieto bezposrednio to bedzie tak:
  102. Rowery.pl > artykuly > co nowego w sezonie 2012?
  103.  
  104.  
  105.  
  106.  
  107. Rowery.pl > sondy > Jak oceniasz strone?
  108.  
  109. Rowery.pl > artykuly > poradniki > jak smarowac lancuch
  110. Rowery.pl > artykuly > nieprzypisane > co nowego w sezonie 2012?
  111. Rowery.pl > artykuly > jak smarowac lancuch
  112. Rowery.pl > artykuly > co nowego w sezonie 2012?
  113.  
  114. Rowery.pl > uzytkownicy(jesli niezalogowany to: > logowanie; jesli zalogowany to: > moje konto)
  115. Rowery.pl > uzytkownicy > logowanie
  116. Rowery.pl > uzytkownicy > rejestracja
  117. Rowery.pl > uzytkownicy > moje konto
  118. Rowery.pl > uzytkownicy > moje konto > statystyki
  119. Rowery.pl > uzytkownicy > moje konto > edycja
  120. Rowery.pl > uzytkownicy > moje konto > wiadomosci(oddzielny skrypt dla wiadomosci)
  121. Rowery.pl > uzytkownicy > moje konto > wiadomosci > odebrane
  122. Rowery.pl > uzytkownicy > moje konto > wiadomosci > wyslane
  123. Rowery.pl > uzytkownicy > moje konto > wiadomosci > napisz
  124. Rowery.pl > uzytkownicy > tomek2014
  125. Rowery.pl > uzytkownicy > Kamil1994
  126. Rowery.pl > uzytkownicy > Kamil1994 > napisz wiadomosc
  127. Rowery.pl > uzytkownicy > Kamil1994 > zapros do znajomych
  128.  
  129. konsola:
  130.  
  131. zarzadzanie klasami przez konsole


Nie wiem do konca jak np. wyswietlac artykuly - czy robic dla kazdego artykulu nowa podstrone, czy przez ?site=article&id=x, jak zarzadzac listami artykulow - jak spelnic wszystkie zaleznosci pomiedzy klasami, tak aby to mialo jakis porzadek, co zrobic modulem niezbednym, a co dodatkowym pluginem, ktory mozna zaladowac lub nie, jak najlepiej podzielic baze danych.

Jak powinien wygladac porzadny projekt systemu?
Fifi209
Zainteresuj się jakimś systemem szablonów typu: smarty. Bo widzę, że robisz coś podobnego jednak wynajdujesz koło na nowo.
Kamil Pietrzak
Heh, znowu ta Smarty... Nie bardzo widze sens - bo str_replace, to prawie to samo co $s->assign, moze nie trzeba podawac 3 argumentu i zarzadzanie trescia jest troche lepsze, ale to nie powod, aby ladowac klase Smart. Gdyby mi to ciazylo, to napisalbym wlasny system szablonow, ale jakby nie patrzec, to str_replace, to tylko jeden niewielki wiersz;)

Problemem jest polaczenie klas takich jak: klasa wczytujaca podstrony i klasa wyswietlajaca artykuly - co dac do tabeli artykulow, a co do tabeli podstron etc.
Fifi209
Cytat(Kamil Pietrzak @ 9.10.2010, 10:54:50 ) *
Problemem jest polaczenie klas takich jak: klasa wczytujaca podstrony i klasa wyswietlajaca artykuly - co dac do tabeli artykulow, a co do tabeli podstron etc.

Zainteresuj się wzorcem MVC.
Kamil Pietrzak
Wlasnie - jak to przewiduje MVC? Dozwolone jest uzywanie funkcji do zarzadzania uzytkownikami i do wyswietlania informacji o uzytkownikach w jednej klasie, czy MVC kaze wszystko podzielic na osobne systemy?
Fifi209
Na logikę zarządzanie nie ma nic wspólnego z wyświetlaniem informacji o nich, zgadza się?
Crozin
Cytat
Jak powinien wygladac porzadny projekt systemu?
Nikt, Ci tu nie napisze 50-cio stronicowej specyfikacji dla systemu.
Cytat
Zainteresuj się wzorcem MVC.
Widzę, że teraz to odpowiedź na 90% pytań dot. ogólnego schematu aplikacji.
Cytat
czy MVC kaze wszystko podzielic na osobne systemy?
MVC jedyne co robi to rozdziela aplikację na trzy warstwy (logikę widoku, model i spajający je kontroler zajmujący się jedynie "pobocznymi" pierdołami), które powinny być w pełni niezależne, a komunikować się ze sobą na podstawie interfejsów.

Cytat
Heh, znowu ta Smarty... Nie bardzo widze sens - bo str_replace, to prawie to samo co $s->assign
Smarty jest o wiele potężniejsze - nie zmiania to faktu, że jako system szablonów to porażka. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.