Web, php, internet, le blog de François Lasselin - Génie Logiciel - CommentairesLe Blog de François Lasselin2024-03-17T21:19:10+01:00François Lasselinurn:md5:e0972c13e2874e6ea2b3d8eb7465a242DotclearArchitecture : Le Design Pattern MVC en PHP - Outrageurn:md5:c161e01211cd16d92e4bb076310b6f1f2015-01-02T17:03:00+01:002015-01-02T09:03:00+01:00Outrage<p>WHAT IS THAT???<br />
.<br />
.<br />
$kind = $kind === 'assoc' ? $kind : 'row';<br />
eval('while(@$r = mysql_fetch_'.$kind.'($query)) array_push($result, $r);');<br />
.<br />
.<br />
Un ternaire et un eval() ???<br />
.<br />
.<br />
if($kind === 'assoc')<br />
{<br />
____while($r = mysql_fetch_assoc($query))<br />
________array_push($result, $r);<br />
}<br />
else<br />
{<br />
____while($r = mysql_fetch_row($query))<br />
________array_push($result, $r);<br />
}</p>Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP - François Lasselinurn:md5:2161b20aae09440e6f691d7cce41afe82013-08-20T21:13:23+02:002013-08-20T20:13:33+02:00François Lasselin<p>Bonjour Nancy,</p>
<p>En faisant une test suite ? (dans selenium ide, et en ajoutant tout tes tests dans le test suite)</p>
<p>Cordialement,</p>Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP - Nancy Alexurn:md5:f9314c8e522829fa4195990b129983d92013-08-19T20:35:26+02:002013-08-20T10:46:38+02:00Nancy Alex<p>Coucou,</p>
<p>comment pourrait on rejouer tous les tests enregistrés en une seule fois. Car je rejoue les tests que j'ai fait et je les rejoue un par un, je voudrais rejouer TOUS les tests UNE SEULE fois.<br />
Merci</p>Intégration continue en PHP : Hudson/Jenkins Ant ou Phing, ... - Guillaumeurn:md5:3801334676445384464ede13e34511292013-01-04T15:33:33+01:002013-01-04T16:58:56+01:00Guillaume<p>Finalement je me tourne vers phpUnderControl qui me semble plus adapté à des projets PHP que Jenkins.</p>Les tests : la pratique pour le Web et le PHP - Guillaumeurn:md5:f5e56ba84d32a11d14a3a20ba1e4b4472013-01-03T10:04:13+01:002013-01-03T11:02:42+01:00Guillaume<p>Attention pour les utilisateurs de Selenium IDE, comme expliqué ici : <a href="http://stackoverflow.com/questions/7556480/selenium-export-test-cases-as-php-phpunit-is-missing-in-my-selenium-ide-1-2-0," title="http://stackoverflow.com/questions/7556480/selenium-export-test-cases-as-php-phpunit-is-missing-in-my-selenium-ide-1-2-0," rel="nofollow">http://stackoverflow.com/questions/...</a> l'export vers PHPUnit n'est plus supporté depuis quelques temps par manque d'utilisation de la part de la communauté. Heureusement, un indépendant à développé un add-on qui réimplémente l'option, ici :</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-php-formatters/" title="https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-php-formatters/" rel="nofollow">https://addons.mozilla.org/en-US/fi...</a></p>Intégration continue en PHP : Hudson/Jenkins Ant ou Phing, ... - François Lasselinurn:md5:d90be157a32952633363e933714ec66c2012-12-28T21:18:40+01:002012-12-28T21:19:04+01:00François Lasselin<p>Bonjour Guillaume,</p>
<p>Oui, c'est possible. Il y a même plusieurs façon de faire. Tu peux passer par phpunit pour executer du selenium (voir http://blog.nalis.fr/index.php?post/2010/01/14/Les-tests-%3A-la-pratique-pour-le-Web-et-le-PHP ) ou interagir directement avec un serveur selenium et utiliser les plug-in selenium de Jenkins/Hudson.</p>
<p>Cordialement,</p>Intégration continue en PHP : Hudson/Jenkins Ant ou Phing, ... - Guillaumeurn:md5:49e416cb63e35f8b2bfc5f13e0f78db92012-12-28T14:06:47+01:002012-12-28T21:14:35+01:00Guillaume<p>Bonjour,</p>
<p>Je suis actuellement en train de déployer un tel outil. Serait-il possible d'y inclure Selenium afin de réaliser des tests complémentaires ?</p>
<p>Si oui auriez-vous un conseil à donner ?</p>[Test] : Cacique + Selenium IDE + Selenium-Grid : pour des tests automatisés et industrialisés - François Lasselinurn:md5:4a1c17eceeb2a66a6a3986fee6022e312012-12-08T03:23:10+01:002012-12-17T11:54:24+01:00François Lasselin<p>Bonjour Nicolas,</p>
<p>> Peut-on utiliser Cacique dans un projet de TNR automatisé sur un projet de grande taille ?</p>
<p>Cacique n'est jamais qu'une couche au dessus Selenium et Selenium est déjà présent sur des projets Web chez plusieurs grands comptes français. </p>
<p>Perso, j'ai mis en oeuvre du Cacique pour un grand compte français. Les faiblesses de l'outil sont présentées dans le billet mais cela n’empêche pas Cacique d'être très stable.</p>
<p>De mon point de vue, le principal problème pour les tests automatisés n'est pas tant cacique que la méthodologie et l'organisation humaine à mettre en place pour les tests automatisés. L'essentiel du travail est en amont.</p>
<p>En effet, sans stratégie de test, sans spécification, plan de validation et cahier de tests, ... difficile d'automatiser.</p>
<p>Cordialement,</p>[Test] : Cacique + Selenium IDE + Selenium-Grid : pour des tests automatisés et industrialisés - nicolasurn:md5:1c17c9e936795d1334e6d41f8086a56a2012-11-27T10:20:57+01:002012-12-08T03:11:13+01:00nicolas<p>J'ai passé un moment pour rechercher "THE" outil open source pour concurrencer QC et QTP et j'ai donc eu à tester CACIQUE. Pense tu honnêtement qu'il peut être utiliser dans un projet de TNR automatisé sur un projet de grande taille ?</p>Les tests : la pratique pour le Web et le PHP - Younesurn:md5:59b7a648633ba2eee08eee6180ca297c2012-09-27T18:35:12+02:002012-09-28T09:57:54+02:00Younes<p>Merci pour cet article, c'était très riche d'informations.</p>Atelier de Génie logiciel (AGL) Web PHP et open-source - Hagron Julienurn:md5:d29ac14305535559aeceeaed475e709a2012-07-30T06:31:17+02:002012-07-30T10:02:06+02:00Hagron Julien<p>Merci pour ... à peu prêt tout le site. Je ne vais pas mettre des commentaires partout mais globalement votre blog est très intéressant.</p>Atelier de Génie logiciel (AGL) Web PHP et open-source - Hagron Julienurn:md5:e708e67efdb2bdaaae35c096f39c7daa2012-07-30T06:31:17+02:002012-07-29T22:31:17+02:00Hagron Julien<p>Merci pour ... à peu prêt tout le site. Je ne vais pas mettre des commentaires partout mais globalement votre blog est très intéressant.</p>[Test] : Cacique + Selenium IDE + Selenium-Grid : pour des tests automatisés et industrialisés - Tobiasurn:md5:5ad9bad333f996febf3f049e5ab85c432012-05-15T14:46:21+02:002012-05-15T20:40:58+02:00Tobias<p>Pas mal !</p>Intégration continue en PHP : Hudson/Jenkins Ant ou Phing, ... - rebolonurn:md5:e72237dbd390cee7b566d09692fafd642012-05-11T09:00:21+02:002012-05-15T20:39:56+02:00rebolon<p>Pour les pakages pear, il y a plus court ici :<br />
<a href="http://jenkins-php.org/" title="http://jenkins-php.org/" rel="nofollow">http://jenkins-php.org/</a></p>
<p>et qui fait notamment :<br />
pear config-set auto_discover 1<br />
pear install pear.phpqatools.org/phpqatools pear.netpirates.net/phpDox</p>Intégration continue en PHP : Hudson/Jenkins Ant ou Phing, ... - François Lasselinurn:md5:e3e33c47d60ffe5bac42eb8744b32fa62012-04-12T14:44:42+02:002012-04-12T13:44:59+02:00François Lasselin<p>Bonjour Moosh,</p>
<p>1/ Oui, c'est obligatoire. L'un ou l'autre. </p>
<p>Dans ton exemple, le problème vient de $WORKSPACE qui devrait être interpréter par phing ou ant et que le shell essaye de traiter.</p>
<p>pour lancer un script phing:</p>
<p>$ phing target -Dparametre1=value1</p>
<p>2/ En effet, il n'y a pas de target dist ... bien vu.</p>
<p>Merci pour ta vigilance.</p>
<p>Tu n'hésites pas à me contacter en direct (formulaire de contact) si besoin.</p>
<p>Bonne continuation. </p>Intégration continue en PHP : Hudson/Jenkins Ant ou Phing, ... - mooshurn:md5:0db47b15b9d833ec79a0e585b01618462012-04-09T23:35:11+02:002012-04-10T22:09:19+02:00moosh<p>J'essaye de m'y mettre mais c''est pas au point (bcp de nouveautés en même temps)</p>
<p>1° phing (ou ant) c'est conseillé ou obligatoire ?<br />
j'avais essayé de mettre ceci moi.</p>
<p>/usr/bin/phpcs -pv --report-checkstyle=$WORKSPACE/checkstyle-result.xml --standard=Zend $WORKSPACE</p>
<p>mais ca me donne</p>
<p>20:17:59 Build step 'Exécuter un script shell' marked build as failure<br />
20:17:59 [CHECKSTYLE] Skipping publisher since build result is FAILURE</p>
<p>(alors que le fichier checkstyle-result.xml a bien été créé )</p>
<p>2° dans l'exemple de phing ci-dessus</p>
<p>project basedir=".." name="nalis" default="dist"</p>
<p>mais il n'y a aucun target dist...</p>
<p>ai-je loupé quelque chose ?</p>Architecture : Le Design Pattern MVC en PHP - jpegfrurn:md5:1301118e53d72f5ca2e37b9e6e2b43032012-02-25T00:31:28+01:002012-02-25T12:56:20+01:00jpegfr<p>Bonjour,<br />
Surement une question de sémantique, mais pour moi la DAL est la couche d'accès aux données. C'est un terme architectural, alors que DAO est un patron de conception.<br />
In extenso, cela signifie que les DAO sont inclus dans la DAL.</p>
<p>La conf. de l'accès à la couche de persistance étant quant à elle implémenté dans les fabriques abstraites qui créent les fameux DAO.<br />
JP</p>Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP - Packo88urn:md5:5c626bc2760e55e17856fd19708b83772012-02-24T15:19:36+01:002012-02-25T12:57:06+01:00Packo88<p>Ou même de désactiver les exceptions...</p>Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP - Packo88urn:md5:96dde22b7a8ebd31e711d94f8e9f2a552012-02-24T15:13:57+01:002012-02-25T12:56:54+01:00Packo88<p>Bonjour,</p>
<p>J'aimerai juste avoir plus d'infos sur la solution d'encadrement du scénario afin que PHPUnit ne s'arrête à la première erreur.<br />
J'ai ma fonction TestAllApp() dans ma classe mère, et je n'arrive pas à continuer le script jusqu'à la fin... Il s’arrête dès que j'au une erreur, pour mon try catch est de cette façon:<br />
TestAllApp(){<br />
try {<br />
mes testes avec différents click(), type() etc...<br />
} catch (PHPUnit_Framework_AssertionFailedError $e) {<br />
array_push($this->verificationErrors, $e->toString());<br />
}<br />
}</p>
<p>Si une personne pourrai m'aider ça serai très sympas =).</p>Architecture : Le Design Pattern MVC en PHP - François Lasselinurn:md5:d9cbceef996b622d76efde9cc398c3e92012-01-23T14:00:43+01:002012-01-23T14:00:58+01:00François Lasselin<p>Bonjour Lolo,</p>
<p>>pour un site web c'est lourdingue, ce qui est important c’est de
séparer au maximum les traitements des données de l’affichage de façon à
ce que </p>
<p>>comme dans le modèle MVC, la modification du traitement n’influe
pas sur la vue, et qu’il n’y ai qu’un seul point d’entrée.</p>
<p>D'abord, c'est une démarche saine de commencer par s'interroger sur ce qui est nécessaire ou pas et tu as raison : "ne pas s’accrocher à une
application stricte contre productive." on ne fait pas un MVC pour un script de 200 lignes. J'aurai tendance à prescrire le MVC pour des applications web (en opposition avec un site web mais la frontière est maigre). Mais il faut adapter ces outils à l'ouvrage à réaliser.</p>
<p>Sinon, séparer les traitement + point d'entrée unique > l'implémentation proposée dans ce billet ne propose rien de plus (avec une mise en œuvre objet sommaire...)</p>
<p><br />
> De plus avec l’intégration en plus des requêtes ajax, la séparation
strict devient à mon avis une source de complexité, voir pose des
problèmes </p>
<p>> insurmontables puisque parfois le contrôleur est de fait écrit
en javascript est donc intégré de fait à la vue. Fort de ce constat, il
faut garder les </p>
<p>>principes de base, et ne pas s’accrocher à une
application stricte contre productive.</p>
<p>Heu ... constat erroné: Aucun problème avec l'ajax, implémenté avec succès dans plusieurs projets basés sur l'implémentation décrite ici.</p>
<p>Après il y a différentes religions : ceux qui pense que le code xml fait partie de la vue et ceux qui pense que çe fait partie du modèle.</p>
<p>>le contrôleur est de fait écrit
en javascript est donc intégré de fait à la vue</p>
<p>Ici, on présente un pattern MVC poru le PHP. pas pour le javascript. </p>
<p>Cordialement,</p>
<p>François</p>