PHP Tour 2012 - Conférence FuelPHP

25
1/25 Conférence PHP Tour 2012 FuelPHP : A framework, yes – Automagic, no! Julian Espérat Sébastien Drouyer Nantes 30 novembre 2012

description

Présentation du framework FuelPHP au PHP Tour 2012 à Nantes par l'équipe de Novius OS, CMS Open Source.

Transcript of PHP Tour 2012 - Conférence FuelPHP

Page 1: PHP Tour 2012 - Conférence FuelPHP

1/25

Conférence PHP Tour 2012 FuelPHP : A framework, yes – Automagic, no!

Julian EspératSébastien Drouyer

Nantes30 novembre 2012

Page 2: PHP Tour 2012 - Conférence FuelPHP

2/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

Page 3: PHP Tour 2012 - Conférence FuelPHP

3/25

Conférenciers

Sébastien Drouyer@sdrdis

Julian Espérat@savageman86

Page 4: PHP Tour 2012 - Conférence FuelPHP

4/25

À propos de Novius

Créée en 1996, basée à Lyon et Paris, 40 personnes dont 18 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).

Page 5: PHP Tour 2012 - Conférence FuelPHP

5/25

À 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.

Page 6: PHP Tour 2012 - Conférence FuelPHP

6/25

Genèse de FuelPHP

« FuelPHP est né de la frustration des développeurs avec les frameworks actuels. »

1185 watchers et 184 forks sur Github

2640 followers sur Twitter

Création fin 2010

1.0 – 31 juillet 2011

1.1 – 13 décembre 2011

1.2 – 3 juin 2012

1.3 – 5 septembre 2012

1.4 – 9 novembre 2012

Page 7: PHP Tour 2012 - Conférence FuelPHP

7/25

Core Team de FuelPHP

Harro Verton / @WanWizard

Jelmer Schreuder / @jschreuder

Frank de Jonge / @frankdejonge

Dan Horrigan

Fondateur

Phil Sturgeon

Page 8: PHP Tour 2012 - Conférence FuelPHP

8/25

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!

Page 9: PHP Tour 2012 - Conférence FuelPHP

9/25

Inspiration des autres frameworks

Simplicité

Léger et rapide

Facile à apprendre

Peu de dépendances serveur

Page 10: PHP Tour 2012 - Conférence FuelPHP

10/25

Inspiration des autres frameworks

Flexibilité dans la structure des fichiers

Hiérarchie des répertoires

Excellent Query Builder

Page 11: PHP Tour 2012 - Conférence FuelPHP

11/25

Inspiration des autres frameworks

Ligne de commande

Migrations

Scaffolding

ORM (Active Record)

Page 12: PHP Tour 2012 - Conférence FuelPHP

12/25

Inspiration des autres frameworks

HMVC / REST

Templates

Authentification / ACL

Envoi de mail

Page 13: PHP Tour 2012 - Conférence FuelPHP

13/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

Page 14: PHP Tour 2012 - Conférence FuelPHP

14/25

Syntaxe sexy et concise

// ~/classes/controller/login.phpclass Controller_Login extends Controller{ public function action_form() { return Response::forge(View::forge('login/form')); }}

// ~/classes/controller/auth.phpclass Controller_Admin extends Controller{ public function before() { if ( ! $this->user_is_logged() ) { Response::redirect('login/form'); } }}

Page 15: PHP Tour 2012 - Conférence FuelPHP

15/25

Fichier de configuration// Stockage : ~/config/date.phpreturn array( 'pattern' => array( 'short' => '%d/%m/%Y', 'full' => '%d/%m/%Y %H:%M', 'mysql' => '%Y-%m-%d %H:%M:%S', 'mysql_date' => '%Y-%m-%d', ),);

// Exemplefunction strftime_pattern($date, $pattern = 'short'){ Config::load('date'); $pattern = Config::get("date.format.$pattern", '%d/%m/%Y'); return strftime($pattern, $date);}

// Usage$config = include 'config/date.php';

Page 16: PHP Tour 2012 - Conférence FuelPHP

16/25

Exemples de driversnatifs

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

Page 17: PHP Tour 2012 - Conférence FuelPHP

17/25

Appels statiques et instances// Configuration : ~/config/session.phpreturn array( 'driver' => 'file', // ... 'file' => array( 'path' => '/tmp', // ... ), 'memcached' => array(...), 'db' => array(...), 'redis' => array(...),);--------------------------------------------------------------// Exemple avec un appel statique$user = Session::get('user');

// Exemple identique avec un appel dynamique$session = Session::forge('file'); // 'file' est le driver$user = $session->get('user');

Page 18: PHP Tour 2012 - Conférence FuelPHP

18/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

Page 19: PHP Tour 2012 - Conférence FuelPHP

19/25

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

Page 20: PHP Tour 2012 - Conférence FuelPHP

20/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

Page 21: PHP Tour 2012 - Conférence FuelPHP

21/25

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

Page 22: PHP Tour 2012 - Conférence FuelPHP

22/25

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

Page 23: PHP Tour 2012 - Conférence FuelPHP

23/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

Page 24: PHP Tour 2012 - Conférence FuelPHP

24/25

Futur de FuelPHP

FuelPHP 2.0 : nouvelle architecture● Changement progressif dans les versions 1.*

Composer et PSR−1

Séparation des fonctionnalités dans des packages spécialisé

Conditionné par sa communauté, dans un domaine concurrentiel

Page 25: PHP Tour 2012 - Conférence FuelPHP

25/25

Merci pour votre attention. Des questions ?

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

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

Nantes30 novembre 2012