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
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. "a mano")
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 "Base/base.php";
function __autoload( $className )
{
ezcBase::autoload( $className );
}
NB: per installazioni via SVN o tarball
require_once "Base/src/base.php";
20. Domande?
Grazie dell'attenzione!
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
http://ezcomponents.org
http://ez.no/community/forums/ez_components
http://lists.ez.no/mailman/listinfo/components