SlideShare une entreprise Scribd logo
TUTO
NetBeans
Environnement de développement et de test
 Configuration de NetBeans pour PHP Nicolas Defaÿ
N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 1 sur 7
Ce tutoriel vous indique comment configurer NetBeans pour PHP sous Windows avec :
- L’extension Xdebug
- Le framework de tests unitaires PHPUnit 4.8
NetBeans est un EDI (Environnement de Développement Intégré ou IDE en anglais pour Integrated
Development Environment) open source développé à l'origine par Sun Microsystems mais repris
depuis 2010 par Oracle Corporation.
Ce type d'environnement regroupe un ensemble d'outils dédiés au développement de logiciels.
NetBeans supporte les langages Java, PHP, C/C++, Fortran, JavaScript, Python, Ruby…
Site officiel : https://netbeans.org/
1. L’extension Xdebug
1.1 Présentation
Xdebug est une extension pour PHP qui permet le débogage et le profilage de code par une
exécution pas à pas des instructions.
Exemple d'exécution d'un script sans et avec Xdebug activé :
Script : test_xdebug.php
<?php
for ($x = 1; $x < 3 ; $x++) {
// Pour l'exécution pas à pas ;)
}
echo $x;
echo $y;
?>
Sans Xdebug Avec Xdebug
Ces installations concernent la version 8.0 de NetBeans. Elles ont été réalisées sous
Windows 7 Professionnel 64 bits avec WAMP Server 2.5 64 bits (Apache 2.4.9 et PHP
5.5.12). Aucun gestionnaire de paquets (type Composer) n’est requis dans ce tutoriel.
La connaissance de ces environnements est nécessaire pour suivre ce tutoriel (création et
paramétrage d’un projet sous NetBeans, ligne de commande sous Windows, modification
des fichiers de configuration de WAMPServer, notions de tests unitaires).
TUTO
NetBeans
Environnement de développement et de test
 Configuration de NetBeans pour PHP Nicolas Defaÿ
N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 2 sur 7
1.2 Configuration
Xdebug est déjà préconfiguré avec cette version de WampServer. Il suffit donc de « l’activer » en
modifiant son paramétrage.
Site officiel : http://xdebug.org/
1.2.1 Activation
 Vérifier que vous ayez bien le fichier php_xdebug-2.2.5-5.5-vc11-x86_64.dll dans le dossier
C:wampbinphpphp5.5.12zend_ext
 Ouvrir le fichier php.ini depuis l'application WampServer et ajouter (ou modifier) la ligne qui
apparait ci-dessous en vert à la fin du fichier :
; XDEBUG Extension
zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-
x86_64.dll"
[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars = on
 Sauvegarder et fermer le fichier php.ini puis redémarrer le service Apache pour une prise en
compte des nouveaux paramètres.
 Vérifier, en actualisant la page test_xdebug.php, que vous obtenez bien le résultat attendu
dans le paragraphe 1.1.
1.2.2 Intégration à NetBeans
 Modifier et ajouter les lignes qui apparaissent en vert dans la section Xdebug du fichier php.ini :
; XDEBUG Extension
zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-
x86_64.dll"
[xdebug]
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars = on
 Sauvegarder et fermer le fichier php.ini puis redémarrer le service Apache pour une prise en
compte des nouveaux paramètres.
TUTO
NetBeans
Environnement de développement et de test
 Configuration de NetBeans pour PHP Nicolas Defaÿ
N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 3 sur 7
1.3 Mise en œuvre
 Ouvrir NetBeans et lancer l'exécution du script (cf. §1.1) en mode débogage : (ou <Ctrl> +
<> + F5). Cette option est également disponible à partir d'un clic droit sur le script à tester.
 La barre des outils dédiée au débogage est activée :
 Après deux clics sur l'icône on obtient la trace suivante :
