Gestion des dépendances dans un projet PHP - RMLL 2012

Jean-Marc Fontaine
Jean-Marc FontaineR&D Engineer en Profilsoft
La gestion des dépendances
         dans un projet PHP
                   RMLL 2012




                     1
Jean-Marc Fontaine
Passionné de web depuis 1996, de PHP depuis 2000 et de
musique depuis 1977



  ‣ Consultant PHP chez Alter Way
  ‣ Ex-Président de l’AFUP
  ‣ Co-Auteur du livre blanc
    «Industrialisation PHP»
  ‣ Auteur du blog
    industrialisation-php.com

                                                         2
La gestion des dépendances
    dans un projet PHP



                             3
Gestion manuelle
                   4
Copie manuelle des dépendances
Simple à mettre en œuvre




                                 5
Garantit la disponibilité
Pas de risque de voir disparaître la dépendance




                                                  6
Impact sur le dépôt de code
Taille plus importante, sauvegardes plus longues




                                                   7
Mises à jour parfois difficiles
Subversion avant la version 1.7 complique la mise à
jour




                                                      8
9
Paquets du système d’exploitation
                                    10
Lié au système d’exploitation
«.deb» pour la famille Debian,
«.rpm» pour famille Red Hat




                                 11
Simple à utiliser
Debian : apt-get install phpmyadmin
Red Hat : yum install phpmyadmin




                                      12
Partagé par tout le système
Une seule version installée à la fois




                                        13
Peu de paquets PHP disponibles
Seules les librairies les plus connues sont disponibles




                                                          14
Versions souvent anciennes
Comparaison de versions


                          Officiel     Debian 6


    CakePHP               2.1.13    1.3.2 (10/11)


     Doctrine              2.2.2    1.2.2 (01/09)


   phpMyAdmin              3.5.1    3.3.7 (09/10)


     PHPUnit              3.6.11    3.4.14 (06/10)
                                                     15
Possibilité de créer ses propres paquets
Pas infaisable mais pas trivial




                                           16
Dépôt de code
                17
svn:externals avec Subversion
Simple à mettre en œuvre mais réservé aux
répertoires




                                            18
19
Sous-modules Git
Un peu ardu à mettre en œuvre




                                20
21
22
Archives PHAR*
* Attention : un jeu de mot hasardeux s’est glissé dans cette vignette. Sauras-tu le retrouver ?
                                                                                                   23
Simplicité d’emploi
Copier l’archive suffit à installer ou mettre à jour




                                                      24
Simplicité de déploiement
Un seul fichier à gérer. Possibilité de le compresser.




                                                        25
Projet complet
Impossible de ne prendre qu’une partie d’un projet




                                                     26
Peu de projets distribués sous ce format
atoum, Composer, Clinner, Goutte, Hoa, PHP
Coding Standard Fixer, Symfttpd, etc.




                                             27
La configuration par défaut de PHP pose
parfois des problèmes




                                         28
PEAR
       29
Eprouvé
Le projet existe depuis une douzaine d’années




                                                30
Qualité inégale
Malgré les règles pour assurer une qualité
homogène, le bon côtoie le très (très) moyen




                                               31
Peu attractif
Peu de librairies majeures choisissent d’être
disponibles dans PEAR




                                                32
Vieillissant
De plus en plus de paquets ne sont plus maintenus




                                                    33
Un installeur indépendant et bien vivant
On peut diffuser ses librairies via un canal PEAR
personnalisé




                                                    34
Création d’un paquet assez simple
Fichier XML de description, verbeux mais simple




                                                  35
Génération semi-automatique
PEAR_PackageFileManager2 peut générer le fichier
package.xml




                                                  36
Création d’un canal personnalisé facile
avec Pirum




                                          37
Composer
           38
Projet récent et très actif
Initié en avril 2011, plus de 2 000 commits




                                              39
Composer & Packagist
Deux outils complémentaires




                              40
Composer
Un gestionnaire de paquets en ligne de commande




                                                  41
Installation simple
curl -s http://getcomposer.org/installer | php




                                                 42
Simplicité d’utilisation
php composer.phar install




                            43
Dépendances par projet
Pas d’effet de bord




                         44
vendor/
    autoload.php
    composer/
    symfony/
        browser-kit/
        class-loader/
        css-selector/
        dom-crawler/
        event-dispatcher/
        finder/
        http-foundation/
        http-kernel/
        routing/
    twig/
        twig/




                            45
Simplicité de diffusion




                          46
