PHPPRO

PHP Professionnel pour les entreprises

Incompatibilité Phing 2.3.3 et PHPUnit 3.4.x+

Phing, le port de Ant (java) en PHP, propose des tasks (balises xml) permettant d'exécuter des classes PHPUnit (tests unitaires en PHP). La version stable de Phing n'est maintenant plus compatible avec la dernière version stable de PHPUnit (3.4.3 actuellement) voir avec la branche 3.4.x, et on obtient l'erreur :

[PHP Error] require_once(PHPUnit/Util/Log/XML.php): failed to open stream: No such file or directory [line 22 of C:\Program Files\PHP\PEAR\phing\tasks\ext\phpunit\phpunit3\XMLPHPUnit3ResultFormatter.php]

Voici une piste pour y remédier :

Lire la suite »

Session "Oui ! PHP est industriel !" au forum PHP 2009 @Paris

Le forum PHP 2009 de Paris s'est déroulé la semaine dernière, je vous livre le support de session que nous avons utilisé avec Damien Seguy à l'occasion de la présentation de notre session sur l'industrialisation en PHP.

Lire la suite »

Forum PHP AFUP : 12 et 13 novembre 2009, Paris : mon planning

De retour de congé aux pays des requins, je vous livre mon planning prévisionnel pour le prochain évènement PHP parisien de cette semaine, si certains veulent venir discuter PHP / Agilité, ca peut aider !

Lire la suite »

Analyse de dépendances classes/fichiers

Dans mon précédent post sur "Zend Framework 1.8.3 demystified, Act I", je vous avais livré un schéma de dépendances entre packages générés grâce à un de mes outils... Je vous livre maintenant l'outils.

Lire la suite »

Zend Framework demystified, act I...

Voici une vue des dépendances entre package dans Zend Framework 1.8.3 réalisé avec un de mes outils d'analyse de code.

Lire la suite »

PHP : Une plateforme industrialisable au service de l'Agilité

Je publie sur slideshare une version refactorée d'une présentation draft que j'avais réalisé il y a quelques mois pour l'Université du S.I avant de préférer avec Damien Seguy une version plus light... Au programme, PHP et Agilité, encore et toujours ;)

Lire la suite »

Test unitaire: comment bouchonner ?

L'exécution d'un test unitaire nécessite en règle générale la mise en place de bouchon (mock en anglais) qui permettent de simuler les appels systèmes ou d'api sous jacent.
En effet, il peut être difficile de tester une partie de votre code qui a des impacts sur le système externe (enregistrement sur disque, appels réseaux / webservices, stockage mémoire vive, appels base de données...), le principe du bouchon est alors bien pratique pour tester la logique sans déclencher toutes les opérations.

Lire la suite »

Agilité, Tests et Industrialisation en PHP

Je publie sur slideshare la présentation faite ce jour. Je parle de méthodologie agile au travers de l'histoire d'une équipe, et d'industrialisation des développements PHP (Intégration Continue, Tests, ...)

Lire la suite »

PS : c'est vraiment pas mal : [...], me suis bien éclaté aujourd'hui ;-)

Retours sur la satisfaction d'un développeur.

Lire la suite »

La loi de Demeter où le principe de la connaissance minimale

Vous avez certainement déjà fait : $this->getFirstObject()->getSecondObject()->doSomething() ? Vous avez déjà certainement eu des soucis a repasser à différents endroits de votre code quand l'interface du "SecondObject" change, voici un principe de développement logiciel qui alors nous être utile...

Lire la suite »

Faire le ménage dans le code : mettre le code mort à la poubelle ou le garder au cas où ?

Une question d'un développeur:
La prochaine itération va comporter un bon nombre de tâches techniques et nous avons pensé « faire le ménage » dans notre code, mais que faire du code mort ? Faut-il supprimer les sections inutilisées ... en partant du principe qu’elles polluent les classes ... ou bien les conserver si un jour elles venaient à resservir ?" Ma réponse...

Lire la suite »

Service/Adapter : mes adapters sont trop gros mon capitaine !

Si vous implémentez le pattern Adapter, ou bien si vous suivez mes posts, vous avez entendu parler de la notion d'Adapter. Mon point de vue sur la question est qu'ils doivent être minimals (1 à 2 lignes par méthodes, aucune logique autre que l'appel à une méthode native php / extension). On arrive alors de temps en temps à une problématique : les adapters ont tendance à vouloir "grossir", quand on veux "généraliser" la logique dans le service (et qu'on relègue l'implémentation dans l'adapter). La contrainte des 1 à 2 lignes est alors difficile à respecter... ou presque !

Lire la suite »

Tests d'intégration, quézako ?

Les tests unitaires c'est bien, mais ce n'est pas suffisant, surtout quand on a besoin de tester que notre application s'intègre effectivement bien avec un webservice d'un de nos fournisseurs... Parlons de tests d'intégration, donc.

Lire la suite »

Tests Unitaires : ma philosophie via un exemple

Je vois souvent des tests dit unitaires chez mes clients, mais qui se connectent à la base de données, font des requêtes réseaux...
Voici une petite présentation de ce que personnellement j'appelle tests unitaires, par l'exemple.

Lire la suite »

subversion + fichier .ini + include_path = gestion dynamiques des dépendances (librairies,...)

Votre application utilise certainement le tout dernier framework dernier cri, ou encore LA librairie ultime pour faire du PDF ou de l'ODT en PHP.. Ou encore, votre application dépend d'une autre application que vous avez réalisé ou interne à votre entreprise, elle a besoin de certaines classes par exemple.

Voici une méthode (il en existe certainement plein d'autres !) vous permettant de gérer vos dépendances pour être sûr de travailler toujours sur la bonne version d'une librairie, et pas sur une version modifiée en local sur votre poste et qui serait différente de celle sur votre serveur de production !

Lire la suite »

Les fichiers de contextes : où comment utiliser la même appli sur le web, les tests unitaires, fonctionnels, la ligne de commande, ...

Votre application peut être exécutée via :

* un navigateur (web)
* une ligne de commande (batch)
* PHPUnit (tests unitaires ou tests d'intégration)
* GreenPepper / Fitnesse (tests fonctionnels)
* ...

Lire la suite »

include_path + conventions + autoload = chargement automatique des classes PHP

Vous avez des dizaines de require/include en début de chacun de vos script ?
Pire dans vos scripts PHP, un peu partout ?
Et si l'autoload vous changeait la vie !

Lire la suite »

DNS + Proxy + Header, où comment gérer le déplacement d'un site internet en douceur

Cela vous est probablement déjà arrivé de devoir déplacement un site internet sur un autre serveur. L'adresse IP du serveur n'étant plus la même, il faut alors modifier l'entrée DNS (souvent A, mais peut être CNAME) pour que le nom de domaine pointe maintenant sur l'adresse IP du nouveau serveur. Mais cela peut prendre du temps pour se propager...

Lire la suite »

10 conseils pour réussir son projet de développement en équipe

Voici 10 conseils pragmatiques que j'utilise au quotidien chez mes clients...

Lire la suite »

AgileTour 2009 @ Bordeaux : 3 sessions proposées

Cette année l'AgileTour passe à Bordeaux le 29 Octobre, l'occasion pour moi de proposer quelques sujets de sessions...

Lire la suite »

- page 1 de 4

Thème original par N.Design Studio - Adapté par Pixials - Propulsé par Dotclear
Fil des billets Administration