4. À 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).
4/25
5. À 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.
5/25
6. 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
6/25
7. Core Team de FuelPHP
Harro Verton / @WanWizard
Jelmer Schreuder / @jschreuder
Frank de Jonge / @frankdejonge
Dan Horrigan Phil Sturgeon
Fondateur
7/25
8. 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!
8/25
9. Inspiration des autres frameworks
Simplicité
Léger et rapide
Facile à apprendre
Peu de dépendances serveur
9/25
10. Inspiration des autres frameworks
Flexibilité dans la structure des fichiers
Hiérarchie des répertoires
Excellent Query Builder
10/25
11. Inspiration des autres frameworks
Ligne de commande
Migrations
Scaffolding
ORM (Active Record)
11/25
12. Inspiration des autres frameworks
HMVC / REST
Templates
Authentification / ACL
Envoi de mail
12/25
13. Sommaire
Introduction
Pourquoi nous aimons FuelPHP
Oil : la ligne de commande
Les Packages et l'ORM
Le futur de FuelPHP
Questions
13/25
14. Syntaxe sexy et concise
// ~/classes/controller/auth.php
class Controller_Admin extends Controller
{
public function before()
{
if ( ! $this->user_is_logged() )
{
Response::redirect('login/form');
}
}
}
// ~/classes/controller/login.php
class Controller_Login extends Controller
{
public function action_form()
{
return Response::forge(View::forge('login/form'));
}
}
14/25
17. Appels statiques et instances
// Configuration : ~/config/session.php
return 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');
17/25
18. Sommaire
Introduction
Pourquoi nous aimons FuelPHP
Oil : la ligne de commande
Les Packages et l'ORM
Le futur de FuelPHP
Questions
18/25
19. 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
19/25
20. Sommaire
Introduction
Pourquoi nous aimons FuelPHP
Oil : la ligne de commande
Les Packages et l'ORM
Le futur de FuelPHP
Questions
20/25
21. 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
21/25
22. 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
22/25
23. Sommaire
Introduction
Pourquoi nous aimons FuelPHP
Oil : la ligne de commande
Les Packages et l'ORM
Le futur de FuelPHP
Questions
23/25
24. 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
24/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
Nantes
30 novembre 2012
25/25