![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 27.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
poznałem już lekko php i przymierzam się do napisania pierwszej aplikacji przynajmniej częściowo obiektowo. Drodzy koledzy koleżanki nie daje mi jednak spokoju jedna kwestia. Mianowicie struktura katalogów. Przeczytałem już kilka poradników ale w żadnym z nich nie znalazłem odpowiedzi na następujące pytanie : Moja struktura wygląda następująco ROOT ..............Config ..............Class ..............Files ..............Cache ..............Tmp i teraz w katalogu config tworzę skrypt z danymi dostępu do bazy o nazwie db_access.php a tam
następnie jest plik base_config.php (w tym samym katalogu) gdzie są wszelkie definicje w tym definicje katalogów. Moje pytanie brzmi czy jak należy includować plik do pliku tak aby w samej aplikacji nie trzeba było dodawać 10 requariów tylko powiedzmy jeden 2 a reszta była by zawarta we sobie np. db_access.php -> klasy z połączeniem z bazą base_config.php -> (IMG:style_emoticons/default/questionmark.gif) ? i tak dalej. Nie chce powielać złych wzorców ani uczyć się robić tego niechlujnie dlatego moja prośba o pomoc doświadczonych kolegów (IMG:style_emoticons/default/smile.gif) Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
W php istnieje taka magiczna funkcja jak __autoload. Jej parametrem jest nazwa klasy, która ma być załadowana. Możesz nazwać pliki tak samo jak nazwy klas, które się w nich znajdują i w ten sposób będziesz miał problem ładowania klas z głowy.
|
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 27.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. Niestety nie jest to to o co mi chodziło. Generalnie chodzi mi o to jak includować pliku do Siebie tak, ażeby nie linkować ich za każdym razem do nowego skryptu. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Możesz stworzyć jeden ogólny plik, w którym będziesz ładował reszte plików. Tym sposobem dołączasz do kodu tylko ten jeden ogólny, a reszta leci z automatu.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 27.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie o coś takiego mi chodziło a możesz mi z doświadczenia powiedzieć czy to ma być tylko plik w którym będą się schodziły wszystkie includy czy np. ma to być jakiś plik który potem będzie już generował jakąś cześć strony. Jak rozwiązują ten problem profesjonaliści (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jak profesjonaliści to rozwiązują to nie wiem (IMG:style_emoticons/default/tongue.gif) Jeśli o mnie chodzi to zazwyczaj mam plik functions.php, w którym trzymam jakieś tam swoje funkcje oraz ładuje pliki, które są niezbędne, a których nie dam rady załadować przy pomocy __autoload. Jeśli w kodzie zajdzie potrzeba dociągnięcia jakiegoś pliku to mam przygotowaną do tego celu klasę, która "szuka" pliku, którego potrzebuje i zajmuje sie obsługą błedów.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 380 Pomógł: 59 Dołączył: 24.04.2010 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
Krótki przykład:
Plik głowny aplikacji:
Klasa aplikacji:
Jak widać bez includowania plików manualnie - dodajemy plik do katalogu lib/, który musi mieć nazwę w postaci: Logger.class.php lub interfejs w postaci: Module.interface.php - ponadto wykorzystanie RecursiveDirectoryIterator umożliwia nam tworzenie drzewa katalogów w lib/ tak jak nam się to żywnie podoba (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 15:55 |