composer.json
   {
       "name": "Soko",
       "description": "Light continuous integration tool",
       "license": "BSD-3-Clause",
       "authors": [
           {
               "name": "Jean-Marc Fontaine",
               "email": "jm@jmfontaine.net",
               "homepage": "http://jmfontaine.net/"
           }
       ],
       "require": {
           "php": ">=5.3.0",
           "symfony/console": "2.0.*",
           "symfony/finder": "2.0.*",
           "symfony/process": "2.0.*",
           "symfony/yaml": "2.0.*"
       },
       "autoload": {
           "psr-0": { "Soko": "src/" }
       }
   }
                                                             47
composer.json
   {
       "name": "Soko",
       "description": "Light continuous integration tool",
       "license": "BSD-3-Clause",
       "authors": [
           {
               "name": "Jean-Marc Fontaine",
               "email": "jm@jmfontaine.net",
               "homepage": "http://jmfontaine.net/"
           }
       ],
       "require": {
           "php": ">=5.3.0",
           "symfony/console": "2.0.*",
           "symfony/finder": "2.0.*",
           "symfony/process": "2.0.*",
           "symfony/yaml": "2.0.*"
       },
       "autoload": {
           "psr-0": { "Soko": "src/" }
       }
   }
                                                             48
composer.json
   {
       "name": "Soko",
       "description": "Light continuous integration tool",
       "license": "BSD-3-Clause",
       "authors": [
           {
               "name": "Jean-Marc Fontaine",
               "email": "jm@jmfontaine.net",
               "homepage": "http://jmfontaine.net/"
           }
       ],
       "require": {
           "php": ">=5.3.0",
           "symfony/console": "2.0.*",
           "symfony/finder": "2.0.*",
           "symfony/process": "2.0.*",
           "symfony/yaml": "2.0.*"
       },
       "autoload": {
           "psr-0": { "Soko": "src/" }
       }
   }
                                                             49
composer.json
   {
       "name": "Soko",
       "description": "Light continuous integration tool",
       "license": "BSD-3-Clause",
       "authors": [
           {
               "name": "Jean-Marc Fontaine",
               "email": "jm@jmfontaine.net",
               "homepage": "http://jmfontaine.net/"
           }
       ],
       "require": {
           "php": ">=5.3.0",
           "symfony/console": "2.0.*",
           "symfony/finder": "2.0.*",
           "symfony/process": "2.0.*",
           "symfony/yaml": "2.0.*"
       },
       "autoload": {
           "psr-0": { "Soko": "src/" }
       }
   }
                                                             50
Possibilité de lancer des actions après
l’installation des dépendances
Vidage de cache, création de fichiers, etc.




                                             51
Chargement automatique
Compatible PSR-0




                         52
Chargement automatique

 "autoload": {
     "psr-0": {
         "VendorNamespace": "lib/"
     },
     "classmap": ["src/", "classMap.php"]
 },
 "include-path": ["src/", ""]




 require __DIR__ . '/vendor/autoload.php';




                                             53
Chargement automatique

 "autoload": {
     "psr-0": {
         "VendorNamespace": "lib/"
     },
     "classmap": ["src/", "classMap.php"]
 },
 "include-path": ["src/", ""]




 require __DIR__ . '/vendor/autoload.php';




                                             54
Création d’un projet à partir d’un modèle
php composer.phar create-project jmfontaine/
application mon-projet




                                               55
Packagist
Un annuaire de paquets bien fourni




                                     56
57
Packagist
  Quelques chiffres

                                                                                                  Paquets
                                                                                                  Versions
                                                                                                    4 875
5000



3750                                                                                      3 345



2500                                                                              2 314

                                                                          1 791                     1 896
                                                                  1 442                   1 451
                                                          1 177
1250                                               868
                                                                                  1 006
                           664             758                             694
          626
                                                                   478
                                                           347
                                           139     204
           7                48
      0
      09/11             10/11             11/11   12/11   01/12   02/12   03/12   04/12   05/12    06/12
Source: http://packagist.org/statistics                                                                      58
Une adoption croissante
De plus en plus de librairies en vue l’utilise




                                                 59
Des sources variées
VCS (Subversion, Git, Mercurial), archives




                                             60
Version stable en vue
Alpha 4 disponible, version stable
pour la fin de l’été




                                     61
Merci !




 ‣ Slides : http://www.slideshare.net/JMF
 ‣ Blog : http://www.industrialisation-php.com/
 ‣ Twitter : @jmfontaine / @indusphp
 ‣ Email : jean-marc.fontaine@alterway.fr



                                                  62
