Différences entre versions de « PHP »
imported>SylvainBeucler m (→PEAR : installation Pear façon Debian) |
imported>SylvainBeucler m (Section "débogage" mieux visible) |
||
Ligne 2 : | Ligne 2 : | ||
* [http://packages.debian.org/stable/doc/php3-doc Documentation for PHP3] | * [http://packages.debian.org/stable/doc/php3-doc Documentation for PHP3] | ||
* [http://packages.debian.org/oldstable/doc/phpdoc Documentation for PHP4 and PHP3] (snapshot 2002) | * [http://packages.debian.org/oldstable/doc/phpdoc Documentation for PHP4 and PHP3] (snapshot 2002) | ||
+ | |||
+ | == Débogage PHP == | ||
+ | |||
+ | Voir la section dédiée: [[Débogage PHP]] | ||
+ | |||
+ | == Accélérateurs PHP == | ||
+ | |||
+ | * [http://trac.lighttpd.net/xcache/ XCache]: cache, couverture (optionnel), orienté stabilité, interface web de stats ([http://packages.debian.org/sid/php5-xcache paquet Debian]) | ||
+ | * [http://pecl.php.net/package/APC APC]: cache uniquement (optimiseur obsolète?), plus proche de PHP (participation de Rasmus) ([http://packages.debian.org/sid/php-apc paquet Debian]) | ||
+ | * [http://eaccelerator.net/ eAccelerator]: successeur de Turck mmCache, fournit aussi encodeur, optimiseur, système de cache pour développeur?... | ||
+ | |||
+ | Comparatifs: | ||
+ | * http://www.ipersec.com/index.php?q=fr/node/2/print (eAccelerator) | ||
+ | * http://www.j2eegeek.com/blog/2007/02/27/php-acceleration-pick-your-poison/ (APC) | ||
== Dernière version libre de la documentation PHP == | == Dernière version libre de la documentation PHP == | ||
Ligne 17 : | Ligne 31 : | ||
cvs -d :pserver:cvsread@cvs.php.net:/repository login # pass: phpfi | cvs -d :pserver:cvsread@cvs.php.net:/repository login # pass: phpfi | ||
cvs -d :pserver:cvsread@cvs.php.net:/repository checkout -D "2003-05-02 14:12:58Z" phpdocs | cvs -d :pserver:cvsread@cvs.php.net:/repository checkout -D "2003-05-02 14:12:58Z" phpdocs | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== PEAR == | == PEAR == | ||
Ligne 95 : | Ligne 103 : | ||
* [http://phplens.com/lens/adodb/docs-active-record.htm ADOdb Active Record]: un ORM qui fait partie d'ADOdb, à voir; réimplémentation de Zend Active Records; c'est apparement le seul outil à utiliser la base de données comme description du modèle - ce qui me semble en fait très pertinent. | * [http://phplens.com/lens/adodb/docs-active-record.htm ADOdb Active Record]: un ORM qui fait partie d'ADOdb, à voir; réimplémentation de Zend Active Records; c'est apparement le seul outil à utiliser la base de données comme description du modèle - ce qui me semble en fait très pertinent. | ||
* d'autres listés sur [http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#PHP Wikipedia]. | * d'autres listés sur [http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#PHP Wikipedia]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Version du 4 décembre 2008 à 18:18
Dernières versions de la documentation officielle de PHP, avant qu'elle ne devienne non-libre:
- Documentation for PHP3
- Documentation for PHP4 and PHP3 (snapshot 2002)
Débogage PHP
Voir la section dédiée: Débogage PHP
Accélérateurs PHP
- XCache: cache, couverture (optionnel), orienté stabilité, interface web de stats (paquet Debian)
- APC: cache uniquement (optimiseur obsolète?), plus proche de PHP (participation de Rasmus) (paquet Debian)
- eAccelerator: successeur de Turck mmCache, fournit aussi encodeur, optimiseur, système de cache pour développeur?...
Comparatifs:
- http://www.ipersec.com/index.php?q=fr/node/2/print (eAccelerator)
- http://www.j2eegeek.com/blog/2007/02/27/php-acceleration-pick-your-poison/ (APC)
Dernière version libre de la documentation PHP
Précisons que l'Open Publication License (OPL) est une licence libre uniquement si aucune option n'est utilisée (notamment, l'interdiction des travaux dérivés sans consentement des détenteurs des droits).
La dernière version date de 2003.
Avec cvs2cl --utc
, j'obtiens le ChangeLog suivant:
2003-05-02 14:12 goba * en/bookinfo.xml: And now: upgrading to the new license
La dernière version libre est donc:
cvs -d :pserver:cvsread@cvs.php.net:/repository login # pass: phpfi cvs -d :pserver:cvsread@cvs.php.net:/repository checkout -D "2003-05-02 14:12:58Z" phpdocs
PEAR
Problèmes de license:
- Début
- Conclusion?
- Bug à inverser au niveau de la documentation
- Page de doc à corriger
- Sylvain cité comme ayant démarré un des threads les plus pénibles de l'année!
- Synthèse sur Savannah
- Des progrès
Installation de la version officielle avec les chemins d'accès Debian
Installation de Pear:
aptitude install php5-cli wget -O- http://pear.php.net/go-pear | php -q
PEAR, configuration implicite:
1. Installation prefix ($prefix) : /root 2. Temporary files directory : $prefix/temp 4. PHP code directory ($php_dir) : $prefix/PEAR
Pour Debian, modifier:
1. Installation prefix ($prefix) : /usr 2. Temporary files directory : /tmp/pear/temp 4. PHP code directory ($php_dir) : $prefix/share/php
Résultat final:
PEAR executables directory bin_dir /usr/bin PEAR documentation directory doc_dir /usr/share/php/docs PHP extension directory ext_dir /usr/lib/php5/20060613+lfs PEAR directory php_dir /usr/share/php PEAR Installer cache directory cache_dir /tmp/pear/cache PEAR data directory data_dir /usr/share/php/data PEAR Installer download download_dir /tmp/pear/cache PEAR Installer temp directory temp_dir /tmp/pear/temp PEAR test directory test_dir /usr/share/php/tests
Tests unitaires avec PHP
- SimpleTest
- PHPUnit
- phpt (tutorial, guide qa.php.net), apparemment plus simple/rapide. Lancer avec
pear run-tests *.phpt
.
Voir également WWW::Mechanize (Mech) pour tester le programme de manière externe par son interface web (en Perl). Pour une solution en PHP, voir éventuellement la bibliothèque curl, qui ne sait cependant pas analyser le HTML reçu.
Génération de formulaires
- HTML_QuickForm: one class that contains all form elements and associated info (validation), which can analyse input and render the form in HTML Critic HTML_QuickForm2 QuickForm2 development Wiki
- patForms
- Solar_Form (à coupler avec un moteur de template pour l'affichage?)
Abstraction de la base de données
- MDB2: successeur de PEAR::DB, licence mBSD
- Creole: PHP5 seulement; licence LGPL
- AdoDB: utilisé par TikiWiki, Xaraya, eGroupWare; license mBSD
Simplification de l'accès à la base
Dépend d'une des abstraction ci-dessus. Mots-clefs à chercher: ORM (Object Relational Mapping)
- DB_Table: non-object, intégration avec QuickForm et validation des update/insert, description via une classe et des tableaux ($cols, $idx, $sql...); utilise PEAR::DB (licence PHP); LGPL
- Propel: description en XML (lourd?), relations inter-classes, relations N-M possibles mais pas encore propres; possibilité d'utiliser directement SQL si besoin; validation décrite en XML (lourd); utilise Creole
- DB_DataContainer: mapping objet simpliste, pas de relation inter-tables; description via la classe PHP; nécessite un champ 'id'.
- DB_DataObject: fichier de description .ini; liens entre classes; à essayer; licence PHP
- EZPDO: description inclue dans des tags @orm style javadoc; validation via des 'Events'/hooks, aucune validation par défaut a priori; mBSD
- CakePHP: framework style Ruby on Rails, inclut un ORM; la validation, à base de regexp, fait partie du framework et en est vraisemblablement indissociable.
- Doctrine: ça a l'air très propre (bonne gestion du model relationel?); description par une classe; discussions en cours pour intégration dans PEAR
- MetaL Metastrorage: beaucoup de XML
- ADOdb Active Record: un ORM qui fait partie d'ADOdb, à voir; réimplémentation de Zend Active Records; c'est apparement le seul outil à utiliser la base de données comme description du modèle - ce qui me semble en fait très pertinent.
- d'autres listés sur Wikipedia.