FuelPHP : mise en place de l'environnement

Bookmark and Share
Mardi 22 novembre 2011
Posté par Julian Espérat

FuelPHP : mise en place de l'environnement
Au programme de cet deuxième article consacré à FuelPHP :
  • Installation du framework
  • Structure des fichiers
  • Traitement et exécution d'une requête
  • Configuration de l'application

Installation via la ligne de commande

Sommaire du tutoriel
Développer sous FuelPHP

  1. Choix du framework
  2. Mise en place
  3. Création d'un projet
  4. Application type
  5. Cheat sheet
  6. L'ORM : gestion des relations

Pour les habitués de Git et de la ligne de commande sous Linux, vous pouvez aller faire un tour sur la page de la documentation officielle qui vous explique comment mettre tout ça en place : http://docs.fuelphp.com/installation/instructions.html

Pour tous les autres moins doués (comme moi), il y a la méthode classique :


Installation manuelle

Télécharger la version la plus récente des sources ici : http://docs.fuelphp.com/installation/download.html

À l’heure où j’écris cet article, il existe une version plus récente que je vous recommande : https://github.com/downloads/fuel/fuel/fuelphp-v1.1.zip (sortie le 13 décembre 2011).

Mettre ça dans votre dossier d’hébergement, par exemple c:\wamp\www\mon_site_fuel\ (WampServer sous Windows) ou /var/www/mon_site_fuel/ (Linux).

 

Information sécurité ! En théorie, seul le répertoire public/ doit être accessible via l’URL. Hors, avec notre installation, le répertoire fuel/ et le fichier oil le sont également. Ce qui n'est pas nécessaire et présente un risque de sécurité, car ils ne sont pas prévus pour ça.
Pour notre environnement en local, ça n'est pas très grave, mais n’utilisez pas cette configuration ailleurs qu’en local !

Pour résoudre ce problème de sécuité, si vous en avez la possibilité et que vous savez comment faire, utilisez le répertoire public/ en tant que Document Root pour votre installation.

Désormais, si vous allez sur http://localhost/mon_site_fuel/public/index.php vous devriez voir la page de bienvenue qui s’affiche et vous félicite :

 

 

Réécriture d'URL

Fuel fournit un fichier .htaccess pour Apache pour utiliser la réécriture d'URL lorsque c'est possible.

Avec la réécriture, les URL seront de la forme http://localhost/mon_site_fuel/public/votre/page/ici
Sans la réécriture, les URL seront de la forme http://localhost/mon_site_fuel/public/index.php/votre/page/ici

La réécriture permet donc d'avoir des URL plus jolies en supprimant la partie index.php dans l'URL.

 

Structure des fichiers proposée par défaut

Avant d’aller plus loin, il est important de voir les répertoires qui existent et ce qu’ils contiennent :

Vous trouverez trois choses importantes à la racine :

  • fuel/ : le code PHP c’est par ici
  • public/ : dossier accessible depuis le navigateur (images, CSS, JavaScript, etc.)
  • oil : l’exécutable ligne de commande de FuelPHP

Le répertoire fuel/ contient trois sous-répertoires importants :

  • app/ : votre application (configuration, contrôleurs, modèles, vues, etc.)
  • core/ : le cœur de FuelPHP. Nous l’appellerons Core.
  • packages/ : extensions du Core qui sont séparées car facultatives

Les chemins vers ces trois répertoires sont définis dans le fichier public/index.php, et sont donc modifiables facilement si vous le voulez. :-)

 

Enfin, la partie importante pour nous (celle que nous allons modifier) se situe dans le dossier fuel/app/ :

  • config/ : toute la configuration, notamment le fichier général config.php
  • classes/ : contrôleurs, modèles, helpers, logique métier. Quand vous créez un fichier PHP c’est probablement ici qu’il trouve sa place !
    • controller/ : les contrôleurs
    • model/ : les modèles utilisés par l'ORM
  • views/ : les vues et templates

 

D’autres dossiers qui nous concernent moins pour le moment sont également présents :

  • cache/
  • lang/
  • logs/
  • modules/