Crédits photographiques
Les photos et illustrations suivantes ont été utilisées dans cette
présentation. Merci à leurs auteurs !


 ‣   https://secure.flickr.com/photos/cglosli/3296946161/

 ‣   http://www.vivelesrondes.com/oarystis/22836/

 ‣   https://secure.flickr.com/photos/library_of_congress/2163511028/

 ‣   https://secure.flickr.com/photos/halfbisqued/2353845688/

 ‣   https://secure.flickr.com/photos/advertisingelyse/3709966085/

 ‣   https://secure.flickr.com/photos/olibac/1823957148/

 ‣   https://secure.flickr.com/photos/reebob/3868826366/

 ‣   https://secure.flickr.com/photos/12287146@N04/4931171160/


                                                                       63
1 de 63

Recomendados

Gestion des dépendances dans un projet PHP - Forum PHP 2012 por
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 2012Jean-Marc Fontaine
6.9K vistas69 diapositivas
Industrialiser PHP - Open World Forum 2011 por
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Jean-Marc Fontaine
1.8K vistas36 diapositivas
Maintenir du code historique - RMLL 2011 por
Maintenir du code historique - RMLL 2011Maintenir du code historique - RMLL 2011
Maintenir du code historique - RMLL 2011Jean-Marc Fontaine
1.4K vistas37 diapositivas
Conférence Shinken à SophiaConf2012 (Jean Gabès) por
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
3.1K vistas108 diapositivas
symfony : Un Framework Open-Source pour les Professionnels por
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
2K vistas32 diapositivas
20081113 - Nantes Jug - Apache Maven por
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
1.2K vistas43 diapositivas

Más contenido relacionado

La actualidad más candente

AlterWay SolutionsLinux Outils Industrialisation PHP por
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPjulien pauli
1.4K vistas29 diapositivas
Sonar-Hodson-Maven por
Sonar-Hodson-MavenSonar-Hodson-Maven
Sonar-Hodson-MavenSlimen Belhaj Ali
2.3K vistas46 diapositivas
Une application en deux heure - PHP Québec Janvier 2009 por
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Philippe Gamache
1.9K vistas47 diapositivas
Présentation Maven por
Présentation MavenPrésentation Maven
Présentation MavenSOAT
4.3K vistas68 diapositivas
Symfony Best Practices por
Symfony Best PracticesSymfony Best Practices
Symfony Best PracticesBaptiste Donaux
10.4K vistas75 diapositivas
20081008 - Tours Jug - Apache Maven por
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
842 vistas37 diapositivas

La actualidad más candente(20)

AlterWay SolutionsLinux Outils Industrialisation PHP por julien pauli
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
julien pauli1.4K vistas
Une application en deux heure - PHP Québec Janvier 2009 por Philippe Gamache
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
Philippe Gamache1.9K vistas
Présentation Maven por SOAT
Présentation MavenPrésentation Maven
Présentation Maven
SOAT4.3K vistas
20081008 - Tours Jug - Apache Maven por Arnaud Héritier
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
Arnaud Héritier842 vistas
Presentation du framework symfony por Jeremy Gachet
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
Jeremy Gachet11.9K vistas
Maven2 - Philippe Kernevez - March 2009 por JUG Lausanne
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
JUG Lausanne492 vistas
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco... por Xavier Lacot
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Xavier Lacot3.9K vistas
Mieux Développer en PHP avec Symfony por Hugo Hamon
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon7.4K vistas
AFUP & PHP @ Supelec por julien pauli
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelec
julien pauli1.1K vistas
Déploiement et débogage à distance por pprem
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distance
pprem33 vistas
Plateforme De DéVeloppement En Php5 (Zend + Doctrine) por cornnery
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
cornnery3.6K vistas
Procédure de configuration et préparation de l’environnement sous windows por Addi Ait-Mlouk
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-Mlouk3.4K vistas
Symfony3 overview por SymfonyMu
Symfony3 overviewSymfony3 overview
Symfony3 overview
SymfonyMu376 vistas
Symfony 2 : chapitre 1 - Présentation Générale por Abdelkader Rhouati
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
Abdelkader Rhouati6.5K vistas
Formation Symfony2 par KNP Labs por KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP Labs
KNP Labs2.5K vistas
JCertif 2012 : Maven par la pratique por Rossi Oddet
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
Rossi Oddet2.6K vistas

Destacado

