Bonjour!!! Une fois de plus me revoilà toujours avec des raisons différentes. Je vais vous donner un topo pour installer Twig dans CodeIgniter.
Normalement je devrais plus avoir à vous dire ce que c’est que CodeIgniter, vous le connaissez. Pour ceux qui ne savent pas ce que c’est que CodeIgniter, c’est un framework (littéralement cadre de travail) qui vous permet de développer des applications web avec PHP, très rapidement, efficacement et avec moins de code à écrire. Pour plus d’infos allez sur la page du framework, vous pouvez débuter avec ce cours du site du zéro.
Les utilisateurs de Symfony2 sont déjà familier à Twig, c’est le moteur de template par défaut devéloppé par le créateur du framework Symfony Fabien Potencier. Twig est facile à prendre en main et vous permet de réaliser des templates très rapidement. J’ai utilisé symfony pendant un moment et j’ai trouvé Twig vraiment super. Depuis que j’utilise CodeIgniter je me demandais comment emmener mon Twig préferé avec moi et je crois que j’ai trouvé.
Twig Logo Logo de Twig
Utiliser Composer pour installer Twig dans CodeIgniter
Composer est un gestionnaire de dépendance pour PHP, vous n’avez pas besoin de savoir comment il fonctionne juste comment l’utiliser.
Télécharger et installer CodeIgniter
Une fois Codeigniter téléchargé, décompresser le fichier zip sur votre serveur de développement, vous devriez avoir l’arborescence suivante :
Le répertoire user_guide n’est utile que pour la documentation, il n’est donc pas nécessaire sur le serveur.
Installer Composer
Composer est un fichier avec pour extension .phar, il contient du code php. Télécharger ici et déplacer dans votre installation de CodeIgniter (Dans la même arborescence que le dossier application). Vous devez avoir PHP dans votre environnement car nous allons utiliser Composer avec l’invite de commande de Windows, les utilisateurs de Linux devrait l’avoir déjà dans leur environnement.
Installer Twig avec Composer
Toujours dans la même arborescence que le dossier application, créer un fichier composer.json et insérez y ce code
{ "require": { "twig/twig": "*" } }
Enregistrez et ouvrez l’invite de commande sur Windows ou le Terminal pour Linux. Rendez vous à la racine de votre installation à coups de cd et exécuter cette commande :
php composer.phar install
Composer installe Twig. A la fin de l’installation vous devriez avoir de nouveaux fichiers et répertoire supplémentaires:
Fini les installations, passons à la configuration.
Configuration de CodeIgniter pour l’ utilisation de Twig
Modification du fichier /index.php
Ajouter tout en haut du fichier index.php le code suivant :
include_once './vendor/autoload.php';
Créer un fichier pour la configuration
Créer un fichier dans application/config/twig.php avec le code suivant
if (!defined('BASEPATH')) exit('No direct script access allowed'); $config['template_dir'] = APPPATH.'views'; $config['cache_dir'] = APPPATH.'cache/twig';
Créer une librairie pour Twig
Creer un autre fichier dans application/libraries/Twig.php avec le contenu suivant :
if (!defined('BASEPATH')) {exit('No direct script access allowed');} class Twig { private $CI; private $_twig; private $_template_dir; private $_cache_dir; /** * Constructor * */ function __construct($debug = false) { $this->CI =& get_instance(); $this->CI->config->load('twig'); log_message('debug', "Twig Autoloader Loaded"); Twig_Autoloader::register(); //HMVC patch by joseayram //$template_module_dir = APPPATH.'modules/'.$this->CI->router->fetch_module().'/views/'; $template_global_dir= $this->CI->config->item('template_dir'); $this->_template_dir = array($template_global_dir); //end HMVC patch $this->_cache_dir = $this->CI->config->item('cache_dir'); $loader = new Twig_Loader_Filesystem($this->_template_dir); $this->_twig = new Twig_Environment($loader, array( 'cache' => $this->_cache_dir, 'debug' => $debug, )); foreach(get_defined_functions() as $functions) { foreach($functions as $function) { $this->_twig->addFunction($function, new Twig_Function_Function($function)); } } } public function add_function($name) { $this->_twig->addFunction($name, new Twig_Function_Function($name)); } public function render($template, $data = array()) { $template = $this->_twig->loadTemplate($template); return $template->render($data); } public function display($template, $data = array()) { $template = $this->_twig->loadTemplate($template); $template->display($data); } }
Twig est maintenant installé et fonctionne parfaitement (si vous avez bien sûr suivi toutes les étapes)
Vérifions tout ça
Dans le dossier destiné aux vues de CodeIgniter, application/views, créer un fichier layout.html.twig. Ce fichier sera notre gabarit, notre template qui va recevoir les vues spécifiques. Mettez y le code d’exemple suivant.
{% block title %} {% endblock %} {% block stylesheet %} {% endblock %} {% block style %} {% endblock %}
{% block footer %} {% endblock %}
Créer un autre fichier avec dans le même repertoire nommé le index.html.twig avec ce code
{% extends layout.html.twig %} {% block content %}
Youppii ça marche
{{ message }} {% endblock %} {% block style %}