Credevo di aver capito come funizionassero i namespace, ma qualcosa ancora mi sfugge.
Ho un semplice autoloader:
Codice PHP:
spl_autoload_register(function ($class){
include dirname(__DIR__).DS.str_replace('\\', DS, $class).'.php';
});
ed una struttura delle directory, ad esempio:
libs
|--View.php
|--helpers
|----FormHelper.php
Ora dentro FormHelper.php
Codice PHP:
namespace libs\helpers;
class FormHelper{...}
e dentro view.php
Codice PHP:
use libs\helpers\FormHelper;
namespace libs;
class View.php{
...
$helper = new FormHelper();
...
}
Ma così la classe FormHelper non viene trovata e se nel autoloader stampo il path che va ad includere noto che il namespace di FormHelper è quello corrente:
$class = libs\FormHelper.
Se invece nella view faccio $helper = new helpers\FormHelper(); allora funziona.
Mi sapete dire dov'è che sbaglio? Mica devo comunque includere il namespace nella new ? Questa cosa mi capita solo se la classe è in un sotto-namespace/directory
Grazie