SlideShare a Scribd company logo
1 of 16
Download to read offline
PHP : TROLLONS, MAIS TROLLONS BIEN!
QUI SUIS-JE ?
Arnaud Langlade (@_aRn0D)
Développeur PHP/Symfony
@CleverAge
Core team member @Sylius
(et bientôt @akeneo)
POURQUOI CE TALK ?!?
Polo : Quel langage, utilises tu ?
Arnaud : PHP, mon polo!
Polo :
OUI, EN PHP ON A VU ... (PHP4)
require 'lib/function.php';
if (isset($_GET['page']))
{
    echo "<html>";
    include($_GET['page'].'.php');
    echo "</html>";
}
class Connection
{
    var $dsn;
    function connection()
    {
        // ...
    }
}
On est d'accord, ça ne donne pas envie...
MAIS ÇA ÉVOLUE ! DEPUIS UN MOMENT DÉJÀ...
AMÉLIORATION DU MODE OBJET (PHP5)
namespace Bdd/Common;
use Bdd/Common/Connection as BaseConnection;
class Connection extends BaseConnection implements
    ConnectionInterface,
    ContainerAwareInterface
{
    use ConnectionTrait;
    const TYPE = 'my_sql';
    private $dsn = null; // Peut être public ou protected
    public function __construct(array $config)
    {/*...*/}
    final public function query(Criteria $criteria)
    {/*...*/}
}
AMÉLIORATION DU MODE OBJET (PHP7)
declare(strict_types = 1);
namespace Bdd/Common;
use Bdd/Common/Connection as BaseConnection;
class ConnectionFactory implements ConnectionFactoryInterface
{
    public function create(string $dsn) : Connection
    {
        try {
            return new Connection($dsn);
        } catch (TypeError $e) {
            // Une partie des erreurs Fatales sont transformées en Error
            echo $e­>getMessage();
        }
    }
}
LA DELOREAN EST EN MARCHE...
Mélange procédural et d'objet (mais
gros gap entre PHP4 et PHP7)
L'api est très bien documentée (et
internationalisée)
La core team a défini un processus de
release (RFC + Vote)
Communauté vaste, expérimentée et
organisée (User group, conférence)
LA COMMUNAUTÉ EST LÀ ET ELLE...
LA COMMUNAUTÉ
La communauté s'est bien diversifiée (il y'a de très bons développeurs)
Les projets open source demandent une bonne qualité de code (design et
tests)
De nombreuse librairies sont disponibles ( )packagist.org
PHP FRAMEWORK INTEROP GROUP (PHPFIG)
Regroupe des acteurs majeurs du monde PHP (Sf, Zf, eZ, Doctrine, etc.)
Parle des problématiques communes à chaque projet
Création des PHP Standard Recommendation (PSRs)
LES NORMES PSR (PHP STANDARD RECOMMENDATION)
PSR0 et PSR4 : Chargement des classes
PSR1 et PSR2 : Style du code
PSR3 : Gestion des logs
PSR7 : Messages HTTP
INDUSTRIALISATION DE PHP
Gestionnaire de dépendences :
Composer
/^(|micro) framework$/: Symfony,
Laravel, Zend, Yii, Slim, Silex, etc...
Framework de tests : PhpUnit,
Atoum, Behat ou bien PhpSpec.
Intégration continue:
PHP_CodeSniffer,
PHP_Depend/PHPMD, PHPCPD,
PhpDependencyAnalysis etc...
POUR FINIR
Ce n'est pas un langage qui
fait un développeur mais la
façon dont il l'utilise.
PHP et sa communauté
évolue dans le bon sens même
si le langage n'est pas parfait.
MERCI! QUESTIONS ?
Arnaud Langlade
Twiter @_aRn0D
Github @aRn0D

More Related Content

Viewers also liked

Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Arnaud Langlade
 
Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)Arnaud Langlade
 
Les Applications Sur Smartphone
Les Applications Sur SmartphoneLes Applications Sur Smartphone
Les Applications Sur SmartphoneLudovic Dublanchet
 
Web Squared, Marketing Puissance E et Mme Michou
Web Squared, Marketing Puissance E et Mme MichouWeb Squared, Marketing Puissance E et Mme Michou
Web Squared, Marketing Puissance E et Mme MichouSalah Benzakour
 
Présentation Wiki cornafrique
Présentation Wiki cornafriquePrésentation Wiki cornafrique
Présentation Wiki cornafriqueCornafrique
 
Réseau conventionnel de la France en matière d’échange de renseignements
Réseau conventionnel de la France en matière d’échange de renseignementsRéseau conventionnel de la France en matière d’échange de renseignements
Réseau conventionnel de la France en matière d’échange de renseignementsPatrick Michaud
 
