Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> __autoload z dwóch różnych źródeł
zephyr7
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 3.11.2005

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


Chciałbym zapytać, czy da się skłonić funkcję "autoload" do ładowania klas z dwóch różnych folderów, w zależności od przekazywanego parametru.

Mam prosty framework, a w nim dwa katalogi: core\classes i app\controllers

chciałbym wywołać funkcję z core, np. db::get(); - i załadować klasę z core\classes\db_class.php

a równocześnie załadować właściwy kontroler z app\controllers\pages_controller.php

funkcja autoload może ładować brakujące klasy, ale czy da się nią pokierować w zależności od jakiegoś parametru?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MicNeo
post
Post #2





Grupa: Zarejestrowani
Postów: 37
Pomógł: 7
Dołączył: 21.11.2004
Skąd: Kraków / Nowy Sącz

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


Można zrobić np tak. Nazwy klas tworzysz według takiego wzorca:
core_classes_dbClass.php

A autoload tak wygląda:
  1. function __autoload($classname)
  2. {
  3. $path = str_replace('_', DIRECTORY_SEPARATOR, $classname);
  4. $path .= '.php';
  5. require_once ($path);
  6. }


Czyli każde _ to jest spearator katalogów. Możesz oczywiście korzystać z innego wzorca nazewnictwa, ja do tego dorzucam zawsze class (u mnie by to było: class.db.php). Pamięasz o dobrym nazewnictwie i problem z głowy (IMG:style_emoticons/default/smile.gif)

W twoim konkretnym przypadku, musiałbyś z nazw plików wywalić _ i dać np .
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.12.2025 - 01:00