local
¶On peut modifier n’importe quel fichier de vue ou de configuration via le dossier local
.
Ceci est possible grâce au comportement des fichiers chargés « en cascade » existant dans FuelPHP et adapté dans Novius OS. C’est très simple à faire, car il suffit de copier un fichier existant et de le modifier à notre guise !
Dans le cas d’une application, il faut copier le fichier dans local/config/apps/{application}/
ou
local/views/apps/{application}/
.
Pour étendre un fichier du moteur de Novius OS, on utilisera local/config/apps/novius-os/
et
local/views/novius-os/
.
La syntaxe « générique » est donc local/{section}/{application}/
avec :
{section}`
est égal à config
ou views
;{application}`
correspond à apps
+ un nom d’application ou novius-os
pour le moteur.L’application noviusos_page
possède un fichier de configuration controller/admin/appdesk.config.php
(le fichier se situe donc dans noviusos_page::config/controller/admin/appdesk.config.php
).
Si on le copie dans local/config/apps/noviusos_page/controller/admin/appdesk.config.php
alors ce dernier sera fusionné automatiquement avec celui de l’application qui le demande.
Lorsqu’on créé le fichier local/views/apps/noviusos_help/admin/help.view.php
ce dernier est utilisé en remplacement de noviusos_help::admin/help.view.php
!
Pour étendre un fichier du moteur, on utilisera le nom d’application novius-os
. Par exemple, on créera le fichier local/views/novius-os/admin/login.view.php
.
N’importe quel fichier de configuration peut être modifié grâce à l’évènement config|<path>.
Il est possible de faire appel à la méthode View::redirect()
pour remplacer un fichier de vue par un autre.
<?php
// Remplace la vue 'admin/help' de l'application 'noviusos_help' par la vue 'help' du dossier 'local'
View::redirect('noviusos_help::admin/help', 'local::help');
Pour étendre une application, on créé une autre application qui va modifier la première.
L’application 2 définit qu’elle étend mon_application
via son fichier metadata.config.php
:
<?php
return array(
'name' => 'Application 2',
// On définit que c'est une application d'extension
'extends' => 'mon_application',
);
Une fois application_2
installée, elle sera chargée en même temps que mon_application
.
Lorsqu’une application étend une autre, certains comportements deviennent automatiques.
Exemple :
application_2
étend mon_application
.
Les fichiers de configurations des Controller
et des Model
de mon_application
peuvent être automatiquement étendus par application_2
en les créant au même endroit.
Exemple, mon_application
définit le fichier de configuration suivant pour Controller_Test
: applications/mon_application/config/controller/test.config.php
Si dans application_2
, le fichier correspondant applications/application_2/config/controller/test.config.php
existe, alors il sera fusionné.
C’est-à-dire que dans Mon\Application\Controller_Test
, la variable $config
contiendra la fusion 2 fichiers (celui de l’application étendue mon_application
, et aussi celui de application_2
qui étend la première).