Dans ce tutoriel vous découvrirez comment créer votre premier projet, personnaliser votre site et ajouter vos premières pages spécifiques
Pour une meilleur organisation et découpage du code, chaque fonctionnalité ou ensemble de fonctionnalité sont regroupés dans des modules. Par exemple l'application Blog contient les modules Category, Article, comment , Front
La création de module se fait depuis L'ide de développement suivant ces étapes
Un nouveau dossier Front et donc été crée dans le dossier module de votre application.
Il ne contient pour l'instant que le controller. (FrontController)
Vérifier que ce nouveau module posséde bien le bon namespace
namespace Apps\YYY\Module\Front;
Modifier le si il ne correspond pas à votre application
namespace Apps\Test\Module\Front;
Ce nouveau controller posséde déjà la fonction Index
/*
* Get the home page
*/
function Index()
{
$view = new View(__DIR__."/View/index.tpl", $this->Core);
return $view->Render();
}
Et comme vous pouvez le constater il pointe sur une vue index.tpl
Je vous invite donc à créer un dossier View ainsi que le fichier index.tpl et mettre ce que vous voulez dedans
On oublie pas le use
use Apps\Test\Module\Front\FrontController;
On modifie la fonction Index pour qu'elle utilise ce nouveau controller
/**
* Hello world Simple
* Depuis un module
*/
function Index()
{
$frontController = new FrontController($this->Core);
return $frontController->Index();
}
Si on rafraichit donc la page : http://index.html
Vous devez donc voir le template du module front
Allons plus loin dans notre code et affichons un message différent selon un paramêtre d'url. Cela peut être pratique par exemple pour afficher le détail d'un produit ou d'un message de forum ..
Voici donc les url de test :
http://monsite/Index/toto
http://monsite/Index/tata
Les paramétres Get sont passés comme parametres dans la fonction. Il suffit donc de le récupérer dans la classe de votre application et le transmettre aux controller, qui le transmettra à la vue
Test.php
/**
* Hello world Simple
* Depuis un module avec un paramétre
*/
function Index($params)
{
$frontController = new FrontController($this->Core);
return $frontController->Index($params);
}
FrontController.php
/*
* Get the home page
*/
function Index($params)
{
$view = new View(__DIR__."/View/index.tpl", $this->Core);
$view->AddElement(new ElementView("params", $params));
return $view->Render();
}
index.tpl
<h1>Hello World</h1>
<p>
Bonjour tout le monde je suis <i>{{params}}</i>
</p>
Selon l'url le site affichera alors