View
982
Download
1
Category
Preview:
DESCRIPTION
Présentation du framework FuelPHP au PHP Tour 2012 à Nantes par l'équipe de Novius OS, CMS Open Source.
Citation preview
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
● 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
Recommended