Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ładowanie plików
wlamywacz
post
Post #1





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Witam. Jestem w trakcie projektowania swojego pierwszego poważnego framweworka którego mam zamiar używać w swoich aplikacjach. Struktura katalogów i plików jest identyczna jak w ZF czyli:
aplication
- controllers
- models
- views
library
public

Zastanawia mnie jak wykonać w takim systemie tzw. autoload? Myślałem nad stworzeniem dodatkowego kontrolera który przejmował by za mnie ten problem. Działało by to w to w ten sposób:
  1. <?php
  2.  
  3. $myClass = loader getInstance('aplication_models_myClass');
  4.  
  5. ?>

Loader ładował by potrzebny plik z odpowiednią klasą i zwracał jej obiekt. Jak wy rozwiązujecie taki problem ?

Psuje kod, miało być:
$myClass = loader::getInstance('aplication_models_myClass');

Ten post edytował wlamywacz 21.09.2008, 16:08:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zimi
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

Ostrzeżenie: (0%)
-----


Cytat
Właśnie o to chodzi że tak się nie da bo modele itp. mogą być rozsiane po kilka katalogach w różnych częściach aplikacji.

tak mogą być rozsiane w różnych częściach aplikacji... ale z góry możesz stwierdzić że nie będzie go np. w katalogu z obrazkami... dlatego aby skrypt nie przebijał się przez obrazki w poszukiwaniu klas, czy przez pliki innych dużych zbiorów plików

możesz jednak zapisać tylko:
  1. <?php
  2. $obiekt->szukaj('.');
  3. ?>

i mój skrypt przeszuka rekurencyjnie wszystko w katalogu bieżącym

zresztą to nie ma większego znaczenia... skrypt który podałem ma wykonać się tylko raz (gdy aplikacja przechodzi w tryb produkcyjny, w czasie tworzenia aplikacji można ją dołączyć do jakiegoś frontcontrolera) a plik, który wygeneruję jest autoloaderem który pozostaje już stały

jednym słowem ja mam 2 klasy:
- MapaKlas -> przeszukuje wg zaleceń "pliku konfiguracyjnego" którego przykład był poniżej, znajduje klasy, odczytuje jej nazwy i generuje klasę Autoloader'a
- Autoloader -> jak bedzie potrzebna klasa X wyszukuje klasę X w mapie i wczytuje

Cytat
Co za tym idzie, nie zgodzę się, że autoloader powinien zajmować się przeszukiwaniem katalogów.

Zdecydowanie, zbyt dużo czasu by to zajęło...

Cytat
Od tego powinno być osobne narzędzie, które budowało w/w mapę na żądanie programisty (wyobrażacie sobie żeby w środowisku developerskim, przy każdym teście autoloader przeszukiwał katalogi?).

Właśnie od tego jest moja MapaKlas, mówimy jej gdzie chcemy aby szukała (tylko dlatego żeby skrócić czas oczekiwania, bo wiemy że niektórych katalogów nie warto w ogóle otwierać, np. w /download/, /images/, /javascript/, /css/ klas PHP na pewno nie znajdziemy...)
reszta plików niezależnie od rozszerzenia może być otwarta i dokładnie przeszukana tokenizerem PHP w celu znalezienia nawet wielu klas w jednym pliku...
Go to the top of the page
+Quote Post

Posty w temacie
- wlamywacz   Ładowanie plików   21.09.2008, 16:05:39
- - Crozin   W ZF nazwa klasy jest równocześnie ścieżką do jej ...   21.09.2008, 20:03:53
- - LBO   Zależy w którą stronę chcesz pójść z autoloaderem....   21.09.2008, 20:12:38
- - ARJ   u mnie autoload opiera się na stworzonej mapie pli...   21.09.2008, 20:19:59
- - wlamywacz   Jeśli mógłbyś to wkleić na phpfi byłbym bardzo wdz...   21.09.2008, 20:27:57
- - ARJ   proszę: http://phpfi.com/355575 klasa nie ma komen...   21.09.2008, 20:39:45
- - LBO   Temat o którym pisałem wcześniej: Włączanie plików...   21.09.2008, 20:44:14
- - wlamywacz   Czytałem ten temat, dziękuje za klasę jutro ją prz...   21.09.2008, 20:46:19
- - likemandrake   Ja kiedyś rozwiązałem ten problem w taki sposób: ...   21.09.2008, 21:31:10
- - zimi   dorzuce może jeszcze swoje 3 grosze, w niektórych ...   22.09.2008, 16:21:27
- - wlamywacz   Nie rozumiem ? Właśnie o to chodzi że tak się ni...   22.09.2008, 18:00:58
- - LBO   Cytat(wlamywacz @ 22.09.2008, 19:00:5...   22.09.2008, 18:11:58
- - wlamywacz   Jednak załadowanie do nich odpowiednich plików mus...   22.09.2008, 18:48:59
- - zimi   CytatWłaśnie o to chodzi że tak się nie da bo mode...   22.09.2008, 19:45:39
- - wlamywacz   Doszliśmy już do tego rozwiązania I właśnie je wy...   22.09.2008, 19:57:23
- - LBO   Jeżeli w Twoim systemie masz podział na ...   22.09.2008, 20:08:23
|- - Sedziwoj   Cytat(LBO @ 22.09.2008, 21:08:23 ) I ...   23.09.2008, 10:09:08
- - likemandrake   LBO, mam rozumieć, że stworzyłeś sobie klasę, któr...   22.09.2008, 20:13:30
- - LBO   Cytat(likemandrake @ 22.09.2008, 21:13...   22.09.2008, 20:21:45
- - Cysiaczek   Ja kiedyś popełniłem takie co...   22.09.2008, 21:29:45
- - LBO   Cytat(Cysiaczek @ 22.09.2008, 22:29:4...   22.09.2008, 22:42:04
- - Cysiaczek   Widzisz, z symlinkmi to jest tak, że nic nie musis...   23.09.2008, 00:33:53
- - LBO   He he, spoko Cysiaczku. Wiem co to są symlink...   23.09.2008, 00:38:38
- - LBO   Cytat(Sedziwoj @ 23.09.2008, 11:09:08...   23.09.2008, 13:43:40
- - Sedziwoj   @LBO Może za ostro zareagowałem, ale tak to napisa...   23.09.2008, 15:31:22
- - LBO   Cytat(Sedziwoj @ 23.09.2008, 15:45:42...   23.09.2008, 15:37:00
|- - Sedziwoj   Cytat(LBO @ 23.09.2008, 16:37:00 ) Z ...   23.09.2008, 15:52:45
- - LBO   Cytat(Sedziwoj @ 23.09.2008, 16:52:45...   23.09.2008, 16:21:55


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 02:40