Recommendation Letter- PDRM por
Recommendation Letter- PDRMRecommendation Letter- PDRM
Recommendation Letter- PDRMSally Abas
248 vistas2 diapositivas
formulaire d'inscription sur les listes électorales por
formulaire d'inscription sur les listes électoralesformulaire d'inscription sur les listes électorales
formulaire d'inscription sur les listes électoralesGwladys
938 vistas2 diapositivas
Corrig Projet P L S Q L por
Corrig Projet  P L S Q LCorrig Projet  P L S Q L
Corrig Projet P L S Q Lbadirh
2.1K vistas7 diapositivas
Formation MySQL Workbench por
Formation MySQL WorkbenchFormation MySQL Workbench
Formation MySQL WorkbenchIsenDev
4.2K vistas14 diapositivas
My SQL por
My SQLMy SQL
My SQLdihiaselma
547 vistas24 diapositivas
Comprendre la securite web por
Comprendre la securite webComprendre la securite web
Comprendre la securite webChristophe Villeneuve
839 vistas50 diapositivas

Destacado(10)

Recommendation Letter- PDRM por Sally Abas
Recommendation Letter- PDRMRecommendation Letter- PDRM
Recommendation Letter- PDRM
Sally Abas248 vistas
formulaire d'inscription sur les listes électorales por Gwladys
formulaire d'inscription sur les listes électoralesformulaire d'inscription sur les listes électorales
formulaire d'inscription sur les listes électorales
Gwladys938 vistas
Corrig Projet P L S Q L por badirh
Corrig Projet  P L S Q LCorrig Projet  P L S Q L
Corrig Projet P L S Q L
badirh2.1K vistas
Formation MySQL Workbench por IsenDev
Formation MySQL WorkbenchFormation MySQL Workbench
Formation MySQL Workbench
IsenDev4.2K vistas
L’entretien campus france por Antoine Lopez
L’entretien campus franceL’entretien campus france
L’entretien campus france
Antoine Lopez8.8K vistas
Présentation de symfony - Human talks aux docks le 8 juillet 2014 por Tony Galmiche
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Tony Galmiche732 vistas

Similar a Gestion des dépendances dans un projet PHP - RMLL 2012

Presentation Symfony2 por
Presentation Symfony2Presentation Symfony2
Presentation Symfony2Ahmed ABATAL
2.1K vistas27 diapositivas
PHP Composer : Pourquoi ? Comment ? Et plus ... por
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
3.1K vistas21 diapositivas
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro... por
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...jihbed
506 vistas41 diapositivas
Rapport openembedded por
Rapport openembeddedRapport openembedded
Rapport openembeddedAyoub Rouzi
149 vistas24 diapositivas
Installation de PHP por
Installation de PHPInstallation de PHP
Installation de PHPMoncef Essid
1.2K vistas41 diapositivas
Atelier Symfony2- Introduction por
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- IntroductionMarwa OUNALLI
2.1K vistas21 diapositivas

Similar a Gestion des dépendances dans un projet PHP - RMLL 2012(20)

Presentation Symfony2 por Ahmed ABATAL
Presentation Symfony2Presentation Symfony2
Presentation Symfony2
Ahmed ABATAL2.1K vistas
PHP Composer : Pourquoi ? Comment ? Et plus ... por Romain Cambien
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
Romain Cambien3.1K vistas
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro... por jihbed
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
jihbed506 vistas
Rapport openembedded por Ayoub Rouzi
Rapport openembeddedRapport openembedded
Rapport openembedded
Ayoub Rouzi149 vistas
Installation de PHP por Moncef Essid
Installation de PHPInstallation de PHP
Installation de PHP
Moncef Essid1.2K vistas
Atelier Symfony2- Introduction por Marwa OUNALLI
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
Marwa OUNALLI2.1K vistas
08 01 mise en place d'un serveur web por Noël
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
Noël 1.2K vistas
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012 por Jean-Marc Fontaine
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Jean-Marc Fontaine3.5K vistas
Build automatique et distribution OTA avec Xcode 4.x et Jenkins por CocoaHeads France
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
CocoaHeads France1.6K vistas
Mysql Apche PHP sous linux por Khalid ALLILI
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
Khalid ALLILI4.7K vistas
Installation Et Configuration De Monkey Spider por Mohamed Ben Bouzid
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
Mohamed Ben Bouzid1.8K vistas
Exposé open embedded por Ayoub Rouzi
Exposé open embeddedExposé open embedded
Exposé open embedded
Ayoub Rouzi190 vistas
Gérer ses environnements de développement avec Vagrant - RMLL 2012 por Jean-Marc Fontaine
Gérer ses environnements de développement avec Vagrant - RMLL 2012Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012
Jean-Marc Fontaine4.8K vistas
Open Wide : Les outils pour le développement des systemes embarques por Alexandre LAHAYE
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarques
Alexandre LAHAYE2.6K vistas
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz por Olivier DASINI
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Olivier DASINI2.3K vistas
Php sous Windows - webcamps Paris por LeTesteur
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
LeTesteur722 vistas

