SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Introduzione agli eZ
    Components


     Gaetano Giunta

     PHP Day 2008

    Rimini, 24/5/2008


       www.ez.no
Agenda


  Introduzione

  Architettura / design degli eZ Components

  Funzionalità delle ultime release

  Esempi di utilizzo

  Domande / altro
eZ Systems

  Società creatrice di eZ Publish e degli eZ Components

  Fondata in Norvegia nel 1999

  85 Dipendenti - 23 nazionalità

  HQ a Skien / Norvegia, cinque uffici regionali
     Nordics : Oslo – Copenhagen -Skien
     Central and eastern Europe : Dortmund
     Western Europe : Paris – Lyon – Bruxelles
     Nothern America : Vancouver - Chicago
     A breve ... London & Tokyo

  100% Open Source

  100% PHP
eZ Components – di cosa si tratta?

« Una piattaforma enterprise ready di componenti php general
  purpose »

cioè

  Non è un framework

  ... ma un insieme di componenti debolmente accoppiati. Si
  possono usare insieme o singolarmente

  Non è dedicata esclusivamente allo sviluppo web

  ... ma soprattutto allo sviluppo web

  Disponibile con licenza New BSD e con supporto eZ Systems
Obiettivi della libreria

   Costruire una piattaforma solida che semplifichi lo sviluppo
   di applicazioni PHP 5 permettendo allo sviluppatore di non
   “reinventare la ruota” ogni volta

   API semplice e consistente, design OO « pulito »

   Non forzare una struttura obbligata: non è un framework

   Mantenere a lungo la compatibilità binaria e delle API

   Mantenere la stabilità e limitare le regressioni

   100% Open Source, con chiara attribuzione dei diritti di PI

   Sviluppata, manutenuta e supportata da eZ Systems
Metodologia di sviluppo


  Pieno utilizzo delle librerie e funzionalità disponibili da
  PHP 5.1 (versione minima supportata: 5.1.6, a volte +)

  Discussione e documentazione di tutte le API prima della
  loro implementazione

  Utilizzo pervasivo di unit testing – scrittura dei test
  PRIMA del codice

  Documentazione sia inline (phpdoc à gogo) che offline
  (tutorials, reference, guida di installazione). La
  documentazione si scrive durante lo sviluppo, non dopo
Architettura: naming delle classi


Utilizzazione di un prefisso, a causa della mancanza di
namespacing (in attesa di PHP 5.3): ezcXXX

Leggibili: meglio nomi lunghi ma parlanti che criptici

Talvolta « aggiustati » per una migliore leggibilità
 eg: ezcMailSmtpTransport vs. EzcMailSMTPTransport
 ezcTestSuite vs. PHPUnit2_Framework_TestSuite

...e molte altre regole su
http://ezcomponents.org/contributing/coding_standards.html
Architettura: dipendenze


  Meno ce n'è, meglio è...

  ... evitando però la duplicazione del codice

  solo dove necessario



  Componenti separati
  che le implementano
Schema generale


Le classi sono

raggruppate in

Packages
Roadmap


Release 2008.1 (expected: Giugno 2008)

Nuovi componenti:

  Document – conversione tra differenti formati di dati

  ExtendedReflection

  Feed

  Search – front-end per Solr e altri motori di ricerca
Ultime novità


  2008.1 alpha1
     Nuovo: Cache gerarchica multilivello
     PersistentObject supporto per più datatypes
     Nuovo componente: Search
     Migliorie a: Archive, Authentication, Configuration,
     ConsoleTools, Database, DatabaseSchema, EventLog,
     Graph, Mail, Tree e Workflow

  2008.1 alpha2
     Nuovo componente: Document
     Migliorie a: Base, EventLog, Search e Userinput

  2008.1 beta: a partire dal 27 maggio
Requisiti di sistema

  PHP versione 5.1.6 (per Tree e Webdav PHP 5.2.1)

  Alcune estensioni php sono necessarie per alcuni componenti,
  oppure ne aumentano le capacità

   es: Archive necessita di zlib (presente nell'installazione
     standard di PHP) e bz2, opzionalmente può utilizzare
     « posix » per la gestione dei permessi dei file

  Elenco esaustivo: su
  http://ezcomponents.org/overview/requirements.html
  (c'è anche un quick reference su come compilare le estensioni
  mancanti)
