Le bootstrapping
- Version 4.x
- Version 3.x
- Version 2.x
La librairie Jaxon peut démarrer à partir d'un fichier de configuration, qui définit tout ce dont elle a besoin pour fonctionner: les fonctions, les classes, les vues, et toutes les autres options.
// Configuration
jaxon()->app()->setup('/path/to/config.php');
Le fichier de configuration comporte deux sections principales, identifiées avec les mots-clés app
et lib
.
La section lib
contient la configuration de la librairie, et de ses plugins.
La section app
contient la configuration des fonctions de niveau applicatif telles que l'export des classes et fonctions, ou les vues.
Les fonctions
La section app.functions
de la configuration contient un tableau de fonctions à exporter.
En voici un exemple.
'app' => [
'functions' => [
'hello_world',
'sayhello',
],
],
Des options peuvent être ajoutées aux fonctions.
'app' => [
'functions' => [
'hello_world' => [
'mode' => "'asynchronous'",
],
],
],
Les classes
La section app.classes
de la configuration contient un tableau de classes à exporter.
En voici un exemple.
'app' => [
'classes' => [
'HelloWorld',
'OtherClass',
],
],
Des options peuvent être ajoutées aux méthodes des classes.
'app' => [
'classes' => [
'HelloWorld' => [
'functions' => [
'setColor' => [
'mode' => "'synchronous'"
],
'*' => [
'mode' => "'asynchronous'"
],
],
],
],
],
Les répertoires
La section app.directories
de la configuration contient un tableau des répertoires dans lesquels se trouvent les classes à exporter.
Chaque entrée du tableau représente un répertoire, défini avec son chemin complet et les informations suivantes:
namespace
: le namespace associé au répertoire.autoload
: optionnel, booléen, true par défaut, indique si les classes dans le répertoire doivent être autoloadées.separator
: optionnel, le séparateur dans les noms des classes javascript, peut prendre les valeurs.
(par défaut) ou_
.protected
: optionnel, un tableau de méthodes à ne pas exporter dans les classes javascript, vide par défaut.
En voici un exemple.
'app' => [
'directories' => [
dirname(__DIR__) . '/classes' => [
'namespace' => '\\Jaxon\\App',
// 'autoload' => true,
// 'separator' => '.',
// 'protected' => [],
]
]
]
Des options peuvent être ajoutées aux méthodes des classes.
'app' => [
'directories' => [
dirname(__DIR__) . '/classes' => [
'namespace' => '\\Jaxon\\App',
// 'autoload' => true,
// 'separator' => '.',
// 'protected' => [],
'classes' => [
\Jaxon\App\Test\Bts::class => [
'functions' => [
'*' => [
'mode' => "'asynchronous'",
]
]
]
]
]
]
]