Se vogliamo aggiungere un nostro namespace personalizzato potendo caricare le classi attraverso l’autoloader dei Silex dobbiamo seguire questa procedura.
Creiamo la cartella per le nostre classi:
$ cd my-silex-project/src
$ mkdir NewNamespace
Creiamo la classe che vogliamo caricare:
$ vi src/NewNamespace/MyClass.php
Nella classe mettiamo il codice per registrare il nuovo namespace:
namespace NewNamespace;
class MyClass {
public function __construct() {
}
}
Aggiungiamo il nostro namespace al composer.json in modo che l’autoloader di Silex possa utilizzarlo:
{
"require": {
"silex/silex": "1.0.*@dev"
},
"autoload": {
"psr-0": {
"NewNamespace": "src/"
}
}
}
Lanciamo* composer* update
$ composer update
Ora possiamo utilizzare le classi del nostro namespace nel progetto Silex.
use Silex\Application;
use NewNamespace\MyClass;
require_once __DIR__.'/../vendor/autoload.php';
$app = new Application();
//add myclass
$app['myclass'] = function () {
return new MyClass();
};