2. Le framework PHPUnit
2.1 Présentation
PHPUnit est un framework de tests unitaires développé pour le langage PHP. Il est basé sur JUnit,
une référence en termes de tests unitaires pour Java. Il propose également un générateur de
squelettes de classes destinées aux tests (Skeleton generator).
Site officiel : http://phpunit.de/
Notes :
À ce jour la dernière version de PHPUnit est la 5.6. Nous utiliserons ici l’avant dernière
version stable : la version 4.8.27 de PHPUnit. Cette version est compatible jusqu’à PHP 5.6.
2.2 Installation
 Depuis https://phar.phpunit.de/ télécharger le fichier phpunit-4.8.27.phar dans
C:wampbinphpphp5.5.12
 Dans C:wampbinphpphp5.5.12 créer un fichier phpunit.bat au contenu suivant :
@php "%~dp0phpunit-4.8.27.phar" %*
 Dans C:wampbinphpphp5.5.12 créer un fichier phpunit_netbeans.bat au contenu
suivant (gestion du bug d’incompatibilité entre les versions utilisées de NetBeans et PHPUnit) :
phpunit %1 %2 %3 %4 "--" %5=%6
 Depuis https://phar.phpunit.de/ télécharger le fichier phpunit-skelgen-2.0.1.phar dans
C:wampbinphpphp5.5.12
 Dans C:wampbinphpphp5.5.12 créer le fichier phpunit-skelgen.bat suivant :
@php "%~dp0phpunit-skelgen-2.0.1.phar" generate-test %3 %4 %5 %6
TUTO
NetBeans
Environnement de développement et de test
 Configuration de NetBeans pour PHP Nicolas Defaÿ
N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 4 sur 7
 Configurer l’EDI (Menu1
: Outils/Options/PHP/ Onglet « Frameworks & Tools)
 Si ce n'est pas déjà fait, ajouter le chemin de l'exécutable PHP dans le Path du système2
puis
redémarrer NetBeans.
2.3 Mise en œuvre
Nous partirons d’un exemple des plus simples :
<?php
class Note {
private $maNote;
public function __construct($uneNote) {
$this->maNote = $uneNote;
}
public function noteValide() {
return $this->maNote >= 0 && $this->maNote <= 20;
}
}
Fichier note.class.php enregistré dans C:wampwwwtutos
 Créer un nouveau projet à partir du dossier C:wampwwwtutos
1
Tools/Options/PHP/Onglet « Frameworks & Tools »
2
Pour modifier le Path : Démarrer/Ordinateur <clic droit>/Propriétés/Paramètres système avancés/Variables
d'environnement... : Choisir la variable système "Path" puis modifier et ajouter le chemin à la chaîne.
Bien vérifier la
présence du .bat
en fin de fichier !
TUTO
NetBeans
Environnement de développement et de test
 Configuration de NetBeans pour PHP Nicolas Defaÿ
N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 5 sur 7
 Ajouter un dossier « TESTS » dans lequel les squelettes de classe seront générés :
 Dans l'explorateur de projet, faire un clic droit sur le script à tester (note.class.php) et choisir la
fonctionnalité de génération de gabarit de test :
Sélectionner le dossier précédemment créé :
 Choisir l'utilitaire de tests PHPUnit dans la fenêtre qui suit :
Remarque :
Un dossier nommé a
été rajouté au projet.
C’est un alias du dossier « TESTS »
précédemment créé.
La création des tests a pour effet de générer la classe NoteTest.php suivante :
TUTO
NetBeans
Environnement de développement et de test
 Configuration de NetBeans pour PHP Nicolas Defaÿ
N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 6 sur 7
 Ajouter un « require » vers la classe Note :
 Lancer l’exécution des tests :
L’erreur est normale car, dans la fixture, aucun
paramètre n’est renseigné lors de l’appel au
constructeur de Note.
 Dans cet exemple nous n’utiliseront pas de fixture3
.
 Supprimer l’instruction présente dans la méthode setUp(), compléter la méthode
