Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak zorganizować obiektową aplikację
Forum PHP.pl > Forum > Przedszkole
Pulpetto
Hej.
Jako, że dopiero zacząłem uczyć się pisania obiektowego w PHP mam pewien problem z organizacją kodu. Otóż ucząc się programowania pisałem sobie aplikację, która strasznie mi się rozrosła i spodobała. Ma m.in takie funkcjonalności jak: logowanie, rejestracja użytkowników, wysyłanie wiadomości między użytkownikami, dodawanie treści przez użytkowników, newsletter, formularz kontaktowy itd itp. Ogólnie rzecz ujmując pisząc sobie ten kod bardzo wzorowałem się na funkcjonalności skryptu a'la demotywatory i próbowałem napisać dla przećwiczenia coś o podobnej funkcjonalności (bardzo szeroko zakrojonej tongue.gif). Ogólnie pisanie tego to był jeden wielki bajzel: pisałem funkcjonalność, wrzucałem do pliku, ten lądował w katalogu "functions" i tak na funkcjach bazując miałem w index.php miliony include(); dołączając wszystkie te funkcje i sklejając je jeszcze w innych plikach. Podejście było takie sobie ale działało.

Teraz ucząc się pisać obiektowo chciałbym przepisać to sobie w ramach ćwiczeń ale właśnie bazując na klasach. Natomiast nie do końca wiem jak sobie zorganizować pracę. Planuję najpierw określić funkcjonalności (typu: logowanie, newsletter, wiadomości itd), potem podzielić to na klasy, a następnie... No właśnie i co dalej? Każdą klasę do osobnego pliku i później znowu w index.php wszystko na kupę includować i robić tam obiekty? Nie ma kto mi podpowiedzieć jak to powinno wyglądać dlatego zwracam się do was smile.gif Czy może mi ktoś zaproponować jak zorganizować sobie pracę żeby było to ładnie zaprogramowane?
CuteOne
Zakładając najpopularniejszą na dzisiejsze czasy architekturę MVC + modularność

Struktura katalogów
Kod
app
   |-layouts
   |-configs
   |-modules
        |-admin_panel
               |-controllers
               |-models
                      |-db (zależnie z czego korzystasz)
                      |-forms (obsługa formularzy)
               |-plugins
               |-views
                       |-templates
                       |-helpers
         |-  -=-
   |-plugins
   |bootstrap.php lub frontcontroller.php

public
   |-scripts
   |-css
   |-images
   |.htaccess
   |index.php

core(tu lądują klasy obsługujące wszystkie aspekty aplikacji, sama aplikacja tylko je rozszerza)


Zanim zaczniesz przygodę z projektowaniem aplikacji zobacz sobie w dowolny framework jak tam jest to rozwiązane smile.gif


ps. to tylko pomysł, sam musisz dojść metodą prób i błędów(lub ucząc się od lepszych np. z Yii, Zenda lub Symfony), która struktura jest najwygodniejsza smile.gif
ps2. zamiast include - poczytaj o autoloading
Pulpetto
Hmm no tak, czytając troszkę o Zendzie (jakiś czas temu bo teraz chciałbym zabrać się za coś prostszego - polecaliście Yii) poznałem w miarę tę architekturę ale szczerze mówiąc chyba nie jestem gotowy sam napisać aplikacji od zera trzymając się mvc. Chyba w takim razie rozsądniejszym wyjściem będzie nauczenie się korzystania z Yii - w sumie jak zacząłem o nim czytać to mi się spodobał.

Jedynie prosiłbym o wyprowadzenie mnie z błędu. Otóż często słyszałem o Zendzie czy Symfony, widziałem książki o nich itd itp. a o Yii dowiedziałem niedawno i mam wrażenie (mam nadzieję, że złudne), że Yii jest "gorszy", czy "nie tak profesjonalny" jak Zend czy Symfony. Czy tak jest? Chodzi mi też o to ile rzeczy, które można napisać w Zendzie można napisać także przy użyciu Yii - czy w pewnym momencie przy jakiejś szczególnie dużej aplikacji będzie trzeb się przerzucić na Zenda czy Symfony czy taki Yii da radę?


//Edit:
A to jeszcze z innej beczki pytanie. Co w wypadku gdybym chciał napisać mniejszą aplikację, bez użycia Frameworka i MVC? Jakiej konwencji wtedy się trzymać? Warto się wtedy przemęczyć z dołączaniem wszystkich plików i budowaniem jakiejś trochę zabałaganionej struktury?
CuteOne
Sam nie napisałem pełnej aplikacji pod Yii ale z tego co widziałem powinien dać radę większym projektom. Frameworka warto używać nawet w małych stronkach z dwóch powodów:
- raz napisaną aplikacje kopiujesz i używasz ponownie gdzie indziej
- dzisiaj strona, może być niewielka ale w razie konieczności rozbudowy strona na frameworku to cud-miód przy edycji w porównaniu z własnymi "wymysłami"
Pulpetto
Dobrze, posłucham Cię smile.gif zabiorę się za poznanie Yii - może jest prostszy niż Zend i uda mi się z nim dogadać na początek smile.gif
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.