IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Cours de PHP 5

Image non disponible


précédentsommairesuivant

XI. Aider la communauté

XI-A. Introduction

Le site officiel de PHP utilise CVS pour la majorité des contributions. Dans le jargon, avoir un compte CVS sur php.net s'appelle "avoir du karma". Les mainteneurs accordent un accès CVS à ceux qui apportent des patches ou du nouveau code.

Bien que PHP lui-même soit écrit en langage C, vous n'avez pas nécessairement besoin de savoir programmer en langage C pour aider la communauté. En fait, vous n'avez pas besoin de savoir programmer du tout... Si vous connaissez le langage C, vous pouvez apporter votre aide au développement du core ou des extensions ; si vous connaissez seulement PHP, vous pouvez aider à l'écriture de tests ; dans tous les cas, vous pouvez aider à la documentation (anglaise ou traductions) et à l'éducation des autres développeurs.

Les personnes ayant du karma sont souvent considérées comme des mentors.

XI-B. Détection et correction de bugs

Lorsque vous pensez avoir détecté un bug dans le fonctionnement de PHP, vérifiez à deux fois. Le but est de ne pas faire un rapport de bug en double ou factice, car cela donne trop de travail de modération au PHP Group et car cela ralentit le développement du langage.

Vous devriez suivre ces étapes :
  1. Vérifier dans le Bug System de php.net : http://bugs.php.net/PHP bug tracking system ;
  2. Chercher dans les listes de diffusion une ancienne mention de ce bug (c'est peut-être une feature que vous ne connaissiez pas) : http://php.net/mailing-lists.phpListes de diffusion PHP ;
  3. Envoyer un e-mail à la liste de diffusion concernée, en précisant que vous n'avez rien trouvé ni dans le système de rapport de bugs ni dans les listes ;
  4. Lorsque quelqu'un ayant du "karma" vous répond que vous devriez soumettre un rapport de bug, allez-y.

Si vous souhaitez résoudre un bug, proposez simplement un patch à la liste de diffusion adéquate : http://php.net/mailing-lists.phpListes de diffusion PHP

N'envoyez pas de message inutile aux listes de développement et à Internals car elles sont prévues essentiellement pour faire avancer PHP. Toute question doit se faire sur la liste php-general, réservez les autres listes pour les patches.

XI-C. Tester le code source de PHP

Le code source de PHP est testé au moyen de scripts PHP portant (par convention) l'extension ".phpt", un format proposé par la "PHP Quality Assurance Team" : http://qa.php.net/.

Les statistiques sur la couverture du code par les tests est visible ici : Test and code coverage analysisPHP: Test and Code Coverage Analysis.

Les tests phpt sont apparus avec la version 5 de PHP. Le groupe QA s'est construit à l'initiative de Stefan Esser, qui l'a depuis quitté pour des raisons personnelles.

Tous les tests sont disponibles depuis CVS mais aussi dans les archives téléchargées du code source de PHP.

Voici la syntaxe complète d'un test :

http://cvs.php.net/viewvc.cgi/qaweb/phpt_details.php?view=markup
Sélectionnez
--TEST--
--CREDITS--
--SKIPIF--
--POST--
--GZIP_POST--
--DEFLATE_POST--
--POST_RAW--
--GET--
--COOKIE--
--STDIN--
--INI--
--ARGS--
--ENV--
--FILE--
--FILEEOF--
--FILE_EXTERNAL--
--EXPECT--
--UEXPECT--
--EXPECTF--
--UEXPECTF--
--EXPECTREGEX--
--UEXPECTREGEX--
--REDIRECTTEST--
--HEADERS--
--EXPECTHEADERS--
--CLEAN--
===DONE===

Chaque section est indiquée par un marqueur --SECTION-- sur une ligne vide. Le marqueur est suivi de son contenu, par exemple :

PHP-SRC/tests/classes/abstract.phpt
Sélectionnez
--TEST--
ZE2 An abstract method may not be called
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php

abstract class fail {
	abstract function show();
}

class pass extends fail {
	function show() {
		echo "Call to function show()\n";
	}
	function error() {
		parent::show();
	}
}

$t = new pass();
$t->show();
$t->error();

echo "Done\n"; // shouldn't be displayed
?>
--EXPECTF--
Call to function show()

Fatal error: Cannot call abstract method fail::show() in %s on line %d

L'effet d'un test est facile à deviner d'après le code du test. Il s'agit de tests unitaires extrêmement simples, ayant le minimum possible de code permettant de vérifier qu'une fonctionnalité précise donne le résultat attendu, etc. Dans le cas ci-dessus, le test s'assure qu'une méthode abstraite ne peut pas être appelée par du code PHP. Si le test indiquait le mot "Done", alors il faudrait revoir (dans le code C) la manière dont les classes abstraites sont gérées par PHP.

Lancer tous les tests en ligne de commandes :
Sélectionnez
cd path/to/php
php run-tests.php

XI-D. Documentation

La documentation anglaise est la première ressource. Ce qui n'est pas encore documenté doit l'être d'abord en anglais, puis éventuellement traduit dans d'autres langues si des volontaires se proposent. Toutes les traductions obsolètes (non mises à jour) ont été retirées du site officiel ainsi que des miroirs, afin d'éviter d'orienter les lecteurs dans de mauvaises directions.

La documentation de PHP est écrite au format DocBookAbout the DocBook Standard, un schéma XML standard qui permet de générer la documentation finale dans le format voulu (gabarits) grâce à certaines transformations XSLT.

À l'heure de la rédaction de ce cours, un outil est en cours d'écriture et d'adoption par le PHP Group afin de faciliter les participations à la traduction de la documentation PHP : PHPDOC Online XML Editing Tool The PHPDOC Online XML Editing Tool (attention, ce lien peut changer à tout moment puisque l'outil est encore en bêta). Les sources de cet outil sont disponiles sur le CVS officiel.

La documentation finale est compilée à l'aide de PhDPhD -- Building the PHP manuals of the future.

XI-E. Éducation

Enseigner PHP est sans doute la manière la plus simple d'aider la communauté. C'est aussi très complexe, puisqu'il faut connaître tous les aspects du langage et en suivre les évolutions.

De très nombreuses communautés naissent, grandissent et disparaissent avec le temps. Autant la diversité a du bon, autant au jourd'hui il faut se faire une raison : créer une nouvelle communauté autour de PHP n'aide en rien la communauté au sens large. Il est nettement plus utile de rejoindre une communauté existante et d'y joindre vos efforts, que d'essayer d'en faire naître une nouvelle qui rentrera "en concurrence" avec les autres (au sens où elle partagera le temps des lecteurs entre les diverses communautés).

Outre la création d'une communauté, vous pouvez tout simplement rédiger des billets de blog, des tutoriels, des livres, etc. Toutes ces ressources, bien rédigées, organisées et référencées, sont extrêmement utiles aux développeurs de tous niveaux.


précédentsommairesuivant

Copyright © 2008 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.