13e Rencontres Mondiales du Logiciel Libre
FuelPHP : A framework, yes – Automagic, no!




                                            Julian Espérat
                                        Sébastien Drouyer

                                                     Genève
                                              10 juillet 2012



                   #FuelRMLL
                                                     1/29
Vos questions sur Twitter
            #FuelRMLL




#FuelRMLL
                                2/29
Sommaire
 Introduction

 Oil : la ligne de commande

 Pourquoi nous aimons FuelPHP

 Les Packages et l'ORM

 Le futur de FuelPHP

 Questions



                       #FuelRMLL
                                   3/29
Conférenciers




      Sébastien Drouyer
           @sdrdis




       Julian Espérat
       @savageman86

                   #FuelRMLL
                               4/29
À propos de Novius
  Créée en 1996, basée à Lyon et
  Paris, 40 personnes dont 25
  développeurs.

  Deux métiers : agence web,
  édition logicielle.

  Nos clients : Les Échos,
  Cinémathèque Française, FIS...

  Nos technos : web et libres
  uniquement (LAMP, HTML,
  CSS, JS).


                      #FuelRMLL
                                   5/29
À propos de Novius OS
  8 ans d'expérience dans le
  CMS.

  CMS open-source nouvelle
  génération, conçu pour
  l'Internet multi-canal.

  Entre le CMS et le web OS.

  Basé sur les dernières
  technologies web : HTML5,
  jQuery UI, Wijmo et FuelPHP.



                      #FuelRMLL
                                  6/29
Genèse de Fuel PHP
  « FuelPHP est né de la frustration des développeurs avec les
  frameworks actuels. »


  1118 watchers et 166 forks sur Github
  2336 followers sur Twitter


  Création fin 2010
  1.0 – 31 juillet 2011
  1.1 – 13 décembre 2011
  1.2 – 3 juin 2012




                          #FuelRMLL
                                                                 7/29
Core Team de FuelPHP

    Dan Horrigan / CodeIgniter, PyroCMS


    Harro Verton / @WanWizard / Data mapper ORM, ExiteCMS


    Phil Sturgeon / @philsturgeon / PyroCMS, Code Igniter


    Jelmer Schreuder / @jschreuder


    Frank de Jonge / @frankdejonge / the doc guy




                     #FuelRMLL
                                                            8/29
Philosophie de FuelPHP
  S’inspire des meilleures idées des autres frameworks


  Nouveau départ avec PHP 5.3


  Simple, flexible et léger


  "community-driven"


  Configuration over convention – no automagic!




                          #FuelRMLL
                                                         9/29
Inspiration des autres frameworks




     Simplicité


     Léger et rapide


     Facile à apprendre


     Peu de dépendances serveur




                       #FuelRMLL
                                    10/29
Inspiration des autres frameworks




     Flexibilité dans la structure des fichiers


     Hiérarchie des répertoires


     Excellent Query Builder




                       #FuelRMLL
                                                  11/29
Inspiration des autres frameworks




     Ligne de commande


     Migrations


     Scaffolding


     ORM (Active Record)




                    #FuelRMLL
                                    12/29
Inspiration des autres frameworks




     HMVC / REST


     Templates


     Authentification / ACL


     Envoi de mail




                      #FuelRMLL
                                    13/29
Sommaire
 Introduction

 Oil : la ligne de commande

 Pourquoi nous aimons FuelPHP

 Les Packages et l'ORM

 Le futur de FuelPHP

 Questions



                       #FuelRMLL
                                   14/29
Oil : la ligne de commande FuelPHP


  Package et utilitaire de FuelPHP




  Inspiré de Ruby on Rails




  Philosophie : optionel, ligne de commande pour simplifier le
  développement




                        #FuelRMLL
                                                                 15/29
Sommaire
 Introduction

 Oil : la ligne de commande

 Pourquoi nous aimons FuelPHP

 Les Packages et l'ORM

 Le futur de FuelPHP

 Questions



                       #FuelRMLL
                                   16/29
Syntaxe sexy et concise




                #FuelRMLL
                            17/29
Utilisation d'un fichier de configuration




                 #FuelRMLL
                                            18/29