memoire Nathanael Delahaye
memoire Nathanael Delahayememoire Nathanael Delahaye
memoire Nathanael DelahayeNathana Delahaye
 
Guide d'évaluation des préférences d'apprentissage
Guide d'évaluation des préférences d'apprentissageGuide d'évaluation des préférences d'apprentissage
Guide d'évaluation des préférences d'apprentissageCri - Greta du Velay
 
George W.Bush et ses busheries
George W.Bush et ses busheriesGeorge W.Bush et ses busheries
George W.Bush et ses busheriesokumi
 
Bill Votre Date De Naissance
Bill   Votre Date De NaissanceBill   Votre Date De Naissance
Bill Votre Date De Naissanceguest99d31
 
Trabajo Práctico de Cardozo y Silva
Trabajo Práctico de Cardozo y SilvaTrabajo Práctico de Cardozo y Silva
Trabajo Práctico de Cardozo y SilvaNe Yi
 
Sam miami diagnóstico de la fibrilación auricular
Sam miami diagnóstico de la fibrilación auricularSam miami diagnóstico de la fibrilación auricular
Sam miami diagnóstico de la fibrilación auricularJose Mejias Melendez
 
Gastro Oncologie
Gastro OncologieGastro Oncologie
Gastro OncologieMede Space
 
Memoire expose samir_alqeisi
Memoire expose samir_alqeisiMemoire expose samir_alqeisi
Memoire expose samir_alqeisimu2nis
 
4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...
4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...
4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...Ludovic Dublanchet
 

Viewers also liked (20)

Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
 
Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)Programmation STUPID vs SOLID (PHP Meetup)
Programmation STUPID vs SOLID (PHP Meetup)
 
Summer experiences 2015
Summer experiences 2015Summer experiences 2015
Summer experiences 2015
 
Les Applications Sur Smartphone
Les Applications Sur SmartphoneLes Applications Sur Smartphone
Les Applications Sur Smartphone
 
Web Squared, Marketing Puissance E et Mme Michou
Web Squared, Marketing Puissance E et Mme MichouWeb Squared, Marketing Puissance E et Mme Michou
Web Squared, Marketing Puissance E et Mme Michou
 
Présentation Wiki cornafrique
Présentation Wiki cornafriquePrésentation Wiki cornafrique
Présentation Wiki cornafrique
 
Réseau conventionnel de la France en matière d’échange de renseignements
Réseau conventionnel de la France en matière d’échange de renseignementsRéseau conventionnel de la France en matière d’échange de renseignements
Réseau conventionnel de la France en matière d’échange de renseignements
 
memoire Nathanael Delahaye
memoire Nathanael Delahayememoire Nathanael Delahaye
memoire Nathanael Delahaye
 
Guide d'évaluation des préférences d'apprentissage
Guide d'évaluation des préférences d'apprentissageGuide d'évaluation des préférences d'apprentissage
Guide d'évaluation des préférences d'apprentissage
 
George W.Bush et ses busheries
George W.Bush et ses busheriesGeorge W.Bush et ses busheries
George W.Bush et ses busheries
 
Bill Votre Date De Naissance
Bill   Votre Date De NaissanceBill   Votre Date De Naissance
Bill Votre Date De Naissance
 
Mapas Mentales Curso OG
Mapas Mentales Curso OGMapas Mentales Curso OG
Mapas Mentales Curso OG
 
Trabajo Práctico de Cardozo y Silva
Trabajo Práctico de Cardozo y SilvaTrabajo Práctico de Cardozo y Silva
Trabajo Práctico de Cardozo y Silva
 
Sam miami diagnóstico de la fibrilación auricular
Sam miami diagnóstico de la fibrilación auricularSam miami diagnóstico de la fibrilación auricular
Sam miami diagnóstico de la fibrilación auricular
 
Gastro Oncologie
Gastro OncologieGastro Oncologie
Gastro Oncologie
 
Memoire expose samir_alqeisi
Memoire expose samir_alqeisiMemoire expose samir_alqeisi
Memoire expose samir_alqeisi
 
4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...
4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...
4emes Rencontres Nationales du etourisme institutionnel - Atelier 5 CDT Blogs...
 
Atelier Frotsi après-midi
Atelier Frotsi après-midiAtelier Frotsi après-midi
Atelier Frotsi après-midi
 
Medec2009finale
Medec2009finaleMedec2009finale
Medec2009finale
 
Cyberbase et tourisme
Cyberbase et tourismeCyberbase et tourisme
Cyberbase et tourisme
 

Similar to Php trollons mais trollons bien (Bdx.io 2015)

cours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptcours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptGroupeExcelMarrakech
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afupJulien Vinber
 
