Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Use i namespace, a ładowanie klas
Forum PHP.pl > Forum > PHP > Object-oriented programming
bartek10
Witam, jestem początkującym i mam takie może nietypowe pytanie. Otóż powiedzmy mam jedną klasę:

  1. <?php
  2.  
  3. namespace Class/Class1;
  4.  
  5. use Class/Class2
  6.  
  7. class Class1{
  8. $object = new Class2();
  9. }
  10. ?>


Jak widać, klasa Class1 i Class2 są w tym samym katalogu. No i problem polega na tym, że zgłasza mi błąd:
Cytat
Class 'Class1' not found


Co robię nie tak?
!*!
A gdzie autoloader? Poszukaj pod "SPL". Klasy same z sobie w PHP się nie ładują.
bartek10
Ok, to w takim razie po co jest tak właściwie deklaracja use? Myślałem, że use powoduje załadowanie automatycznie klasy, w tym przypadku Class2...
Szymciosek
Owszem, powoduje, ale do tego musisz mieć napisany autoloader. Jak już kolega wyżej napisał możesz skorzystać z https://www.google.pl/search?q=spl+autoload...920&bih=955
Pilsener
Cytat
jestem początkującym
- w takim razie rozsądnie będzie pominąć temat przestrzeni nazw, bo pewnie utrudnisz sobie tylko naukę. A jak już się upierasz, to powinieneś bez problemu wyczytać jak to działa i do czego służy "use" czy "namespace": http://www.php.net/manual/en/language.namespaces.php
Na początek radzę Tobie poczytać o:
- set_include_path
- spl_autoload_register
- PSR-0
mstraczkowski
@Pilsener
Radzisz koledze ominięcie na razie tematu przestrzeni nazw, a za chwilkę sugerujesz mu na początek zapoznanie się ze standardem PSR-0, który de facto opiera się na używaniu namespace.

@Szymciosek
Samo use nie powoduje załadowania klasy przez autoloader, klasa zostanie dopiero załadowana po odwołaniu się do niej, np. przy tworzeniu jej obiektu.
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.