symfony (dutch php conference)

24
16 juni  2007 DUTCH OPEN PROJECTS 1 www.dop.nu Symfony Dutch PHP Conference 16 juni 2007 Stefan Koopmanschap, Dutch Open Projects

Upload: stefan-koopmanschap

Post on 29-Nov-2014

6.768 views

Category:

Technology


2 download

DESCRIPTION

The presentation on Symfony I did at the Dutch PHP Conference organized by iBuildings and Zend.

TRANSCRIPT

Page 1: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 1www.dop.nu

Symfony

Dutch PHP Conference 16 juni 2007

Stefan Koopmanschap, Dutch Open Projects

Page 2: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 2www.dop.nu

Deze presentatie● Over mij● Wat is Symfony?● De geschiedenis van Symfony● Hoe werkt het?● Jongeren in Beeld

Page 3: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 3www.dop.nu

Over mij● 16 Juni 1978● Communicatiesystemen● PHP door zelfstudie● phpBB● Dutch Open Projects

Page 4: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 4www.dop.nu

Over Symfony● MVC Framework● PHP 5● Open Source (MIT! Dus geen GPL!)● Professioneel ontwikkelen

● Stabiel● Documentatie● OO● Testen

● Geen Ruby on Rails

Page 5: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 5www.dop.nu

Geschiedenisles● Frankrijk: Sensio Labs● Fork van Mojavi (puur) MVC framework● Combinatie met Propel, prototype, phing, pake, creole,

lime, phpmailer● 2005: eerste versie Symfony● November 2006: eerste beta● 19 Februari 2007: stabiele 1.0.0● Nu: Symfony 1.0.3

Page 6: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 6www.dop.nu

Wat is het?

Compleet framework inclusief utilities

Geen “component library” maar volledige “environment”

CLI commando's voor standaard taken

initialisatie van applicatie, module, projectlog purge en log rotateplugin installatie, upgrade en deinstallatiepropel (model/db) takenunit en functional testingdebugging en gedeeltelijk profilingdeployment (!!)

Page 7: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 7www.dop.nu

Hoe werkt het?

/apps/myapp

/config/i18n/lib/modules/templates

/batch/cache/config/data/doc/lib

/model/map/om

/log/plugins/test/web

/css/images/js/uploads

Duidelijke directory structuur

Page 8: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 8www.dop.nu

Hoe werkt het?

Applicaties zijn globale eenheden

Voorbeeld: frontend en backend

Decorator pattern: Globale layout.php voor veelvoorkomende elementen

Globale library en configuratie

Kunnen worden overruled in modules

Binnen applicaties: modules/modules

/mymodule/actions

/actions.class.php/config/lib/templates/validate

Page 9: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 9www.dop.nu

Hoe werkt het?/modules

/mymodule/actions

/actions.class.php/config/lib/templates/validate

Duidelijke MVC structuur metFront Controller

Controller handelt request af

Model handelt data af

View handelt layout af

Page 10: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 10www.dop.nu

Hoe werkt het?

Hoe beginnen we?

symfony init-projectsymfony init-app (he! het werkt!)symfony init-module

Uitstapje naar Yaml: schema.yml, databases.yml

Propel configureren: propel.ini

symfony propel-build-modelsymfony propel-build-sqlsymfony propel-insert-sqlsymfony propel-generate-crudsymfony propel-init-admin

Page 11: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 11www.dop.nu

Hoe werkt het?

Layout: hoe werkt dat?

templates voor individuele pagina'slayout.php op applicatieniveauview.yml op applicatieniveau

Page 12: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 12www.dop.nu

Configuratie van je applicatie

Heel veel controle, een paar highlights:

logging.ymlrouting.ymlsecurity.ymlsettings.ymlview.yml

Page 13: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 13www.dop.nu

Routing: SEO en meer

mod_rewrite optioneel

nog mooiere URL's

/post/view/id/1 wordt /post/1

URL's worden door link_to() en url_for() gegenereerd

Page 14: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 14www.dop.nu

Debugging

Frontend applicatie bevat index.php maar ook frontend_dev.php

Debug toolbar

logs en systeemberichtenconfiguratie en variabelendatabase queriesperformance informatie

Page 15: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 15www.dop.nu

Uitbreidingsmogelijkheden

Plugins

sfFeed2 – RSS en Atom makkelijksfControlPanel – Symfony applicatie beheersfSugarCRM – Koppeling met SugarCRM SOAPsfOpenID – Distributed SSO ondersteuningsfSmartyView – Gebruik Smarty voor templatingsfOptimizer – Nog meer geoptimaliseerd

Page 16: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 16www.dop.nu

Niet genoeg?

Framework bridges: Gebruik andere frameworks

Zend FrameworkezComponents

Ajax integratie zonder javascript programmeren

Caching

I18n en l10n

Form validation

......

Page 17: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 17www.dop.nu

Jongeren in Beeld

Page 18: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 18www.dop.nu

Wat is Jongeren in Beeld?

Applicatie voor gemeente en hulpverleningsinstanties

Bijhouden van gegevens over “probleemjeugd”

Bijna 30 gemeentes

Ongeveer 150 gebruikers

Wisselende wensen (authorisatie, opslaan gegevens, e.d.)

De toekomst wordt een uitdaging

Page 19: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 19www.dop.nu

Waar komen we vandaan?

Applicatie opgezet met Mambo voor 1 gemeente

Interesse vanuit meer gemeentes

Gebrek aan structuur in Mambo, waardoor alle aanpassingen van 3-4 jaar gebruik leidden tot spaghetti-code

Database met 1500+ tabellen (iedere gemeente eigen tabellen)

Maar ... het werkte!

Page 20: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 20www.dop.nu

En toen?

Oktober 2006: Ik kom bij DOP

Beheersbaarheid van code blijkt nagenoeg verdwenen

Belangrijker: Het is geen website maar een applicatie

Tijd voor een volwassen applicatie

Page 21: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 21www.dop.nu

De keus voor Symfony

PHP5 (dus geen CakePHP)

Stabiele API (dus geen Zend Framework)

Grote community

Goede documentatie

Page 22: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 22www.dop.nu

Waar was ik erg blij mee?

De Askeet tutorial om snel up to speed te zijn

Automatische model generatie

De duidelijkste MVC implementatie in PHP

Goede PHPDoc documentatie (voor in Zend Studio)

symfony freeze

Duidelijke scheiding tussen dev en productie

Page 23: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 23www.dop.nu

Waar was ik iets minder blij mee?

Propel (wanneer het complex wordt)

De screencasts zijn geen goede introductie maar intimideren

Page 24: Symfony (Dutch PHP Conference)

16 juni  2007 DUTCH OPEN PROJECTS 24www.dop.nu

Waar kan je meer vinden?

http://www.symfony-project.com/

http://www.symfony-forge.com/

http://www.leftontheweb.com/

http://groups.google.com/group/symfony-users

http://beta.bookmarks.yahoo.com/