Php trollons-mais-trollons-bien (Bdx.io 2015)

1.523 visualizações

Publicada em

Depuis des années PHP souffre d’une mauvaise réputation. Beaucoup de personnes ont tendance à dire que c’est un mauvais langage. Il est vrai que ce langage a des défauts mais depuis quelques années il a vraiment évolué. Lors de ce lightning, je vais vous montrer comment en abordant la programmation orienté objet ainsi que les nombreux outils permettant l’industrialisation de ce langage.

Publicada em: Internet
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.523
No SlideShare
0
A partir de incorporações
0
Número de incorporações
200
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Php trollons-mais-trollons-bien (Bdx.io 2015)

  1. 1. PHP : TROLLONS, MAIS TROLLONS BIEN!
  2. 2. QUI SUIS-JE ? Arnaud Langlade (@_aRn0D) Développeur PHP/Symfony @CleverAge Core team member @Sylius (et bientôt @akeneo)
  3. 3. POURQUOI CE TALK ?!? Polo : Quel langage, utilises tu ? Arnaud : PHP, mon polo! Polo :
  4. 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. 5. On est d'accord, ça ne donne pas envie...
  6. 6. MAIS ÇA ÉVOLUE ! DEPUIS UN MOMENT DÉJÀ...
  7. 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. 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. 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. 10. LA COMMUNAUTÉ EST LÀ ET ELLE...
  11. 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. 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. 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. 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. 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. 16. MERCI! QUESTIONS ? Arnaud Langlade Twiter @_aRn0D Github @aRn0D

×