Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie jak skonstruować aplikację "modułową"
Forum PHP.pl > Forum > PHP > Object-oriented programming
Elber
Witam,

na wstępie napiszę, że to będzie mój pierwszy projekt napisany w OOP, dotychczas pisałem wszystkie projekty proceduralnie. Wyrobiłem sobie swój system pisania i struktury katalogów, wszystkie funkcje dotyczące np logowania miałem w jednym pliku, funkcje dotyczące użytkowników w innym pliku (w tym samym katalogu) do tego 1 plik główny który ładował te wszystkie pliki (zawsze gdy dodawałem nowy plik z funkcjami dopisywałem do niego linijkę z require_once nowego pliku) Także porządek i przejrzystość według mnie była dobra smile.gif Do tego 1 plik w którym miałem rozpisany "router" czyli jaki link ma kierować do jakie pliku z "szablonem" tu też przy każdej nowej funkcji i podstronie w systemie ten plik edytowałem i dopisywałem nowy adres url i plik wink.gif Także tak by to wyglądało wink.gif Napisałem tak kilka większych rzeczy i wszystko ładnie śmiga i jest przejrzyste, ale nadszedł czas na samorozwój i przejście na następny level wtajemniczenia biggrin.gif

Zastanawiam się jak dobrze napisać aplikację w której do istniejącego działającego systemu, np. czysto teoretycznie jakiś tam prosty CRM w którym mamy Bazę klientów, powiadomienia, zadania itp. Pewno gdybym przeniósł swoje wcześniejsze praktyki dodanie nowej funkcji wiązałoby się z edycją pliku "router" oraz pliku który wczytuje daną klasę, ale czy da się to jakoś zautomatyzować żeby tych plików nie edytować tylko żeby system sam widział że jest nowa funkcja (link w menu) i umiał pokierować do nowej podstrony? Jak by to miało w teorii wyglądać ?
zegarek84
jeśli masz na myśli rozbudowę "starego" systemu to Ci nie pomogę...

a jeśli zamierzasz tworzyć coś od nowa to zainteresuj się ZF bądź Symfony, tam masz zaimplementowany MVC oraz możesz mieć domyślnie zdefiniowany routing z adresów url na kontrolery i widoki, oczywiście w kontrolerach operujesz na modelu... szkoda się rozpisywać, po prostu spróbuj, ale jeśli już to nie patrz wstecz lecz ZF2 lub SF2...

ps. jak to jest początek OOP to na początku nie próbuj rozgryźć co pod maską siedzi, jak dokładnie działa Freamwork tylko stosuj się do zasad a szybko załapiesz o co biega i zależności...
Elber
Chcę owy projekt pisać od 0 smile.gif Wiem jak działają frameworki, wiem co to MVC, jednak nie chcę na ową chwilę w żaden się zagłębiać smile.gif Czy da się coś takiego o czym napisałem stworzyć nie używając MVC ?
Szymciosek
Wszystko się da, wystarczy próbować. MVC na pewno ułatwi Ci trochę zadanie itd.
kleus
Cytat
Chcę owy projekt pisać od 0 Wiem jak działają frameworki, wiem co to MVC, jednak nie chcę na ową chwilę w żaden się zagłębiać


A po co wymyslać koło na nowo?
weź się za framework jakiś - kolega poleca Zenda i Symfony - ja dodam CakePHP i Lavarel
Cake jest nieco hmm lzejszy do nauki ale to moja opinia
zegarek84
Cytat(Elber @ 12.04.2013, 00:00:23 ) *
Czy da się coś takiego o czym napisałem stworzyć nie używając MVC ?

wg. mnie raczej nie.. bez FW da się pisząc coś, co można by nazwać szkieletem bądź mini FW pisząc odpowiednio przynajmniej 1 klasę widoku (potem ją implementując) i 1 klasę tłumaczącą routing na kontrolery... resztę i tak trzeba pisać... no i jeszcze zapomniałem o autoloaderze klas... gdzie przy modułach w zasadzie dla każdego modułu jest osobny autoloader... jednak nie chodzi o chwalenie się rozwiązaniami czy pokazywanie jak to zrobić bo zaraz zboczymy z głównego tematy ;p

no i tu nie chcę Ci sugerować żadnego FW i sorki za to co napiszę, ale wiele czasu na to nie poświęcisz a trochę z modułami może Ci to rozjaśni sprawę... i szczerze nie będzie to przeprawa przez mękę... spruj przerobić toutorial ZF2 i ten podstawowy szkielet aplikacji ze strony ZF2 zaimplementuj - lepiej to jest rozwiązane jak w ZF1 a i wiele kodu nie będziesz musiał dopisywać/kopiować ze strony a powinno Cię to lekko nakierować... a później jak chcesz to ludzie polecają też SF... jednak o coś pasuje Ci zahaczyć i czasem chcący się rozwijać trzeba na ślepo coś robić próbując to zrozumieć na tyle, na ile można...

pozdro...
Elber
No właśnie cały problem w tym że nie lubię korzystać z czegoś czego kodu ani działania nie znam, nie wiem czy to dobre czy nie dobre, ale wolę mieć pełną kontrolę nad każdą linijką kodu w projekcie, wtedy przynajmniej jak coś gdzieś się sypie to potrafię znaleźć gdzie i dlaczego wink.gif

A jak powinien wyglądać taki szkielet ? Mógłby mi ktoś to rozjaśnić w teorii ?
pyro
To jak powinien wyglądać szkielet to właśnie założenia wzorca MVC, którego poimo Twojej deklaracji najwidoczniej nie znasz (bo by nie było takiego pytania).

Co do frameworków - jak się nauczysz to będziesz miał dokładną kontrolę nad każdą linijką. Nie bój się, ja też mam czasem wrażenie, że po wzięciu się za coś nowego okaże się, że coś nie będzie mi pasować, a potem okazuje się, że pomysły które miałem wcześniej zostały zaimplementowane wink.gif .
Elber
Znaczy może źle napisałem co do MVC, nie jest mi to pojęcie obce, wiem że coś takiego jest, wiem że to model, widok i kontroler, ale jeszcze nie zagłębiałem się w jego tajniki biggrin.gif Najzwyklej takie obszerne pojęcia i zmiany generalne w moim stylu programowania dotychczas mnie przerażały biggrin.gif Ale najwyższy czas się rozwinąć w końcu biggrin.gif

Ok więc moja aktualne zadanie to poznanie tajników MVC i z czym się to je i jak bede miał jakieś pytania to będę pytał na forum smile.gif Póki co czeka mnie długa lektura biggrin.gif
matiit
Cytat
opce

Jeszcze słownik poczytaj smile.gif
Rozwalił mnie ten błąd smile.gif
Elber
Cytat(matiit @ 12.04.2013, 10:09:09 ) *
Jeszcze słownik poczytaj smile.gif
Rozwalił mnie ten błąd smile.gif


A tam literówka ;P
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.