Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Z kodu strukturalnego na obiektowy
Forum PHP.pl > Forum > PHP > Object-oriented programming
Max Damage
Cześć, zrobiłem sobie takiego prostego CMSa : http://mnemonic.freevar.com
Strona jest napisana strukturalnie z wykorzystaniem php, mysql, pdo, smarty, javascript i coś tam ajaxa.
Chciałbym ją teraz przepisać na obiektówke, tylko nie za bardzo wiem gdzie miałbym użyć jakiś klas, wzorców itp.
Bo tak naprawdę większość kodu php na stronie, to zapytania do bazy danych.

Od razu mówię,że nie chodzi mi o żadne tłumaczenia co to klasy itp. Raczej umiem pisać obiektowo, chociaż żadnych wzorców nigdy nie stosowałem. Chodzi mi jedynie jakie napisać klasy, z jakimi metodami, jak to porozdzielać na pliki i połączyć jakimiś wzorcami.

Na stronie używam teraz tylko dwóch klas. Do stronicowania, i do uploadu obrazków.
Login i hasło dla usera: test test

Co prawda strona nie jest zupełnie skończona, trzeba poprawić galerię i rejestrację (trochę się skopała przez ajaxa), ale mam chwilowo dość javascriptu ...
A tak w ogóle to jest to moja pierwsza strona, jeśli kogoś to dziwi patrząc na ilość moich postów, to cóż, większość z nich napisałem dawno mając pierwszy kontakt w programowaniem w ogóle : )
albrzykowski
Witaj,

Wydaje mi się ( i pewnie wiele osób podzieli moje zdanie), że najlepiej byłoby spojżec na budowę popularnych frameworków. Tu odrazu jednak polecam Kohanę, ze względu na jej niewielkie rozmiary i szybką możliwości połapania się.

Ciężko byłoby wypisac Ci klasy oraz metody, bo to mogłoby zając wiele stron.

Moim skromnym zdanie najlepiej zacząc (opierając się o wzorzec MVC) od:

- Klasa do obsługi DB lub np sięgnięcie po PEAR DB i podobne,
- Kontroler (bardzo wiele przykładów),
- Klasa do obsługi widoków lub np. implementacja Smarty

Później możesz rozbudowywac do woli:

Obsługa parametrów HTTP, ruter, obsługa sesji, klasa zarządzająca użytkownikiem, uprawnienia, walidacja danych, własna implementacja obsługi wyjątków.

Swojego czasu "świat" obiegła wiadomośc, że w ramach nauki PHP młody chłopak napisał własną platformę blogową a mianowicie Hyrp. Kod jest naprawdę do ogarnięcia (jeżli dobrze pamiętam dwa kontrolery- front,admin) napisany w myśl MVC. Możesz więc śmiało sciągnąc i zobaczy kod gotowej aplikacji.

Pozdrawiam!
jareeny
Cytat(albrzykowski @ 28.10.2009, 00:22:22 ) *
Moim skromnym zdanie najlepiej zacząc (opierając się o wzorzec MVC) od:

- Klasa do obsługi DB lub np sięgnięcie po PEAR DB i podobne,
- Kontroler (bardzo wiele przykładów),
- Klasa do obsługi widoków lub np. implementacja Smarty


A moim skromnym zdaniem, Model to nie tylko baza danych. To jest lekko wprowadzanie w błąd.
albrzykowski
OK,

Żeby nie brnąc w długą dyskusję chciałem przekazac to i wydaje mi się, że tu tkwi sedno:

http://wortal.php.pl/var/phppl/storage/ima...L/mvc_large.jpg
http://book.cakephp.org/img/basic_mvc.png
http://stannard.net.au/blog/media/simple-m...amework/mvc.gif

Pozdrawiam
mad/
Myślę, że mam pewien pomysł, proponuję najpierw zrobić klasę, która zbiera dane wejściowe:
$_GET
$_POST
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV
i na ich podstawie określa, jaka podstrona będzie ładowana, potem klasa, która na podstawie danych wygenerowanych z poprzedniej klasy (np. tablica z listą plików potrzebnych do załadowana, takich jak ogólne szablony strony, zestaw instrukcji na temat pobierania danych przez PDO), dalej klasa, która jako argumenty konstruktora przyjmuje dane wygnerowane przez jedną z funkcji poprzedniej klasy i za pomocą DOM XML (klasa DOMDocument) gneruje finalny dokument XHTML.
PS. Jeśli chcesz korzystać z XHTML polecam dodać deklarację XML na początku dokumentu, a dla przeglądarek nIE obsługujących XHTML dzięki zawartości pola $_SERVER['HTTP_ACCEPT'] (znamy je dzięki pierwszej klasie, o której piszę), przygotować wersję HTML/RSS/TXT.
Cysiaczek
Skoro napisałeś to raz, to nie teraz tego nie przepisuj, jeśli nie masz powodu (czyli jeśli serwis działa).
Cytat
Od razu mówię,że nie chodzi mi o żadne tłumaczenia co to klasy itp. Raczej umiem pisać obiektowo, chociaż żadnych wzorców nigdy nie stosowałem. Chodzi mi jedynie jakie napisać klasy, z jakimi metodami, jak to porozdzielać na pliki i połączyć jakimiś wzorcami.

Polecam jakąś książkę, bo jeśli nie wiesz jakie napisać klasy jak rozdzialać na pliki i jakimi wzorcami to łączyć, to ledwie raczkujesz w tej tematyce i nasze tłumaczenia Tobie podstaw projektowych to przesada. Na forum jest pełno tematów dotyczących konkretnych zagadnień i w jaki sposób do nich podejść od strony projektowej.

Zamykam
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.