Wallogit.com
2017 © Pedro Peláez
Pour installer sohoa il a rien de plus simple avec composer il vous suffit d'executer la commande suivante, (*1)
composer create-project -s dev sohoa/sohoa myProject
Nous avons adoptez l'architecture de fichiers suivante * Application * Controller * Config (Ce dossier contient les fichiers propres à votre application (Route , Environnement , …) * Model * View * … * Public * Css * …, (*2)
Nous allons faire pointer notre nom de domaine http://foo.hoa par exemple vers le dossier Public au moyen d'un vhost, (*3)
<VirtualHost *:80>
ServerName foo.hoa
DocumentRoot "/path/to/my/sohoa/app/Public"
<Directory "/path/to/my/sohoa/app/Public">
Options All
AllowOverride All
</Directory>
</VirtualHost>
Pour utiliser le système de vue il faut le déclarer dans notre fichier Public/index.php avec ainsi :, (*4)
$framework = new /Sohoa/Framework/Framework(); $framework->view = new /Sohoa/Framework/View/Greut(); $framework->run();
et dans le controller Application/Controller/Main.php, (*5)
public function IndexAction(){
$this->greut->render(); // Cette action va automatiquement allez chercher la vue ./Application/View/Main/Index.tpl.php
}
la méthode render() peut prendre deux types de données en paramètre, (*6)
$this->greut->render(['myControllerName' , 'myActionName']); // ./Application/View/myControllerName/myActionName.tpl.php
ainsi que, (*7)
$this->greut->render('/an/path/to/the/view.tpl.php');
Nous avons un mécanisme assez simple pour la gestion des données variables dans Greut ainsi dans le controlleur si l'on définie la variable, (*8)
$this->data->foo = 'bar';
Nous pourrons y acceder dans la vue associée via, (*9)
echo $foo; // qui retournera bar
Les kits sont des classes qui apporte un lot de fontion génériques a une classe données exemple la gestion des redirections etc …, mais cela peut être pour des données métiers exemple : la gestion des authorisations d'accès etc …, (*10)
Les helpers sont des fonctions regroupées autour d'un thème (catégorie) communes pour permettre d'ajouter des usages/fonctionnalités au système de vue Greut, ainsi on peut avoir le helper suivant dans le fichier ./Application/View/Main/Index.tpl.php :, (*11)
$this->router->unroute('root'); // va générer "/"
$this->html->a('root' , [] , 'foo' , 'bar') // Pourrait générer <a href="/" class="foo">bar</a>
Un services est une classe php classique que l'on instancie et que l'on rend disponnible à l'ensemble de notre application on reproduit le principe du Design Pattern singleton, (*12)
Nous utilisons des tests unitaires fait avec atoum et les executons avec ``` php vendor/bin/atoum -d Tests/Unit/Classes/ ````, (*13)
Nous utilisons également travis pour gerer la compatibilité avec toutes les verions php (5.3 5.4 5.5) et aider a la refactorisation et la gestion des PR., (*14)
Nous utilisons avec sohoa/sohoa des tests fonctionnels, (*15)