Académique Documents
Professionnel Documents
Culture Documents
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Sensio
Agence cre en 1998
Groupe de 150 personnes 30 personnes ddies au nouvelles technologies
SENSIO Agence Interactive
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Nos clients
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Sensio Labs
Des clients Grands Comptes et Institutionnels
Conseil en stratgie Internet Assistance matrise douvrage Audit / Formation Dveloppement Internet/Intranet
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Sensio Labs
Spcialiste du monde Open-Source (LAMP)
Linux Apache MySQL / PostgreSQL PHP / Perl / Python / Ruby
symfony
Framework Web PHP Licence MIT Bas sur 9 ans dexprience Sensio Bas sur des projets existants Open-Source Rapprocher le monde de lEntreprise Conu pour grer :
Des sites professionnels Des problmatiques complexes Dans des environnements exigeants
et le monde de lOpen-Source
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Pourquoi PHP ?
Langage de script dynamique Choisi par les Grands Comptes Communaut importante Bien document Performant Facile hberger
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Framework Web
Cadre de Travail
Composants logiciels gnriques
Prfabriqus Intgrs Rpondent aux problmatiques Web
AFUP - 06/03/2007
= CMS
Editeur rich text, URLs propres, cache, gestion des comptes utilisateurs, plugins
Efficacit Productivit
www.sensio.com
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
AFUP - 06/03/2007
www.sensio.com
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Base de donnes
Configuration de la base de donnes
# config/databases.yml prod: propel: param: password: PAssWD all: propel: class: sfPropelDatabase param: dsn: mysql://root:@localhost/blog
Dfinition du schma
# config/schema.yml post: title: { type: content: { type: is_published: { type: author_id: { type: created_on: ~
AFUP - 06/03/2007
Abstraction SQL
www.symfony-project.com
Base de donnes
Cration des donnes de tests
# config/fixtures.yml Author: fabien: first_name: Fabien last_name: Potencier Post: first_post: author_id: fabien title: Confrence AFUP $ ./symfony propel-build-all-load
1) Cre les classes du modle 2) Converti le schma en SQL 3) Cre les tables 4) Charge les donnes de test
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Le Modle
// lib/model/Author.php class Author extends BaseAuthor { function getFullName() { return $this->getFirstName().' '.$this->getLastName(); } } $author = new Author(); $author->setFirstName('Fabien'); $author->setLastName('Potencier'); $author->save(); $post = new Post(); $post->setAuthor($author); $post->setPublishedOn('12:00 tomorrow'); $post->save(); $posts = PostPeer::doSelect(new Criteria());
AFUP - 06/03/2007 www.symfony-project.com fabien.potencier@sensio.com www.sensio.com
Cration du Back-Office
Cration automatique dune Console dAdministration de Production
Listes Pagination Tri Filtres Validation CRUD
Code gnr MVC et personnalisable
Fichier configuration Contrleur Templates
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Admin Generator
Liste
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Admin Generator
Edition
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Configurabilit
Au niveau des modules
# apps/frontend/modules/post/config/generator.yml generator: class: sfPropelAdminGenerator param: Configuration en cascade model_class: Post Framework list: Projet display: [=title, author, created_on] Application filters: [title, author, published_on]
Au niveau de lapplication
# apps/frontend/config/security.yml default: is_secure: on credentials: admin
Module
LOC : 0
Cration du Front-Office
Routing bidirectionnel
/
# apps/frontend/config/routing.yml homepage: url: / param: { module: blog, action: recent } # apps/fontend/modules/post/templates/listSuccess.php <?php echo url_for('@homepage') ?>
/blog/2007/03/06/conference-afup.html
# apps/frontend/config/routing.yml post: url: /blog/:year/:month/:day/:slug.html param: { module: blog, action: show } requirements: year: \d{4} month: \d\d day: \d\d
AFUP - 06/03/2007 www.symfony-project.com
# apps/fontend/modules/post/templates/listSuccess.php <?php echo link_to( $post->getTitle(), sprintf('@post?year=%d&month=%d&day=%d&slug=%s', $post->getCreatedOn('Y'), $post->getCreatedOn('m'), $post->getCreatedOn('d'), $post->getSlug() )) ?>
www.sensio.com
fabien.potencier@sensio.com
Tests Fonctionnels
Scnario de navigation
// test/functional/frontend/postActionsTest.php $browser = new sfTestBrowser(); $browser->initialize(); TDD $browser-> Test Driven Development get('/')-> isStatusCode(200)-> checkResponseElement('h1.title', '/Confrence AFUP/'); $ ./symfony test-functional frontend # get / ok 1 - status code is 200 not ok 2 - response selector h1 does not match regex /Confrence AFUP/ # Looks like you failed 1 tests of 4 1..2
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Dploiement
$ ./symfony test-all functional/frontend/postActionsTest......................ok All tests successful. Files=1, Tests=2 # config/properties.ini [production] host=1.2.3.4 user=fabien dir=/var/www/sfblog type=rsync $ ./symfony sync production go
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Quelques Chiffres
3 ans de R&D Version 1.0 stable Support commercial Documentation Open-Source
Livre rfrence (450 pages - GFDL) Tutorial pas pas (250 pages)
Communaut importante
Dveloppeurs dans 80 pays 100 000 visiteurs uniques par mois
AFUP - 06/03/2007 www.symfony-project.com fabien.potencier@sensio.com www.sensio.com
Mature Reconnu
De Belles Rfrences
Yahoo! (USA)
Yahoo! Bookmarks 20 millions dutilisateurs Web 2.0 / AJAX
AFUP - 06/03/2007
www.symfony-project.com
fabien.potencier@sensio.com
www.sensio.com
Rejoignez-nous
Sensio Labs recrute
Des dveloppeurs Des chefs de projet technique
SENSIO S.A. 26, rue Salomon de Rothschild 92 286 SURESNES cedex Tl. : 01 40 99 80 80 Fax : 01 40 99 83 34 Contact Fabien Potencier fabien.potencier@sensio.com
http://www.sensio.com/
AFUP - 06/03/2007 www.symfony-project.com
http://www.symfony-project.com/
fabien.potencier@sensio.com www.sensio.com