Fuel php nantes 2012

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

Transcript of Fuel php nantes 2012

1/25

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

Julian EspératSébastien Drouyer

Nantes30 novembre 2012

2/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

3/25

Conférenciers

Sébastien Drouyer@sdrdis

Julian Espérat@savageman86

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

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.

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

7/25

Core Team de FuelPHP

Harro Verton / @WanWizard

Jelmer Schreuder / @jschreuder

Frank de Jonge / @frankdejonge

Dan Horrigan

Fondateur

Phil Sturgeon

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!

9/25

Inspiration des autres frameworks

Simplicité

Léger et rapide

Facile à apprendre

Peu de dépendances serveur

10/25

Inspiration des autres frameworks

Flexibilité dans la structure des fichiers

Hiérarchie des répertoires

Excellent Query Builder

11/25

Inspiration des autres frameworks

Ligne de commande

Migrations

Scaffolding

ORM (Active Record)

12/25

Inspiration des autres frameworks

HMVC / REST

Templates

Authentification / ACL

Envoi de mail

13/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

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'); } }}

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';

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

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');

18/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

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

20/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

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

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

23/25

Sommaire

Introduction

Pourquoi nous aimons FuelPHP

Oil : la ligne de commande

Les Packages et l'ORM

Le futur de FuelPHP

Questions

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

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