Exemples de drivers
natifs
  Config : php, yml, json, ini
  Session : cookie, file,
  memcached, db, redis
  Cache : file, memcached,
  apc, redis
  Image : gd, imagick,
  imagemagick
  View : php
  Parser : twig, mustache,
  markdown, smarty, dwoo,
  haml, phptal



                       #FuelRMLL
                                   19/29
Le fichier Config_Json de Fuel PHP




                #FuelRMLL
                                     20/29
Appels statiques et DI
                             Injection de dépendance :
                             choix de l'instance et de sa
                             configuration sans réécrire de
                             code pour celui qui l'utilise




                 #FuelRMLL
                                                      21/29
Extension d'une classe du Core




                #FuelRMLL
                                 22/29
#FuelRMLL
            23/29
Sommaire
 Introduction

 Oil : la ligne de commande

 Pourquoi nous aimons FuelPHP

 Les Packages et l'ORM

 Le futur de FuelPHP

 Questions



                       #FuelRMLL
                                   24/29
Les Packages et l'ORM
  Possibilité d'ajouter des
  packages
  ●   Tous dans fuel/packages/
  ●   Simple modification dans le
      fichier de configuration


  Packages installés de base
  ●   Auth
  ●   Email
  ●   Oil
  ●   Orm
  ●   Parser

                         #FuelRMLL
                                     25/29
Les Packages et l'ORM
  Orm
  ●   Très largement inspiré d'Active Record
  ●   Gère les relations entre objets
         ●   has_one
         ●   belongs_to
         ●   has_many
         ●   many_to_many

  ●   Gère les observers
         ●   Comportement sur les colonnes
         ●   CreatedAt : date de création
         ●   UpdatedAt : date de mise à jour




                             #FuelRMLL
                                               26/29
Sommaire
 Introduction

 Oil : la ligne de commande

 Pourquoi nous aimons FuelPHP

 Les Packages et l'ORM

 Le futur de FuelPHP

 Questions



                       #FuelRMLL
                                   27/29
Futur de FuelPHP


  Composer / PSR-1


  Package ORM en mode legacy


  Refactoring Asset / Pagination / Profiler


  Réécriture de Validation / Form / Fieldset




                         #FuelRMLL
                                               28/29
Merci pour votre attention. Des questions ?

http://www.fuelphp.com
http://www.novius-os.org




                              Sébastien Drouyer : @sdrdis
                                  Julian Espérat : @savageman86

                                                         Genève
                                                  10 juillet 2012



                  #FuelRMLL
                                                        29/29

