Advertisement
Advertisement

More Related Content

Advertisement

Symfony (Dutch PHP Conference)

  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
Advertisement