testNoteValide() et relancer les tests :
3
Une fixture est un morceau de code qui permet de fixer un environnement logiciel pour exécuter des tests
logiciels. Cet environnement constant est toujours le même à chaque exécution des tests (Source : Wikipédia).
TUTO
NetBeans
Environnement de développement et de test
 Configuration de NetBeans pour PHP Nicolas Defaÿ
N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 7 sur 7
 Modifier la deuxième assertion et constater l’échec des tests :

Contenu connexe

Tendances

Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
ENSET, Université Hassan II Casablanca
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
Antoine Rey
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
Ippon
 
Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2teejug
 
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 SpringSpring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
ENSET, Université Hassan II Casablanca
 
Graphing Nagios services with pnp4nagios
Graphing Nagios services with pnp4nagiosGraphing Nagios services with pnp4nagios
Graphing Nagios services with pnp4nagios
jasonholtzapple
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey
 
cours java complet-2.pdf
cours java complet-2.pdfcours java complet-2.pdf
cours java complet-2.pdf
Jaouad Assabbour
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
Syrine Ben aziza
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
Ippon
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
ENSET, Université Hassan II Casablanca
 
Cours php
Cours php Cours php
Cours php
Yassine Badri
 
Apache Maven 3
Apache Maven 3Apache Maven 3
Apache Maven 3
Maxime Gréau
 
cours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdfcours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdf
lhoussainebouganfou
 

Tendances (20)

Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2
 
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 SpringSpring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
 
Graphing Nagios services with pnp4nagios
Graphing Nagios services with pnp4nagiosGraphing Nagios services with pnp4nagios
Graphing Nagios services with pnp4nagios
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
cours java complet-2.pdf
cours java complet-2.pdfcours java complet-2.pdf
cours java complet-2.pdf
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
Cours php
Cours php Cours php
Cours php
 
Apache Maven 3
Apache Maven 3Apache Maven 3
Apache Maven 3
 
cours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdfcours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdf
 

En vedette

PHP_Attestattion_Nshimiyimana_Issa
PHP_Attestattion_Nshimiyimana_IssaPHP_Attestattion_Nshimiyimana_Issa
PHP_Attestattion_Nshimiyimana_IssaIssa Nshimiyimana
 
Tests logiciels en PHP sous NetBeans (vulgarisation)
Tests logiciels en PHP sous NetBeans (vulgarisation)Tests logiciels en PHP sous NetBeans (vulgarisation)
Tests logiciels en PHP sous NetBeans (vulgarisation)
Nicolas Defay
 
20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm
Kenan Sevindik
 
The European Talent Landscape
The European Talent Landscape The European Talent Landscape
The European Talent Landscape
Balderton Capital
 
CARA Coding Dojo - SOLID
CARA Coding Dojo - SOLIDCARA Coding Dojo - SOLID
CARA Coding Dojo - SOLID
florentpellet
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
Aymeric Bouillat
 
Retour sur la certification "Zend Php 5.3"
Retour sur la certification "Zend Php 5.3"Retour sur la certification "Zend Php 5.3"
Retour sur la certification "Zend Php 5.3"
François Crevola
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
SlideShare
 

En vedette (9)

PHP_Attestattion_Nshimiyimana_Issa
PHP_Attestattion_Nshimiyimana_IssaPHP_Attestattion_Nshimiyimana_Issa
PHP_Attestattion_Nshimiyimana_Issa
 
Tests logiciels en PHP sous NetBeans (vulgarisation)
Tests logiciels en PHP sous NetBeans (vulgarisation)Tests logiciels en PHP sous NetBeans (vulgarisation)
Tests logiciels en PHP sous NetBeans (vulgarisation)
 
20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm
 
The European Talent Landscape
The European Talent Landscape The European Talent Landscape
The European Talent Landscape
 