Ambiente di sviluppo: suggerimenti

 Sempre sviluppare con display_errors = On, log_errors = On,
 error_reporting = E_ALL

 Dove si trova il log degli errori di PHP? E del webserver?

 XDebug - l'amico del PHP OOP (e non solo):
   stack traces completi
   Debugging step-by-step (con IDE adeguati)
   Analisi della code coverage (con tool di visualizzazione)
   Profiling (con kcachegrind/wincachegrind)
Ambiente di sviluppo: altri suggerimenti


 ●   Imprescindibile per lo sviluppo web: Firebug

 ●   altre estensioni Firefox utili: « Web developer »,
     « YSlow », « LiveHTTPHeaders », « IETab »,
     « Console2 », « Selenium IDE »

 ●   Per gli sviluppatori windows: UNXUTILS

 ●   In produzione:
     ● Sempre utilizzare una opcode cache (APC, Eaccelerator,
       Xcache, Zend)
     ● Utili nel troubleshooting: Phpinfo, server-status e
       server-info
Installazione 1: via PEAR

 1. Avere una installazione di PHP 5.1 e PEAR funzionante

 2. Aggiungere il canale components.ez.no all'installer PEAR
     pear channel-discover components.ez.no

 3. Scaricare effettivamente i componenti
     pear install -a ezc/eZComponents

 Per aggiornare una installazione esistente:
    pear upgrade ezc/eZComponents



 pear help <nomecomando> è vostro amico!
Installazione 2: via SVN

 Per chi è interessato allo sviluppo della libreria o ha bisogno
   di una patch appena rilasciata

 1. Avere una installazione di PHP 5.1 e un client SVN

 2. Creare una directory dove installare i componenti e ivi
    svn co http://svn.ez.no/svn/ezcomponents/trunk

 3. Scaricare lo script che imposta l'ambiente di sviluppo
    svn co http://svn.ez.no/svn/ezcomponents/scripts
    ./scripts/setup-env.sh (o scriptssetup-env.bat)

 E' ovviamente possibile fare un checkout limitato di solo
   qualche componente – attenzione alle dipendenze!
Installazione 3: old school (a.k.a. quot;a manoquot;)


 1. Scaricare e decomprimere la tarball
 wget
   http://ezcomponents.org/files/downloads/ezcomponents-2007
 tar -xjf ezcomponents-2007.2.1.tar.bz2

 3. Impostare correttamente l'Include Path   (manca il 2!)
Configurazione
  Include path: settato in automatico da PEAR, altrimenti
  va messa la directory radice in cui si è scaricato il software

  Autoload: in automatico tutte le classi degli
  eZComponents vengono caricate da ezcBase
   require_once quot;Base/base.phpquot;;
   function __autoload( $className )
   {
           ezcBase::autoload( $className );
   }

   NB: per installazioni via SVN o tarball

   require_once quot;Base/src/base.phpquot;;
E ora passiamo al codice...
Domande?

              Grazie dell'attenzione!

  http://ezcomponents.org

  http://ez.no/community/forums/ez_components

  http://lists.ez.no/mailman/listinfo/components

                         Gaetano Giunta
                         Senior consultant
                         eZ Systems Western Europe
                         26 rue de la république
                         69002 Lyon
                         tel : +33 (0)4.78.37.01.56
                         email : gg@ez.no

Mais conteúdo relacionado

Mais procurados

High performance in Magento: HHVM
High performance in Magento: HHVMHigh performance in Magento: HHVM
High performance in Magento: HHVMAlessandro Scavella
 
Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumateMarco Buttolo
 
Post gresql su_raspberry
Post gresql su_raspberryPost gresql su_raspberry
Post gresql su_raspberryMarco Buttolo
 
Modern web development with python and Web2py
Modern web development with python and Web2pyModern web development with python and Web2py
Modern web development with python and Web2pyDavide Marzioni
 

Mais procurados (7)

Apache Maven
Apache MavenApache Maven
Apache Maven
 
Socket python
Socket pythonSocket python
Socket python
 
