Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Netbeans - include path
Szymciosek
post
Post #1





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Witam,
posiadam taki autoloader:
  1. <?php
  2.  
  3. function __autoload($className)
  4. {
  5. $className = ltrim($className, '\\');
  6. $fileName = '';
  7. $namespace = '';
  8.  
  9. if ($lastNsPos = strrpos($className, '\\'))
  10. {
  11. $namespace = substr($className, 0, $lastNsPos);
  12. $className = substr($className, $lastNsPos + 1);
  13. $fileName= str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
  14. }
  15.  
  16. $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
  17.  
  18. if (file_exists($fileName))
  19. include $fileName;
  20. else echo 'Class ' . $fileName . ' does not exist';
  21. }


Na poziomie całego projektu YYY (Source files) działa wyśmienicie lecz za chiny nie mogę dostać się do plików, które dodam poprzez PHP INCLUDE PATH (properties projektu YYY).

...

Stworzyłem nowy projekt XXX z taką strukturą:
- Source files (domyślnie)
-- package
--- log/Logs.php -> namespace package\log;
--- Connect.php -> namespace package;
--- Validation.php -> namespace package;

Próbuję zrobić:
use package\log\Logs;
Logs::error('message');

Lecz otrzymuję błąd, że nie znajduje pliku logs.php...
Domyślam się, że problem leży po stronie samego autoloadera, ale jak to zmienić?

Dodam jeszcze, że sam autoloader leży w YYY/Source files/src/cms/autoloader.php, a ładowany jest w miejscu YYY/Source files/index.php
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Szymciosek
post
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Albo ja nadal nie rozumiesz albo Ty myślisz, że wszystkie foldery będę miał w tym samym folderze lub podfolderach obok index.php, który ładuje autoloader.

Fizycznie pliki na dysku są rozmieszczone tak:
Projekt CMS: F:\WORK\cms\ -> tutaj index.php + inne foldery
Projekt XX: F:\WORK\xx -> tutaj jest package/log/Logs.php, package/Validation.php, package/Connect.php

Teraz w projekcie CMS ustawiam w properties > PHP Include path do projektu XX, więc wygląda to tak:
https://dl.dropbox.com/u/21239599/1-1.JPG

I teraz jak z index.php widocznego na załączonym screenie dostać się do MainController używając tylko tego?
  1. use controllers\MainController;
  2. new MainController();


Tutaj ścieżka wg Twojego przekazanie MainController - powinna być tam, gdzie jest index.php, a tak nie jest...

Ten post edytował Szymciosek 2.04.2013, 15:52:45
Go to the top of the page
+Quote Post

Posty w temacie


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: 30.12.2025 - 12:48