CARA Coding Dojo - SOLID
CARA Coding Dojo - SOLIDCARA Coding Dojo - SOLID
CARA Coding Dojo - SOLID
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Retour sur la certification "Zend Php 5.3"
Retour sur la certification "Zend Php 5.3"Retour sur la certification "Zend Php 5.3"
Retour sur la certification "Zend Php 5.3"
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similaire à Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)

Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
Christophe Villeneuve
 
Comment installer extension cryptographie libsodium php7.0.27
Comment installer extension cryptographie libsodium php7.0.27Comment installer extension cryptographie libsodium php7.0.27
Comment installer extension cryptographie libsodium php7.0.27
A.E
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
Zakariyaa AIT ELMOUDEN
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windows
Addi Ait-Mlouk
 
Installation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xpInstallation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xpsaidelfazni
 
Alphorm.com Formation Odoo Technique : Installer et Configurer
Alphorm.com Formation Odoo Technique : Installer et ConfigurerAlphorm.com Formation Odoo Technique : Installer et Configurer
Alphorm.com Formation Odoo Technique : Installer et Configurer
Alphorm
 
Installation magento 2 avec mamp
 Installation magento 2 avec mamp Installation magento 2 avec mamp
Installation magento 2 avec mamp
Blackbird
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
Amir Souissi
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
ENSET, Université Hassan II Casablanca
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
Vincent Composieux
 
Les tests en PHP
Les tests en PHPLes tests en PHP
Les tests en PHP
Jean-Philippe Chateau
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Jean-Marc Fontaine
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
Thomas Bodin
 
Introduction aspnet
Introduction aspnetIntroduction aspnet
Introduction aspnet
abdellatif edkhaili
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2Ahmed ABATAL
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
Thierry Gayet
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
Firas Kouẞàa
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
Mohamed Ben Bouzid
 

Similaire à Optimiser son environnement de développement PHP (Tuto NetBeans v4.4) (20)

Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Comment installer extension cryptographie libsodium php7.0.27
Comment installer extension cryptographie libsodium php7.0.27Comment installer extension cryptographie libsodium php7.0.27
Comment installer extension cryptographie libsodium php7.0.27
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windows
 
Installation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xpInstallation de mongo_db_sur_windows_xp
Installation de mongo_db_sur_windows_xp
 
Atelier 5
Atelier 5Atelier 5
Atelier 5
 
Alphorm.com Formation Odoo Technique : Installer et Configurer
Alphorm.com Formation Odoo Technique : Installer et ConfigurerAlphorm.com Formation Odoo Technique : Installer et Configurer
Alphorm.com Formation Odoo Technique : Installer et Configurer
 
Installation magento 2 avec mamp
 Installation magento 2 avec mamp Installation magento 2 avec mamp
Installation magento 2 avec mamp
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Les tests en PHP
Les tests en PHPLes tests en PHP
Les tests en PHP
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
 
Introduction aspnet
Introduction aspnetIntroduction aspnet
Introduction aspnet
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 

Plus de Nicolas Defay

Décorticage d’un cas réel de phishing
Décorticage d’un cas réel de phishing Décorticage d’un cas réel de phishing
Décorticage d’un cas réel de phishing
Nicolas Defay
 
