Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczny including
Forum PHP.pl > Forum > PHP
blackstone
Zastanawiam się ( na razie z czystej ciekawości/chęci rozwoju , ale może być to przydatne praktycznie ) , jak obejść w aplikacji ( pisanej w czystym php, bez frameworka ) includowanie plików. Posłuże się przykładem z ( na razie jedynego praktycznie opanowanego smile.gif ) frameworka codeigniter. Jest tam plik index.php który ( o ile dobrze zrozumiałem dokumentację) steruje zasobami, i gdy chce jakiś zasób odpalić np w kontrolerze aplikacji mogę go odpalić od razu albo za pomocą klasy load ( która ładuje inne klasy nieładujące się automatycznie ) . Wystarczy tylko że klasa kontrolera dziedziczy po klasie systemowego kontrolera ( ale nigdzie nie ma w pliku ani jednego include() ). Zastanawia mnie co zrobić ( nie chodzi mi o dokładny przepis ale o to zeby zrozumieć >>>zasadę/mechanizm<< działania takiego rozwiązania ) aby móc samemu otrzymać taki efekt. Czyli przykładowo teraz jeśli w pliku a.php chce odpalić jakąś funkcje/klasę pliku b.php to w tym pierwszym po prostu robię include() do tego drugiego. A chciałbym otrzymać efekt taki jak we frameworku, czyli że nie muszę includować ( za pomocą include() ) b.php do a.php tylko że np pewne klasy/funkcje załądują się automatycznie albo i będzie jedna klasa która łąduje inne ( co generalnie ż wiem jak zrobić , ale i tak klasa load musi się załadować z automatu, więc powracamy do punktu wyjścia smile.gif ). Tak, jak pisałem wcześniej nie chodzi o dokładny przepis , ale o to żeby zrozumieć zasadę działania. Z góry dzięki za odpowiedzi smile.gif
Tomplus
Ja rzucę jeszcze link:

http://php.net/manual/en/language.oop5.autoload.php

Przykład z manuala
  1. <?php
  2. spl_autoload_register(function ($class_name) {
  3. include $class_name . '.php';
  4. });
  5.  
  6. $obj = new MyClass1();
  7. $obj2 = new MyClass2();
  8. ?>
blackstone
Dzięki za odpowiedzi, jak przydatne ale to od innej strony. Żeby uzyskać ten efekt wystarczy ze jest jeden plik scalający wszystko w całość.

Przykłado plik index php includuje pliki one.php i two.php. Aby odpalić jakąś funkcję/klasę pliku two.php w pliku one.php ( a dokładnie w jego funkcji/klasie ) wystarczy odpalać one.php z poziomu pliku scalajacego ( czyli tutaj przyładowo index). Nie trzeba żadnego includingu ( po za plikiem scalającym ). Ale i tak odpowiedzi w temacie, i cenne więc klikam na "pomógł".
Pyton_000
Uzywanie composera jest mega wygodne bo nie musisz dbać o pliki. Wystarczy podać path, zrobić update i gotowe. Dołączasz 1 plik do całego projektu a on sam dba żebyś dostał to co chcesz.

PS. Do małych projektów też jest dobry.
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.