RMLL 2012 - Conférence FuelPHP

  • 1.
    13e Rencontres Mondialesdu Logiciel Libre FuelPHP : A framework, yes – Automagic, no! Julian Espérat Sébastien Drouyer Genève 10 juillet 2012 #FuelRMLL 1/29
  • 2.
    Vos questions surTwitter #FuelRMLL #FuelRMLL 2/29
  • 3.
    Sommaire Introduction Oil: la ligne de commande Pourquoi nous aimons FuelPHP Les Packages et l'ORM Le futur de FuelPHP Questions #FuelRMLL 3/29
  • 4.
    Conférenciers Sébastien Drouyer @sdrdis Julian Espérat @savageman86 #FuelRMLL 4/29
  • 5.
    À propos deNovius Créée en 1996, basée à Lyon et Paris, 40 personnes dont 25 développeurs. Deux métiers : agence web, édition logicielle. Nos clients : Les Échos, Cinémathèque Française, FIS... Nos technos : web et libres uniquement (LAMP, HTML, CSS, JS). #FuelRMLL 5/29
  • 6.
    À propos deNovius OS 8 ans d'expérience dans le CMS. CMS open-source nouvelle génération, conçu pour l'Internet multi-canal. Entre le CMS et le web OS. Basé sur les dernières technologies web : HTML5, jQuery UI, Wijmo et FuelPHP. #FuelRMLL 6/29
  • 7.
    Genèse de FuelPHP « FuelPHP est né de la frustration des développeurs avec les frameworks actuels. » 1118 watchers et 166 forks sur Github 2336 followers sur Twitter Création fin 2010 1.0 – 31 juillet 2011 1.1 – 13 décembre 2011 1.2 – 3 juin 2012 #FuelRMLL 7/29
  • 8.
    Core Team deFuelPHP Dan Horrigan / CodeIgniter, PyroCMS Harro Verton / @WanWizard / Data mapper ORM, ExiteCMS Phil Sturgeon / @philsturgeon / PyroCMS, Code Igniter Jelmer Schreuder / @jschreuder Frank de Jonge / @frankdejonge / the doc guy #FuelRMLL 8/29
  • 9.
    Philosophie de FuelPHP S’inspire des meilleures idées des autres frameworks Nouveau départ avec PHP 5.3 Simple, flexible et léger "community-driven" Configuration over convention – no automagic! #FuelRMLL 9/29
  • 10.
    Inspiration des autresframeworks Simplicité Léger et rapide Facile à apprendre Peu de dépendances serveur #FuelRMLL 10/29
  • 11.
    Inspiration des autresframeworks Flexibilité dans la structure des fichiers Hiérarchie des répertoires Excellent Query Builder #FuelRMLL 11/29
  • 12.
    Inspiration des autresframeworks Ligne de commande Migrations Scaffolding ORM (Active Record) #FuelRMLL 12/29
  • 13.
    Inspiration des autresframeworks HMVC / REST Templates Authentification / ACL Envoi de mail #FuelRMLL 13/29
  • 14.
    Sommaire Introduction Oil: la ligne de commande Pourquoi nous aimons FuelPHP Les Packages et l'ORM Le futur de FuelPHP Questions #FuelRMLL 14/29
  • 15.
    Oil : laligne de commande FuelPHP Package et utilitaire de FuelPHP Inspiré de Ruby on Rails Philosophie : optionel, ligne de commande pour simplifier le développement #FuelRMLL 15/29
  • 16.
    Sommaire Introduction Oil: la ligne de commande Pourquoi nous aimons FuelPHP Les Packages et l'ORM Le futur de FuelPHP Questions #FuelRMLL 16/29
  • 17.
    Syntaxe sexy etconcise #FuelRMLL 17/29
  • 18.
    Utilisation d'un fichierde configuration #FuelRMLL 18/29
  • 19.
    Exemples de drivers natifs Config : php, yml, json, ini Session : cookie, file, memcached, db, redis Cache : file, memcached, apc, redis Image : gd, imagick, imagemagick View : php Parser : twig, mustache, markdown, smarty, dwoo, haml, phptal #FuelRMLL 19/29
  • 20.
    Le fichier Config_Jsonde Fuel PHP #FuelRMLL 20/29
  • 21.
    Appels statiques etDI Injection de dépendance : choix de l'instance et de sa configuration sans réécrire de code pour celui qui l'utilise #FuelRMLL 21/29
  • 22.
    Extension d'une classedu Core #FuelRMLL 22/29
  • 23.
  • 24.
    Sommaire Introduction Oil: la ligne de commande Pourquoi nous aimons FuelPHP Les Packages et l'ORM Le futur de FuelPHP Questions #FuelRMLL 24/29
  • 25.
    Les Packages etl'ORM Possibilité d'ajouter des packages ● Tous dans fuel/packages/ ● Simple modification dans le fichier de configuration Packages installés de base ● Auth ● Email ● Oil ● Orm ● Parser #FuelRMLL 25/29
  • 26.
    Les Packages etl'ORM Orm ● Très largement inspiré d'Active Record ● Gère les relations entre objets ● has_one ● belongs_to ● has_many ● many_to_many ● Gère les observers ● Comportement sur les colonnes ● CreatedAt : date de création ● UpdatedAt : date de mise à jour #FuelRMLL 26/29
  • 27.
    Sommaire Introduction Oil: la ligne de commande Pourquoi nous aimons FuelPHP Les Packages et l'ORM Le futur de FuelPHP Questions #FuelRMLL 27/29
  • 28.
    Futur de FuelPHP Composer / PSR-1 Package ORM en mode legacy Refactoring Asset / Pagination / Profiler Réécriture de Validation / Form / Fieldset #FuelRMLL 28/29
  • 29.
    Merci pour votreattention. Des questions ? http://www.fuelphp.com http://www.novius-os.org Sébastien Drouyer : @sdrdis Julian Espérat : @savageman86 Genève 10 juillet 2012 #FuelRMLL 29/29