High performance in Magento: HHVM
High performance in Magento: HHVMHigh performance in Magento: HHVM
High performance in Magento: HHVM
 
Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumate
 
Post gresql su_raspberry
Post gresql su_raspberryPost gresql su_raspberry
Post gresql su_raspberry
 
pugBO #10 PSR e Composer
pugBO #10 PSR e ComposerpugBO #10 PSR e Composer
pugBO #10 PSR e Composer
 
Modern web development with python and Web2py
Modern web development with python and Web2pyModern web development with python and Web2py
Modern web development with python and Web2py
 

Semelhante a Gaetano Giunta: introduzione agli eZ components

Gaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP InsideGaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP InsideFrancesco Fullone
 
Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Filippo Matteo Riggio
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterMatteo Baccan
 
Velocizzare Joomla! con Zend Server Community Edition
Velocizzare Joomla! con Zend Server Community EditionVelocizzare Joomla! con Zend Server Community Edition
Velocizzare Joomla! con Zend Server Community EditionEnrico Zimuel
 
Differenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed EnterpriseDifferenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed EnterpriseSoftInstigate
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPGiorgio Cefaro
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazioneDaniele Costarella
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxAlex Palesandro
 
Corso Avanzato Alfresco Ecm
Corso Avanzato Alfresco EcmCorso Avanzato Alfresco Ecm
Corso Avanzato Alfresco Ecmedoardo fraioli
 
Integrare Zend Framework in Wordpress
Integrare Zend Framework in WordpressIntegrare Zend Framework in Wordpress
Integrare Zend Framework in WordpressEnrico Zimuel
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Alessandro del Gobbo
 

Semelhante a Gaetano Giunta: introduzione agli eZ components (20)

Gaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP InsideGaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP Inside
 
Php for ASP.NET Developers
Php for ASP.NET DevelopersPhp for ASP.NET Developers
Php for ASP.NET Developers
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
 
Velocizzare Joomla! con Zend Server Community Edition
Velocizzare Joomla! con Zend Server Community EditionVelocizzare Joomla! con Zend Server Community Edition
Velocizzare Joomla! con Zend Server Community Edition
 
Differenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed EnterpriseDifferenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed Enterprise
 
Build Automation Tips
Build Automation TipsBuild Automation Tips
Build Automation Tips
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazione
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/Linux
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
 
Corso Avanzato Alfresco Ecm
Corso Avanzato Alfresco EcmCorso Avanzato Alfresco Ecm
Corso Avanzato Alfresco Ecm
 
Integrare Zend Framework in Wordpress
Integrare Zend Framework in WordpressIntegrare Zend Framework in Wordpress
Integrare Zend Framework in Wordpress
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Infrastructure as Data
Infrastructure as DataInfrastructure as Data
Infrastructure as Data
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013
 

Mais de Francesco Fullone

Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale Francesco Fullone
 
Okr istruzioni per l'uso - devfest
Okr   istruzioni per l'uso - devfestOkr   istruzioni per l'uso - devfest
Okr istruzioni per l'uso - devfestFrancesco Fullone
 
OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?Francesco Fullone
 
Open Governance, un caso reale
Open Governance, un caso realeOpen Governance, un caso reale
Open Governance, un caso realeFrancesco Fullone
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applicationsFrancesco Fullone
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applicationsFrancesco Fullone
 
MVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft AzureMVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft AzureFrancesco Fullone
 
Help yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystemHelp yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystemFrancesco Fullone
 
Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?Francesco Fullone
 
From brainstorming to product development
From brainstorming to product developmentFrom brainstorming to product development
From brainstorming to product developmentFrancesco Fullone
 
Compromises and not solution
Compromises and not solutionCompromises and not solution
Compromises and not solutionFrancesco Fullone
 

Mais de Francesco Fullone (20)

Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale
 
Okr istruzioni per l'uso - devfest
Okr   istruzioni per l'uso - devfestOkr   istruzioni per l'uso - devfest
Okr istruzioni per l'uso - devfest
 
OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?
 
Okr per community - icms
Okr   per community - icmsOkr   per community - icms
Okr per community - icms
 
Open Governance, un caso reale
Open Governance, un caso realeOpen Governance, un caso reale
Open Governance, un caso reale
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applications
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applications
 
