Aggiungere un proprio namespace in Silex

silex

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();
};