SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Symfony


                Dutch PHP Conference
                    16 juni 2007

           Stefan Koopmanschap, Dutch Open Projects




                                        www.dop.nu
16 juni  2007     DUTCH OPEN PROJECTS                 1
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
Over mij
    16 Juni 1978
●



    Communicatiesystemen
●



    PHP door zelfstudie
●



    phpBB
●



    Dutch Open Projects
●




                                               www.dop.nu
     16 juni  2007   DUTCH OPEN PROJECTS                    3
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
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
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
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
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
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
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
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
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
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
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
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
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
Jongeren in Beeld




                                      www.dop.nu
16 juni  2007   DUTCH OPEN PROJECTS                17
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
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
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
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
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
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
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

Mais conteúdo relacionado

Semelhante a Symfony (Dutch PHP Conference)

Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012Tim Ameye
 
Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)Sander van der Kolk
 
Presentatie saMBO~ICT 2010
Presentatie saMBO~ICT 2010Presentatie saMBO~ICT 2010
Presentatie saMBO~ICT 2010Wytze Koopal
 
Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)guest621f23
 
Open Source voor Avans Hogeschool
Open Source voor Avans HogeschoolOpen Source voor Avans Hogeschool
Open Source voor Avans HogeschoolJeroen Hoogeweij
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages IntroductieRob Bontekoe
 
MuMe09 Verslag3 Groep 10
MuMe09 Verslag3 Groep 10MuMe09 Verslag3 Groep 10
MuMe09 Verslag3 Groep 10Sam Decrock
 
Drupal Cursus Hans Rossel
Drupal Cursus Hans RosselDrupal Cursus Hans Rossel
Drupal Cursus Hans RosselHans Rossel
 
Opensource als alternatief
Opensource als alternatiefOpensource als alternatief
Opensource als alternatiefPeter Langenberg
 
Open eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentOpen eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentBart Gysens
 
Drupal workshop 10-03-2011
Drupal workshop 10-03-2011Drupal workshop 10-03-2011
Drupal workshop 10-03-2011Hoppinger
 
Oplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceOplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceguesta83c7d
 
oplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceoplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceguesta83c7d
 
Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenHeadless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenLuciuswebsystems
 
Ontwikkelen van online platformen met Drupal 8
Ontwikkelen van online platformen met Drupal 8Ontwikkelen van online platformen met Drupal 8
Ontwikkelen van online platformen met Drupal 8Raymond Muilwijk
 

Semelhante a Symfony (Dutch PHP Conference) (20)

Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015
 
Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012Tussentijdse presentatie 22/11/2012
Tussentijdse presentatie 22/11/2012
 
Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)
 
Drupal 7 Architectuur
Drupal 7 ArchitectuurDrupal 7 Architectuur
Drupal 7 Architectuur
 
Presa xpages lcty 2011
Presa xpages lcty 2011Presa xpages lcty 2011
Presa xpages lcty 2011
 
Presentatie saMBO~ICT 2010
Presentatie saMBO~ICT 2010Presentatie saMBO~ICT 2010
Presentatie saMBO~ICT 2010
 
Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)Business Mashups - Building on the Shoulders of Giants (Dutch)
Business Mashups - Building on the Shoulders of Giants (Dutch)
 
Open Source voor Avans Hogeschool
Open Source voor Avans HogeschoolOpen Source voor Avans Hogeschool
Open Source voor Avans Hogeschool
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages Introductie
 
MuMe09 Verslag3 Groep 10
MuMe09 Verslag3 Groep 10MuMe09 Verslag3 Groep 10
MuMe09 Verslag3 Groep 10
 
Drupal Cursus Hans Rossel
Drupal Cursus Hans RosselDrupal Cursus Hans Rossel
Drupal Cursus Hans Rossel
 
Opensource als alternatief
Opensource als alternatiefOpensource als alternatief
Opensource als alternatief
 
Open eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernmentOpen eGo, innovatie in eGovernment
Open eGo, innovatie in eGovernment
 
Open eGo 20090910
Open eGo 20090910Open eGo 20090910
Open eGo 20090910
 
Drupal workshop 10-03-2011
Drupal workshop 10-03-2011Drupal workshop 10-03-2011
Drupal workshop 10-03-2011
 
Oplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceOplijsting mogelijkheden open source
Oplijsting mogelijkheden open source
 
oplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceoplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_source
 
Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenHeadless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
 
Ontwikkelen van online platformen met Drupal 8
Ontwikkelen van online platformen met Drupal 8Ontwikkelen van online platformen met Drupal 8
Ontwikkelen van online platformen met Drupal 8
 
Demo: events 6
Demo: events 6Demo: events 6
Demo: events 6
 

Mais de Stefan Koopmanschap

Git for Subversion Users (ZendCon 2011)
Git for Subversion Users (ZendCon 2011)Git for Subversion Users (ZendCon 2011)
Git for Subversion Users (ZendCon 2011)Stefan Koopmanschap
 
A Practical Look at Symfony2 (PHPNW11)
A Practical Look at Symfony2 (PHPNW11)A Practical Look at Symfony2 (PHPNW11)
A Practical Look at Symfony2 (PHPNW11)Stefan Koopmanschap
 
Git For Subversion Users (PHPNW11)
Git For Subversion Users (PHPNW11)Git For Subversion Users (PHPNW11)
Git For Subversion Users (PHPNW11)Stefan Koopmanschap
 