cours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfGroupeExcelMarrakech
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensionsjulien pauli
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blogPHPPRO
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPjulien pauli
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 
Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]Wixiweb
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfRihabBENLAMINE
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Damien Seguy
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPjulien pauli
 

Similar to Php trollons mais trollons bien (Bdx.io 2015) (20)

cours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptcours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.ppt
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
PHP5: Endgame
PHP5: EndgamePHP5: Endgame
PHP5: Endgame
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
 
cours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdf
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensions
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blog
 
PHP, ce truc de vieux
PHP, ce truc de vieuxPHP, ce truc de vieux
PHP, ce truc de vieux
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
Php
PhpPhp
Php
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]
 
43_pps.pdf
43_pps.pdf43_pps.pdf
43_pps.pdf
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
PHP Training
PHP TrainingPHP Training
PHP Training
 
Playing With PHP 5.3
Playing With PHP 5.3Playing With PHP 5.3
Playing With PHP 5.3
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 

Php trollons mais trollons bien (Bdx.io 2015)

  • 1. PHP : TROLLONS, MAIS TROLLONS BIEN!
  • 2. QUI SUIS-JE ? Arnaud Langlade (@_aRn0D) Développeur PHP/Symfony @CleverAge Core team member @Sylius (et bientôt @akeneo)
  • 3. POURQUOI CE TALK ?!? Polo : Quel langage, utilises tu ? Arnaud : PHP, mon polo! Polo :
  • 4. OUI, EN PHP ON A VU ... (PHP4) require 'lib/function.php'; if (isset($_GET['page'])) {     echo "<html>";     include($_GET['page'].'.php');     echo "</html>"; } class Connection {     var $dsn;     function connection()     {         // ...     } }
  • 5. On est d'accord, ça ne donne pas envie...
  • 6. MAIS ÇA ÉVOLUE ! DEPUIS UN MOMENT DÉJÀ...
  • 7. AMÉLIORATION DU MODE OBJET (PHP5) namespace Bdd/Common; use Bdd/Common/Connection as BaseConnection; class Connection extends BaseConnection implements     ConnectionInterface,     ContainerAwareInterface {     use ConnectionTrait;     const TYPE = 'my_sql';     private $dsn = null; // Peut être public ou protected     public function __construct(array $config)     {/*...*/}     final public function query(Criteria $criteria)     {/*...*/} }
  • 8. AMÉLIORATION DU MODE OBJET (PHP7) declare(strict_types = 1); namespace Bdd/Common; use Bdd/Common/Connection as BaseConnection; class ConnectionFactory implements ConnectionFactoryInterface {     public function create(string $dsn) : Connection     {         try {             return new Connection($dsn);         } catch (TypeError $e) {             // Une partie des erreurs Fatales sont transformées en Error             echo $e­>getMessage();         }     } }
  • 9. LA DELOREAN EST EN MARCHE... Mélange procédural et d'objet (mais gros gap entre PHP4 et PHP7) L'api est très bien documentée (et internationalisée) La core team a défini un processus de release (RFC + Vote) Communauté vaste, expérimentée et organisée (User group, conférence)
  • 10. LA COMMUNAUTÉ EST LÀ ET ELLE...
  • 11. LA COMMUNAUTÉ La communauté s'est bien diversifiée (il y'a de très bons développeurs) Les projets open source demandent une bonne qualité de code (design et tests) De nombreuse librairies sont disponibles ( )packagist.org
  • 12. PHP FRAMEWORK INTEROP GROUP (PHPFIG) Regroupe des acteurs majeurs du monde PHP (Sf, Zf, eZ, Doctrine, etc.) Parle des problématiques communes à chaque projet Création des PHP Standard Recommendation (PSRs)
  • 13. LES NORMES PSR (PHP STANDARD RECOMMENDATION) PSR0 et PSR4 : Chargement des classes PSR1 et PSR2 : Style du code PSR3 : Gestion des logs PSR7 : Messages HTTP
  • 14. INDUSTRIALISATION DE PHP Gestionnaire de dépendences : Composer /^(|micro) framework$/: Symfony, Laravel, Zend, Yii, Slim, Silex, etc... Framework de tests : PhpUnit, Atoum, Behat ou bien PhpSpec. Intégration continue: PHP_CodeSniffer, PHP_Depend/PHPMD, PHPCPD, PhpDependencyAnalysis etc...
  • 15. POUR FINIR Ce n'est pas un langage qui fait un développeur mais la façon dont il l'utilise. PHP et sa communauté évolue dans le bon sens même si le langage n'est pas parfait.
  • 16. MERCI! QUESTIONS ? Arnaud Langlade Twiter @_aRn0D Github @aRn0D