Con te non ci lavoro
Con te non ci lavoroCon te non ci lavoro
Con te non ci lavoro
 
Con te non ci lavoro
Con te non ci lavoroCon te non ci lavoro
Con te non ci lavoro
 
Continuous budgeting
Continuous budgetingContinuous budgeting
Continuous budgeting
 
Remote working istruzioni
Remote working istruzioniRemote working istruzioni
Remote working istruzioni
 
Remote working istruzioni
Remote working istruzioniRemote working istruzioni
Remote working istruzioni
 
MVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft AzureMVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft Azure
 
Remote working istruzioni
Remote working istruzioniRemote working istruzioni
Remote working istruzioni
 
Help yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystemHelp yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystem
 
Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?
 
From brainstorming to product development
From brainstorming to product developmentFrom brainstorming to product development
From brainstorming to product development
 
Compromises and not solution
Compromises and not solutionCompromises and not solution
Compromises and not solution
 
PHP Goes Enterprise
PHP Goes EnterprisePHP Goes Enterprise
PHP Goes Enterprise
 
your browser, my storage
your browser, my storageyour browser, my storage
your browser, my storage
 

Gaetano Giunta: introduzione agli eZ components

  • 1. Introduzione agli eZ Components Gaetano Giunta PHP Day 2008 Rimini, 24/5/2008 www.ez.no
  • 2. Agenda Introduzione Architettura / design degli eZ Components Funzionalità delle ultime release Esempi di utilizzo Domande / altro
  • 3. eZ Systems Società creatrice di eZ Publish e degli eZ Components Fondata in Norvegia nel 1999 85 Dipendenti - 23 nazionalità HQ a Skien / Norvegia, cinque uffici regionali Nordics : Oslo – Copenhagen -Skien Central and eastern Europe : Dortmund Western Europe : Paris – Lyon – Bruxelles Nothern America : Vancouver - Chicago A breve ... London & Tokyo 100% Open Source 100% PHP
  • 4. eZ Components – di cosa si tratta? « Una piattaforma enterprise ready di componenti php general purpose » cioè Non è un framework ... ma un insieme di componenti debolmente accoppiati. Si possono usare insieme o singolarmente Non è dedicata esclusivamente allo sviluppo web ... ma soprattutto allo sviluppo web Disponibile con licenza New BSD e con supporto eZ Systems
  • 5. Obiettivi della libreria Costruire una piattaforma solida che semplifichi lo sviluppo di applicazioni PHP 5 permettendo allo sviluppatore di non “reinventare la ruota” ogni volta API semplice e consistente, design OO « pulito » Non forzare una struttura obbligata: non è un framework Mantenere a lungo la compatibilità binaria e delle API Mantenere la stabilità e limitare le regressioni 100% Open Source, con chiara attribuzione dei diritti di PI Sviluppata, manutenuta e supportata da eZ Systems
  • 6. Metodologia di sviluppo Pieno utilizzo delle librerie e funzionalità disponibili da PHP 5.1 (versione minima supportata: 5.1.6, a volte +) Discussione e documentazione di tutte le API prima della loro implementazione Utilizzo pervasivo di unit testing – scrittura dei test PRIMA del codice Documentazione sia inline (phpdoc à gogo) che offline (tutorials, reference, guida di installazione). La documentazione si scrive durante lo sviluppo, non dopo
  • 7. Architettura: naming delle classi Utilizzazione di un prefisso, a causa della mancanza di namespacing (in attesa di PHP 5.3): ezcXXX Leggibili: meglio nomi lunghi ma parlanti che criptici Talvolta « aggiustati » per una migliore leggibilità eg: ezcMailSmtpTransport vs. EzcMailSMTPTransport ezcTestSuite vs. PHPUnit2_Framework_TestSuite ...e molte altre regole su http://ezcomponents.org/contributing/coding_standards.html
  • 8. Architettura: dipendenze Meno ce n'è, meglio è... ... evitando però la duplicazione del codice solo dove necessario Componenti separati che le implementano
  • 9. Schema generale Le classi sono raggruppate in Packages
  • 10. Roadmap Release 2008.1 (expected: Giugno 2008) Nuovi componenti: Document – conversione tra differenti formati di dati ExtendedReflection Feed Search – front-end per Solr e altri motori di ricerca
  • 11. Ultime novità 2008.1 alpha1 Nuovo: Cache gerarchica multilivello PersistentObject supporto per più datatypes Nuovo componente: Search Migliorie a: Archive, Authentication, Configuration, ConsoleTools, Database, DatabaseSchema, EventLog, Graph, Mail, Tree e Workflow 2008.1 alpha2 Nuovo componente: Document Migliorie a: Base, EventLog, Search e Userinput 2008.1 beta: a partire dal 27 maggio
  • 12. Requisiti di sistema PHP versione 5.1.6 (per Tree e Webdav PHP 5.2.1) Alcune estensioni php sono necessarie per alcuni componenti, oppure ne aumentano le capacità es: Archive necessita di zlib (presente nell'installazione standard di PHP) e bz2, opzionalmente può utilizzare « posix » per la gestione dei permessi dei file Elenco esaustivo: su http://ezcomponents.org/overview/requirements.html (c'è anche un quick reference su come compilare le estensioni mancanti)
  • 13. Ambiente di sviluppo: suggerimenti Sempre sviluppare con display_errors = On, log_errors = On, error_reporting = E_ALL Dove si trova il log degli errori di PHP? E del webserver? XDebug - l'amico del PHP OOP (e non solo): stack traces completi Debugging step-by-step (con IDE adeguati) Analisi della code coverage (con tool di visualizzazione) Profiling (con kcachegrind/wincachegrind)
  • 14. Ambiente di sviluppo: altri suggerimenti ● Imprescindibile per lo sviluppo web: Firebug ● altre estensioni Firefox utili: « Web developer », « YSlow », « LiveHTTPHeaders », « IETab », « Console2 », « Selenium IDE » ● Per gli sviluppatori windows: UNXUTILS ● In produzione: ● Sempre utilizzare una opcode cache (APC, Eaccelerator, Xcache, Zend) ● Utili nel troubleshooting: Phpinfo, server-status e server-info
  • 15. Installazione 1: via PEAR 1. Avere una installazione di PHP 5.1 e PEAR funzionante 2. Aggiungere il canale components.ez.no all'installer PEAR pear channel-discover components.ez.no 3. Scaricare effettivamente i componenti pear install -a ezc/eZComponents Per aggiornare una installazione esistente: pear upgrade ezc/eZComponents pear help <nomecomando> è vostro amico!
  • 16. Installazione 2: via SVN Per chi è interessato allo sviluppo della libreria o ha bisogno di una patch appena rilasciata 1. Avere una installazione di PHP 5.1 e un client SVN 2. Creare una directory dove installare i componenti e ivi svn co http://svn.ez.no/svn/ezcomponents/trunk 3. Scaricare lo script che imposta l'ambiente di sviluppo svn co http://svn.ez.no/svn/ezcomponents/scripts ./scripts/setup-env.sh (o scriptssetup-env.bat) E' ovviamente possibile fare un checkout limitato di solo qualche componente – attenzione alle dipendenze!
  • 17. Installazione 3: old school (a.k.a. quot;a manoquot;) 1. Scaricare e decomprimere la tarball wget http://ezcomponents.org/files/downloads/ezcomponents-2007 tar -xjf ezcomponents-2007.2.1.tar.bz2 3. Impostare correttamente l'Include Path (manca il 2!)
  • 18. Configurazione Include path: settato in automatico da PEAR, altrimenti va messa la directory radice in cui si è scaricato il software Autoload: in automatico tutte le classi degli eZComponents vengono caricate da ezcBase require_once quot;Base/base.phpquot;; function __autoload( $className ) { ezcBase::autoload( $className ); } NB: per installazioni via SVN o tarball require_once quot;Base/src/base.phpquot;;
  • 19. E ora passiamo al codice...
  • 20. Domande? Grazie dell'attenzione! http://ezcomponents.org http://ez.no/community/forums/ez_components http://lists.ez.no/mailman/listinfo/components Gaetano Giunta Senior consultant eZ Systems Western Europe 26 rue de la république 69002 Lyon tel : +33 (0)4.78.37.01.56 email : gg@ez.no