Symfony (Dutch PHP Conference)

  • 3,998 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,998
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
28
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Symfony Dutch PHP Conference 16 juni 2007 Stefan Koopmanschap, Dutch Open Projects www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 1
  • 2. Deze presentatie Over mij ● Wat is Symfony? ● De geschiedenis van Symfony ● Hoe werkt het? ● Jongeren in Beeld ● www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 2
  • 3. Over mij 16 Juni 1978 ● Communicatiesystemen ● PHP door zelfstudie ● phpBB ● Dutch Open Projects ● www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 3
  • 4. Over Symfony MVC Framework ● PHP 5 ● Open Source (MIT! Dus geen GPL!) ● Professioneel ontwikkelen ● Stabiel ● ● Documentatie ● OO ● Testen Geen Ruby on Rails ● www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 4
  • 5. 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 ● www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 5
  • 6. Wat is het? Compleet framework inclusief utilities Geen “component library” maar volledige “environment” CLI commando's voor standaard taken initialisatie van applicatie, module, project log purge en log rotate plugin installatie, upgrade en deinstallatie propel (model/db) taken unit en functional testing debugging en gedeeltelijk profiling deployment (!!) www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 6
  • 7. Hoe werkt het? Duidelijke directory structuur /apps /myapp /config /i18n /lib /modules /templates /batch /cache /config /data /doc /lib /model /map /om /log /plugins /test /web /css /images /js /uploads www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 7
  • 8. 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 www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 8
  • 9. Hoe werkt het? /modules /mymodule /actions /actions.class.php /config /lib /templates /validate Duidelijke MVC structuur met Front Controller Controller handelt request af Model handelt data af View handelt layout af www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 9
  • 10. Hoe werkt het? Hoe beginnen we? symfony init-project symfony init-app (he! het werkt!) symfony init-module Uitstapje naar Yaml: schema.yml, databases.yml Propel configureren: propel.ini symfony propel-build-model symfony propel-build-sql symfony propel-insert-sql symfony propel-generate-crud symfony propel-init-admin www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 10
  • 11. Hoe werkt het? Layout: hoe werkt dat? templates voor individuele pagina's layout.php op applicatieniveau view.yml op applicatieniveau www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 11
  • 12. Configuratie van je applicatie Heel veel controle, een paar highlights: logging.yml routing.yml security.yml settings.yml view.yml www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 12
  • 13. 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 www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 13
  • 14. Debugging Frontend applicatie bevat index.php maar ook frontend_dev.php Debug toolbar logs en systeemberichten configuratie en variabelen database queries performance informatie www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 14
  • 15. Uitbreidingsmogelijkheden Plugins sfFeed2 – RSS en Atom makkelijk sfControlPanel – Symfony applicatie beheer sfSugarCRM – Koppeling met SugarCRM SOAP sfOpenID – Distributed SSO ondersteuning sfSmartyView – Gebruik Smarty voor templating sfOptimizer – Nog meer geoptimaliseerd www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 15
  • 16. Niet genoeg? Framework bridges: Gebruik andere frameworks Zend Framework ezComponents Ajax integratie zonder javascript programmeren Caching I18n en l10n Form validation ...... www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 16
  • 17. Jongeren in Beeld www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 17
  • 18. 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 www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 18
  • 19. 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! www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 19
  • 20. 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 www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 20
  • 21. De keus voor Symfony PHP5 (dus geen CakePHP) Stabiele API (dus geen Zend Framework) Grote community Goede documentatie www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 21
  • 22. 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 www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 22
  • 23. Waar was ik iets minder blij mee? Propel (wanneer het complex wordt) De screencasts zijn geen goede introductie maar intimideren www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 23
  • 24. 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/ www.dop.nu 16 juni  2007 DUTCH OPEN PROJECTS 24