Más de Jean-Marc Fontaine

Revue de code - PHP Tour Nantes 2012 por
Revue de code - PHP Tour Nantes 2012Revue de code - PHP Tour Nantes 2012
Revue de code - PHP Tour Nantes 2012Jean-Marc Fontaine
2.3K vistas28 diapositivas
La qualité au delà du code - Forum PHP 2012 por
La qualité au delà du code - Forum PHP 2012La qualité au delà du code - Forum PHP 2012
La qualité au delà du code - Forum PHP 2012Jean-Marc Fontaine
3.8K vistas46 diapositivas
Reprise sur incident - ConFoo 2012 por
Reprise sur incident - ConFoo 2012Reprise sur incident - ConFoo 2012
Reprise sur incident - ConFoo 2012Jean-Marc Fontaine
1.2K vistas70 diapositivas
La qualité au-delà du code - ConFoo 2012 por
La qualité au-delà du code - ConFoo 2012La qualité au-delà du code - ConFoo 2012
La qualité au-delà du code - ConFoo 2012Jean-Marc Fontaine
1.5K vistas46 diapositivas
Reprise sur incident - RMLL 2011 por
Reprise sur incident - RMLL 2011Reprise sur incident - RMLL 2011
Reprise sur incident - RMLL 2011Jean-Marc Fontaine
1.6K vistas30 diapositivas
Organiser efficacement son dépôt de code - RMLL 2011 por
Organiser efficacement son dépôt de code - RMLL 2011Organiser efficacement son dépôt de code - RMLL 2011
Organiser efficacement son dépôt de code - RMLL 2011Jean-Marc Fontaine
1.3K vistas22 diapositivas

Más de Jean-Marc Fontaine(15)

La qualité au delà du code - Forum PHP 2012 por Jean-Marc Fontaine
La qualité au delà du code - Forum PHP 2012La qualité au delà du code - Forum PHP 2012
La qualité au delà du code - Forum PHP 2012
Jean-Marc Fontaine3.8K vistas
La qualité au-delà du code - ConFoo 2012 por Jean-Marc Fontaine
La qualité au-delà du code - ConFoo 2012La qualité au-delà du code - ConFoo 2012
La qualité au-delà du code - ConFoo 2012
Jean-Marc Fontaine1.5K vistas
Organiser efficacement son dépôt de code - RMLL 2011 por Jean-Marc Fontaine
Organiser efficacement son dépôt de code - RMLL 2011Organiser efficacement son dépôt de code - RMLL 2011
Organiser efficacement son dépôt de code - RMLL 2011
Jean-Marc Fontaine1.3K vistas
Comment monter son business grâce à l'Open Source ? por Jean-Marc Fontaine
Comment monter son business grâce à l'Open Source ?Comment monter son business grâce à l'Open Source ?
Comment monter son business grâce à l'Open Source ?
Jean-Marc Fontaine675 vistas
Industrialiser ses développements PHP - RMLL 2010 por Jean-Marc Fontaine
Industrialiser ses développements PHP - RMLL 2010Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010
Jean-Marc Fontaine914 vistas
Solutions Linux 2010 - Maîtrise du développement PHP por Jean-Marc Fontaine
Solutions Linux 2010 - Maîtrise du développement PHPSolutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHP
Jean-Marc Fontaine984 vistas
PHP 5.3 : Une étape importante sur la route vers PHP 6 por Jean-Marc Fontaine
PHP 5.3 : Une étape importante sur la route vers PHP 6PHP 5.3 : Une étape importante sur la route vers PHP 6
PHP 5.3 : Une étape importante sur la route vers PHP 6
Jean-Marc Fontaine545 vistas
Déboguer une application web avec FirePHP por Jean-Marc Fontaine
Déboguer une application web avec FirePHPDéboguer une application web avec FirePHP
Déboguer une application web avec FirePHP
Jean-Marc Fontaine1.1K vistas
Utilisation optimale et professionnelle de PHP por Jean-Marc Fontaine
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
Jean-Marc Fontaine1.9K vistas

Gestion des dépendances dans un projet PHP - RMLL 2012