Open Up (International PHP Conference Spring Edition 2011)
Open Up (International PHP Conference Spring Edition 2011)Open Up (International PHP Conference Spring Edition 2011)
Open Up (International PHP Conference Spring Edition 2011)Stefan Koopmanschap
 
Git for Subversion Users (phpDay 2011)
Git for Subversion Users (phpDay 2011)Git for Subversion Users (phpDay 2011)
Git for Subversion Users (phpDay 2011)Stefan Koopmanschap
 
Would you like docs with that? - Zend Webinar
Would you like docs with that? - Zend WebinarWould you like docs with that? - Zend Webinar
Would you like docs with that? - Zend WebinarStefan Koopmanschap
 
Git workshop (2value, 14-12-2010)
Git workshop (2value, 14-12-2010)Git workshop (2value, 14-12-2010)
Git workshop (2value, 14-12-2010)Stefan Koopmanschap
 
Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)Stefan Koopmanschap
 
Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)Stefan Koopmanschap
 
Integrating symfony and Zend Framework (IPC 2010)
Integrating symfony and Zend Framework (IPC 2010)Integrating symfony and Zend Framework (IPC 2010)
Integrating symfony and Zend Framework (IPC 2010)Stefan Koopmanschap
 
Would you like docs with that? (Pfcongres 2010)
Would you like docs with that? (Pfcongres 2010)Would you like docs with that? (Pfcongres 2010)
Would you like docs with that? (Pfcongres 2010)Stefan Koopmanschap
 
The Symfony Community - How to (get) help
The Symfony Community - How to (get) helpThe Symfony Community - How to (get) help
The Symfony Community - How to (get) helpStefan Koopmanschap
 
Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)Stefan Koopmanschap
 
Integrating symfony and Zend Framework (PHPNW09)
Integrating symfony and Zend Framework (PHPNW09)Integrating symfony and Zend Framework (PHPNW09)
Integrating symfony and Zend Framework (PHPNW09)Stefan Koopmanschap
 
Integrating symfony and Zend Framework
Integrating symfony and Zend FrameworkIntegrating symfony and Zend Framework
Integrating symfony and Zend FrameworkStefan Koopmanschap
 

Mais de Stefan Koopmanschap (20)

A Practical Look At Symfony2
A Practical Look At Symfony2A Practical Look At Symfony2
A Practical Look At Symfony2
 
Git for Subversion Users (ZendCon 2011)
Git for Subversion Users (ZendCon 2011)Git for Subversion Users (ZendCon 2011)
Git for Subversion Users (ZendCon 2011)
 
A Practical Look at Symfony2 (PHPNW11)
A Practical Look at Symfony2 (PHPNW11)A Practical Look at Symfony2 (PHPNW11)
A Practical Look at Symfony2 (PHPNW11)
 
Git For Subversion Users (PHPNW11)
Git For Subversion Users (PHPNW11)Git For Subversion Users (PHPNW11)
Git For Subversion Users (PHPNW11)
 
Conference Speaking 101
Conference Speaking 101Conference Speaking 101
Conference Speaking 101
 
Open Up (International PHP Conference Spring Edition 2011)
Open Up (International PHP Conference Spring Edition 2011)Open Up (International PHP Conference Spring Edition 2011)
Open Up (International PHP Conference Spring Edition 2011)
 
Git for Subversion Users (phpDay 2011)
Git for Subversion Users (phpDay 2011)Git for Subversion Users (phpDay 2011)
Git for Subversion Users (phpDay 2011)
 
Would you like docs with that? - Zend Webinar
Would you like docs with that? - Zend WebinarWould you like docs with that? - Zend Webinar
Would you like docs with that? - Zend Webinar
 
Git workshop (2value, 14-12-2010)
Git workshop (2value, 14-12-2010)Git workshop (2value, 14-12-2010)
Git workshop (2value, 14-12-2010)
 
Git Workshop (Pfz Workshopdag)
Git Workshop (Pfz Workshopdag)Git Workshop (Pfz Workshopdag)
Git Workshop (Pfz Workshopdag)
 
Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)
 
Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)Would you like docs with that? (IPC 2010)
Would you like docs with that? (IPC 2010)
 
Integrating symfony and Zend Framework (IPC 2010)
Integrating symfony and Zend Framework (IPC 2010)Integrating symfony and Zend Framework (IPC 2010)
Integrating symfony and Zend Framework (IPC 2010)
 
symfony 1.4 workshop
symfony 1.4 workshopsymfony 1.4 workshop
symfony 1.4 workshop
 
Would you like docs with that? (Pfcongres 2010)
Would you like docs with that? (Pfcongres 2010)Would you like docs with that? (Pfcongres 2010)
Would you like docs with that? (Pfcongres 2010)
 
The Symfony Community - How to (get) help
The Symfony Community - How to (get) helpThe Symfony Community - How to (get) help
The Symfony Community - How to (get) help
 
Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)
 
Integrating symfony and Zend Framework (PHPNW09)
Integrating symfony and Zend Framework (PHPNW09)Integrating symfony and Zend Framework (PHPNW09)
Integrating symfony and Zend Framework (PHPNW09)
 
Integrating symfony and Zend Framework
Integrating symfony and Zend FrameworkIntegrating symfony and Zend Framework
Integrating symfony and Zend Framework
 
Scrum (dutch)
Scrum (dutch)Scrum (dutch)
Scrum (dutch)
 

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