Admission au CAFFA (diaporama pour l'entretien)
Admission au CAFFA (diaporama pour l'entretien) Admission au CAFFA (diaporama pour l'entretien)
Admission au CAFFA (diaporama pour l'entretien)
Nicolas Defay
 
Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...
Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...
Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...
Nicolas Defay
 
Moodle : L'activité test pour « experts » (évaluations formatives et multites...
Moodle : L'activité test pour « experts » (évaluations formatives et multites...Moodle : L'activité test pour « experts » (évaluations formatives et multites...
Moodle : L'activité test pour « experts » (évaluations formatives et multites...
Nicolas Defay
 
Admissibilité au CAFFA (diaporama pour l'entretien)
Admissibilité au CAFFA (diaporama pour l'entretien) Admissibilité au CAFFA (diaporama pour l'entretien)
Admissibilité au CAFFA (diaporama pour l'entretien)
Nicolas Defay
 
Écosystème numérique et usages pédagogiques
Écosystème numérique et usages pédagogiquesÉcosystème numérique et usages pédagogiques
Écosystème numérique et usages pédagogiques
Nicolas Defay
 
Indicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLEIndicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLE
Nicolas Defay
 
Indicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLEIndicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLE
Nicolas Defay
 
Projet « Numérique et évaluation » en économie-gestion
Projet « Numérique et évaluation » en économie-gestionProjet « Numérique et évaluation » en économie-gestion
Projet « Numérique et évaluation » en économie-gestion
Nicolas Defay
 
La classe inversée
La classe inverséeLa classe inversée
La classe inversée
Nicolas Defay
 
Numérique et évaluation
Numérique et évaluationNumérique et évaluation
Numérique et évaluation
Nicolas Defay
 
Enseigner avec des capsules vidéo
Enseigner avec des capsules vidéoEnseigner avec des capsules vidéo
Enseigner avec des capsules vidéo
Nicolas Defay
 

Plus de Nicolas Defay (12)

Décorticage d’un cas réel de phishing
Décorticage d’un cas réel de phishing Décorticage d’un cas réel de phishing
Décorticage d’un cas réel de phishing
 
Admission au CAFFA (diaporama pour l'entretien)
Admission au CAFFA (diaporama pour l'entretien) Admission au CAFFA (diaporama pour l'entretien)
Admission au CAFFA (diaporama pour l'entretien)
 
Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...
Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...
Memoire professionnel de CAFFA (Certificat d'aptitude aux fonctions de format...
 
Moodle : L'activité test pour « experts » (évaluations formatives et multites...
Moodle : L'activité test pour « experts » (évaluations formatives et multites...Moodle : L'activité test pour « experts » (évaluations formatives et multites...
Moodle : L'activité test pour « experts » (évaluations formatives et multites...
 
Admissibilité au CAFFA (diaporama pour l'entretien)
Admissibilité au CAFFA (diaporama pour l'entretien) Admissibilité au CAFFA (diaporama pour l'entretien)
Admissibilité au CAFFA (diaporama pour l'entretien)
 
Écosystème numérique et usages pédagogiques
Écosystème numérique et usages pédagogiquesÉcosystème numérique et usages pédagogiques
Écosystème numérique et usages pédagogiques
 
Indicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLEIndicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLE
 
Indicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLEIndicateurs de pilotage du numérique en EPLE
Indicateurs de pilotage du numérique en EPLE
 
Projet « Numérique et évaluation » en économie-gestion
Projet « Numérique et évaluation » en économie-gestionProjet « Numérique et évaluation » en économie-gestion
Projet « Numérique et évaluation » en économie-gestion
 
La classe inversée
La classe inverséeLa classe inversée
La classe inversée
 
Numérique et évaluation
Numérique et évaluationNumérique et évaluation
Numérique et évaluation
 
Enseigner avec des capsules vidéo
Enseigner avec des capsules vidéoEnseigner avec des capsules vidéo
Enseigner avec des capsules vidéo
 

Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)

  • 1. TUTO NetBeans Environnement de développement et de test  Configuration de NetBeans pour PHP Nicolas Defaÿ N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 1 sur 7 Ce tutoriel vous indique comment configurer NetBeans pour PHP sous Windows avec : - L’extension Xdebug - Le framework de tests unitaires PHPUnit 4.8 NetBeans est un EDI (Environnement de Développement Intégré ou IDE en anglais pour Integrated Development Environment) open source développé à l'origine par Sun Microsystems mais repris depuis 2010 par Oracle Corporation. Ce type d'environnement regroupe un ensemble d'outils dédiés au développement de logiciels. NetBeans supporte les langages Java, PHP, C/C++, Fortran, JavaScript, Python, Ruby… Site officiel : https://netbeans.org/ 1. L’extension Xdebug 1.1 Présentation Xdebug est une extension pour PHP qui permet le débogage et le profilage de code par une exécution pas à pas des instructions. Exemple d'exécution d'un script sans et avec Xdebug activé : Script : test_xdebug.php <?php for ($x = 1; $x < 3 ; $x++) { // Pour l'exécution pas à pas ;) } echo $x; echo $y; ?> Sans Xdebug Avec Xdebug Ces installations concernent la version 8.0 de NetBeans. Elles ont été réalisées sous Windows 7 Professionnel 64 bits avec WAMP Server 2.5 64 bits (Apache 2.4.9 et PHP 5.5.12). Aucun gestionnaire de paquets (type Composer) n’est requis dans ce tutoriel. La connaissance de ces environnements est nécessaire pour suivre ce tutoriel (création et paramétrage d’un projet sous NetBeans, ligne de commande sous Windows, modification des fichiers de configuration de WAMPServer, notions de tests unitaires).
  • 2. TUTO NetBeans Environnement de développement et de test  Configuration de NetBeans pour PHP Nicolas Defaÿ N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 2 sur 7 1.2 Configuration Xdebug est déjà préconfiguré avec cette version de WampServer. Il suffit donc de « l’activer » en modifiant son paramétrage. Site officiel : http://xdebug.org/ 1.2.1 Activation  Vérifier que vous ayez bien le fichier php_xdebug-2.2.5-5.5-vc11-x86_64.dll dans le dossier C:wampbinphpphp5.5.12zend_ext  Ouvrir le fichier php.ini depuis l'application WampServer et ajouter (ou modifier) la ligne qui apparait ci-dessous en vert à la fin du fichier : ; XDEBUG Extension zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11- x86_64.dll" [xdebug] xdebug.remote_enable = off xdebug.profiler_enable = off xdebug.profiler_enable_trigger = off xdebug.profiler_output_name = cachegrind.out.%t.%p xdebug.profiler_output_dir = "c:/wamp/tmp" xdebug.show_local_vars = on  Sauvegarder et fermer le fichier php.ini puis redémarrer le service Apache pour une prise en compte des nouveaux paramètres.  Vérifier, en actualisant la page test_xdebug.php, que vous obtenez bien le résultat attendu dans le paragraphe 1.1. 1.2.2 Intégration à NetBeans  Modifier et ajouter les lignes qui apparaissent en vert dans la section Xdebug du fichier php.ini : ; XDEBUG Extension zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11- x86_64.dll" [xdebug] xdebug.remote_enable = on xdebug.remote_handler = dbgp xdebug.remote_host = localhost xdebug.remote_port = 9000 xdebug.profiler_enable = off xdebug.profiler_enable_trigger = off xdebug.profiler_output_name = cachegrind.out.%t.%p xdebug.profiler_output_dir = "c:/wamp/tmp" xdebug.show_local_vars = on  Sauvegarder et fermer le fichier php.ini puis redémarrer le service Apache pour une prise en compte des nouveaux paramètres.
  • 3. TUTO NetBeans Environnement de développement et de test  Configuration de NetBeans pour PHP Nicolas Defaÿ N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 3 sur 7 1.3 Mise en œuvre  Ouvrir NetBeans et lancer l'exécution du script (cf. §1.1) en mode débogage : (ou <Ctrl> + <> + F5). Cette option est également disponible à partir d'un clic droit sur le script à tester.  La barre des outils dédiée au débogage est activée :  Après deux clics sur l'icône on obtient la trace suivante : 2. Le framework PHPUnit 2.1 Présentation PHPUnit est un framework de tests unitaires développé pour le langage PHP. Il est basé sur JUnit, une référence en termes de tests unitaires pour Java. Il propose également un générateur de squelettes de classes destinées aux tests (Skeleton generator). Site officiel : http://phpunit.de/ Notes : À ce jour la dernière version de PHPUnit est la 5.6. Nous utiliserons ici l’avant dernière version stable : la version 4.8.27 de PHPUnit. Cette version est compatible jusqu’à PHP 5.6. 2.2 Installation  Depuis https://phar.phpunit.de/ télécharger le fichier phpunit-4.8.27.phar dans C:wampbinphpphp5.5.12  Dans C:wampbinphpphp5.5.12 créer un fichier phpunit.bat au contenu suivant : @php "%~dp0phpunit-4.8.27.phar" %*  Dans C:wampbinphpphp5.5.12 créer un fichier phpunit_netbeans.bat au contenu suivant (gestion du bug d’incompatibilité entre les versions utilisées de NetBeans et PHPUnit) : phpunit %1 %2 %3 %4 "--" %5=%6  Depuis https://phar.phpunit.de/ télécharger le fichier phpunit-skelgen-2.0.1.phar dans C:wampbinphpphp5.5.12  Dans C:wampbinphpphp5.5.12 créer le fichier phpunit-skelgen.bat suivant : @php "%~dp0phpunit-skelgen-2.0.1.phar" generate-test %3 %4 %5 %6
  • 4. TUTO NetBeans Environnement de développement et de test  Configuration de NetBeans pour PHP Nicolas Defaÿ N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 4 sur 7  Configurer l’EDI (Menu1 : Outils/Options/PHP/ Onglet « Frameworks & Tools)  Si ce n'est pas déjà fait, ajouter le chemin de l'exécutable PHP dans le Path du système2 puis redémarrer NetBeans. 2.3 Mise en œuvre Nous partirons d’un exemple des plus simples : <?php class Note { private $maNote; public function __construct($uneNote) { $this->maNote = $uneNote; } public function noteValide() { return $this->maNote >= 0 && $this->maNote <= 20; } } Fichier note.class.php enregistré dans C:wampwwwtutos  Créer un nouveau projet à partir du dossier C:wampwwwtutos 1 Tools/Options/PHP/Onglet « Frameworks & Tools » 2 Pour modifier le Path : Démarrer/Ordinateur <clic droit>/Propriétés/Paramètres système avancés/Variables d'environnement... : Choisir la variable système "Path" puis modifier et ajouter le chemin à la chaîne. Bien vérifier la présence du .bat en fin de fichier !
  • 5. TUTO NetBeans Environnement de développement et de test  Configuration de NetBeans pour PHP Nicolas Defaÿ N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 5 sur 7  Ajouter un dossier « TESTS » dans lequel les squelettes de classe seront générés :  Dans l'explorateur de projet, faire un clic droit sur le script à tester (note.class.php) et choisir la fonctionnalité de génération de gabarit de test : Sélectionner le dossier précédemment créé :  Choisir l'utilitaire de tests PHPUnit dans la fenêtre qui suit : Remarque : Un dossier nommé a été rajouté au projet. C’est un alias du dossier « TESTS » précédemment créé. La création des tests a pour effet de générer la classe NoteTest.php suivante :
  • 6. TUTO NetBeans Environnement de développement et de test  Configuration de NetBeans pour PHP Nicolas Defaÿ N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 6 sur 7  Ajouter un « require » vers la classe Note :  Lancer l’exécution des tests : L’erreur est normale car, dans la fixture, aucun paramètre n’est renseigné lors de l’appel au constructeur de Note.  Dans cet exemple nous n’utiliseront pas de fixture3 .  Supprimer l’instruction présente dans la méthode setUp(), compléter la méthode testNoteValide() et relancer les tests : 3 Une fixture est un morceau de code qui permet de fixer un environnement logiciel pour exécuter des tests logiciels. Cet environnement constant est toujours le même à chaque exécution des tests (Source : Wikipédia).
  • 7. TUTO NetBeans Environnement de développement et de test  Configuration de NetBeans pour PHP Nicolas Defaÿ N.D oct.-16 /TUTO NetBeans v4.4.docx/ Page 7 sur 7  Modifier la deuxième assertion et constater l’échec des tests :