Assurez-vous juste à ce que cache/ et logs/ soient inscriptibles (droits d'écriture w).

 

Répondre à une requête de l'internaute

Tout commence par public/index.php qui sert de contrôleur frontal (toutes les requêtes passent par ce fichier) :

  • Étape 1, initialisation :
    • Les constantes vers les trois répertoires principaux sont définies : APPPATH (application), COREPATH (Core FuelPHP) et PKGPATH (packages) ; 
    • Le fichier d'initialisation de l’application est inclus : APPPATH/bootstrap.php (cf. ci-dessous pour le détail)
  • Étape 2, traitement / exécution : de la requête qui génère une réponse
  • Étape 3, affichage : de la réponse générée

 

Initialisation de l'application

Correspond au détail du fichier APPPATH/bootstrap.php :

  1. Chargement de la classe Autoloader
  2. Inclusion du fichier COREPATH/bootstrap.php de FuelPHP (en gros, le Core configure l’Autoloader pour ses propres classes)
  3. Configuration et activaton de l’Autoloader
  4. On définit l’environnement (développement, test / intégration, pré-prod / stage, production)
  5. Enfin, Fuel::init() initialise l'application en fonction de l'environnement et de la configuration (fichier config.php)
  • Configuration du profiling et du cache
  • Configuration de la timezone, de l’encodage et de la locale
  • Configuration du base URL
  • Filtrage des données GPC (Get, Post et Cookie)
  • Active les packages, classes, config et langues à toujours charger
  • Chargement des routes

 

Traitement et exécution de la requête

L'objectif est de traiter une requête de l'internaute (appel d'une URL via son navigateur) pour lui afficher une réponse. Cette transformation est le rôle du contrôleur.

Correspond au détail de l’étape 2 (Traitement / exécution) du cheminement dans public/index.php :

  1. Détermine le bon contrôleur en fonction des routes définies
  2. Créé l’instance du contrôleur
  3. Appelle sa méthode before() 
  4. Exécute l’action appropriée, qui génère la réponse
  5. Appelle la méthode after()

Ceci peut être répétée plusieurs fois s’il y a des sous-requêtes (HMVC, nous verrons cette notion dans un article).

 

Configuration de l’application

FuelPHP fait partie de l’école « Configuration over convention ». En réalité, ils ont bien des conventions, mais surtout pour ce qui est bas-niveau. Cependant, la configuration est un point central ! Je crois que l’important est qu’il y a très peu de magie dans le code. Et qu'au final, il est extrêmement simple de comprendre ce que l’on fait.

Les fichiers de configuration sont stockés dans le répertoire app/config. La configuration générale de l’application se situe elle dans le fichier config.php.

En voici les options les plus importantes :

  • base_url : le base URL de votre site (utilisé pour générer les URL)
  • index_file : index.php si vous n’utilisez pas l’URL rewriting. false sinon.
  • profiling : activer ou non le profiler
  • caching : activer ou non le cache
  • errors.notices : faut-il afficher les notices ?
  • language : langue principale de votre application
  • language_fallback : langue de repli
  • locale : la locale PHP (par exemple fr_FR ou fr_CA)
  • encoding : encodage de votre application
  • default_timezone : par exemple Europe/Paris
  • module_paths : tableau contenant les dossiers où peuvent se situer les modules

En fonction de l’environnement (développement, test / intégration, pré-prod / stage, production) des fichiers supplémentaires de configuration peuvent être chargés.

Par exemple, pour config/config.php si l’environnement est Fuel::DEVELOPMENT et que le fichier config/development/config.php existe, il sera également chargé et les valeurs qu’il contient seront fusionnées avec celle du fichier de base (avec une priorité plus élevée).

 

L'installation est désormais terminée. C'est maintenant que tout commence ! À très vite pour la suite de ce tutoriel FuelPHP.

Catégorie :FuelPHP
4 commentaires
  • Commentaire par Greg de H
    Jeudi 24 novembre 2011 10:41
    Merci pour ce bel article sur fuelPHP. J'avoue que j'ai hâte de découvrir plus en profondeur comment il fonctionne, Donc j'attends avec impatience votre prochain article.

    Pour l'instant j'ai déjà installé mon instance et j'aime bien son fonctionnement.
  • Commentaire par Jarode
    Mardi 15 mai 2012 20:21
    Bonjours,

    Le répertoire "fuel/app/vews/" contient "les vues et templates".
    Mais alors, à quoi peut bien servir le répertoire "fuel/app/classes/view/" ?

    Merci ! :-)
  • Commentaire par Julian
    Mercredi 16 mai 2012 10:28
    Bonjour,

    Mon tuto n'en parle pas car le package FuelPHP à télcharger de base ne contenait pas ce fichier.

    Le répertoire fuel/app/classes/views contient les ViewModel.

    La documentation associée aux ViewModel est disponible ici : http://docs.fuelphp.com/general/viewmodels.html

    La notion de ViewModel et leur utilité / utilisation au sein de FuelPHP est expliquée dans un billet publié sur leur blog : http://fuelphp.com/blog/2012/03/mvc-in-fuelphp
  • Commentaire par Alain
    Mardi 24 décembre 2013 14:11
    Super pour un début. Vraiment une bonne aide au moment où on patauge là où on sait que bientot on nagera ...enfin espérons. J'ai eu un souci à cause du composer lors de mon installation avec netbeans mais j'ai bien la page d'acceuil...je passe à la suite
    Joyeuses fêtes
    alain
Laissez votre commentaire :