Apache est le serveur Web le plus utilisé sur la planète. Né en 1995, Apache HTTPD est aujourd'hui massivement utilisé pour supporter des applications PHP.
Cependant, peu de développeurs connaissent vraiment cette machine aussi complexe que robuste qui supporte leur langage fétiche : PHP.
Il n'est pas rare de voir des codes PHP exécutant des actions qu'Apache sait gérer en une seule ligne, de manière beaucoup plus efficace.
Nous parlerons donc généralités, HTTP, Cache, Proxing et nous passerons en revue les différentes manière de coupler Apache à PHP (mod_php, CGI et FCGI, mais aussi mpm_peruser, mpm_itk, suexec, suphp).
Conférence d'ouverture du deuxième webday de l'esgi.
Présentation des nouveautés de PHP7, l'état du support des versions de PHP, les incompatibilités (backwards compatibility breaks), les nouvelles fonctionnalités, et les moyens pour tester son application dès maintenant.
Formation Gratuite Total Tests par les experts Java Ippon Ippon
Garantissez la qualité des vos applications par des tests efficaces : unitaire, d'intégration, de performance... Apprenez à mettre en oeuvre un harnais de tests complet et efficace avec Junit, AssertJ, Mockito, Spring Test, Arquillian, ... et assimilez les concepts du TDD et du BDD, illustré avec Cucumber. La formation Total Test Training ira encore plus loin en vous présentant l'utilisation de Sonar et le rôle des tests dans un système d'intégration continue. Enfin, les aspects liés à la mesure de la performance (instrumentation avec Metric et stress test avec JMeter et Gatling) et à l'optimisation ciblée vous permettront d'être en mesure de produire un code "propre", protégé des risques de regressions.
Apache est le serveur Web le plus utilisé sur la planète. Né en 1995, Apache HTTPD est aujourd'hui massivement utilisé pour supporter des applications PHP.
Cependant, peu de développeurs connaissent vraiment cette machine aussi complexe que robuste qui supporte leur langage fétiche : PHP.
Il n'est pas rare de voir des codes PHP exécutant des actions qu'Apache sait gérer en une seule ligne, de manière beaucoup plus efficace.
Nous parlerons donc généralités, HTTP, Cache, Proxing et nous passerons en revue les différentes manière de coupler Apache à PHP (mod_php, CGI et FCGI, mais aussi mpm_peruser, mpm_itk, suexec, suphp).
Conférence d'ouverture du deuxième webday de l'esgi.
Présentation des nouveautés de PHP7, l'état du support des versions de PHP, les incompatibilités (backwards compatibility breaks), les nouvelles fonctionnalités, et les moyens pour tester son application dès maintenant.
Formation Gratuite Total Tests par les experts Java Ippon Ippon
Garantissez la qualité des vos applications par des tests efficaces : unitaire, d'intégration, de performance... Apprenez à mettre en oeuvre un harnais de tests complet et efficace avec Junit, AssertJ, Mockito, Spring Test, Arquillian, ... et assimilez les concepts du TDD et du BDD, illustré avec Cucumber. La formation Total Test Training ira encore plus loin en vous présentant l'utilisation de Sonar et le rôle des tests dans un système d'intégration continue. Enfin, les aspects liés à la mesure de la performance (instrumentation avec Metric et stress test avec JMeter et Gatling) et à l'optimisation ciblée vous permettront d'être en mesure de produire un code "propre", protégé des risques de regressions.
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Ippon
Chacun connait les fondamentaux pour développer une API Web, mais quand il s’agit de performance, de capacité, de montée en charge, avez vous toutes les clefs pour mettre en oeuvre un cache efficace ?
Le protocole HTTP dispose d’un mécanisme de cache adapté aux architectures distribuées, découvrez ou redécouvrez-le dans cette session et tirez-en profit dans vos API.
Le speaker : David développeur, architecte Java EE et directeur du Pôle Conseil d’Ippon Technologies. Passionné de nouvelles technologies, il s’intéresse aux architectures Java alliant simplicité et efficacité, aptes à répondre aux problèmes concrets. Il est aussi un supporter des API Web et du style d’architecture REST.
2012 : Conférence "Industrialisation du développement 4D avec les composants" réalisée par A&C Consulting
4D est un environnement de développement rapide. La productivité et la qualité peuvent être améliorées avec, entre autres, la réutilisation de code. Les composants apportent une solution adaptée et élégante pour répondre à ce besoin.
La démarche de structuration des composants, les avantages et inconvénients par rapport aux différentes approches a été présentée.
Les applications web recourent de plus en plus au javascript, et on commence maintenant à recourir au javascript pour les parties serveur avec des outils comme Node.js TypeScript est un nouveau language permettant d'annoter et de structurer son code javascript, afin d'en faciliter la fiabilité et la maintenance. Dans cette session, nous vous présenterons les bases de TypeScript et comment tirer le meilleur parti de ce nouvel outil dans vos applications.
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUGZenika
Découvrez les annotations Java comme vous ne les avez jamais vues ! Olivier Croisier, expert Java, anime une conférence de deux heures sur les Annotations, à destination des développeurs et des architectes. Elle couvre leur utilisation, développement, et manipulation au compile-time et au run-time grâce aux Annotation Processors et à la Réflexion.
* Présentation : Historique, cas d'utilisations et limitations
* Tour d'horizon des annotation disponibles
* Utilisation des annotations
* Développer une annotation personnalisée : structure, propriétés et méta-annotations
* Outillage compile-time : les pluggable annotation processors
* Outillage runtime : Réflexion
* Injection d'annotations
* Conclusion
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
Une introduction / ébauche au langage PHP (intro, xampp, premier pas, les structures, les variables, les types, les fonctions ...) faite dans le cadre des formations inter-membres du club Junior ENSI (http://www.junior-ensi.org/) de l'école nationale des sciences de l'informatique (http://www.ensi.rnu.tn/).
Introduites avec Java 5, les annotations ont ouvert la voie à la méta-programmation et sont aujourd’hui présentes dans tous les frameworks et API Java.
Au cours de la conférence, Olivier Croisier reviendra tout d’abord sur le principe des annotations et leur mise en œuvre au quotidien, puis démontrera l’étendue des possibilités qu’elles offrent à la compilation et au runtime, via les Annotation Processors et la Réflexion.
Olivier Croisier est expert Java chez Zenika. Il est certifié Java 5.0 avec 100%, Spring 2.5 avec 86% et est formateur certifié Terracotta. Olivier a notamment obtenu le titre de Certified JavaSpecialist Master Course Instructor de la part d’Heinz Kabutz, devenant ainsi le formateur JavaSpecialist de référence en France. Il est également l’auteur du blog The Coder’s Breakfast.
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n’est pas aisée si elle n’a pas été été prévue dès la conception de l’application.
Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d’exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l’installateur PEAR et le tout récent Composer.
Java SE 8 est sûrement la version la plus importante et la plus impactante pour les développeurs. Deux ans après sa sortie, ce talk propose des retours sur les bonnes ou moins bonnes utilisations des principales fonctionnalités de Java 8. Une connaissance de ces fonctionnalités est requise.
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Ippon
Chacun connait les fondamentaux pour développer une API Web, mais quand il s’agit de performance, de capacité, de montée en charge, avez vous toutes les clefs pour mettre en oeuvre un cache efficace ?
Le protocole HTTP dispose d’un mécanisme de cache adapté aux architectures distribuées, découvrez ou redécouvrez-le dans cette session et tirez-en profit dans vos API.
Le speaker : David développeur, architecte Java EE et directeur du Pôle Conseil d’Ippon Technologies. Passionné de nouvelles technologies, il s’intéresse aux architectures Java alliant simplicité et efficacité, aptes à répondre aux problèmes concrets. Il est aussi un supporter des API Web et du style d’architecture REST.
2012 : Conférence "Industrialisation du développement 4D avec les composants" réalisée par A&C Consulting
4D est un environnement de développement rapide. La productivité et la qualité peuvent être améliorées avec, entre autres, la réutilisation de code. Les composants apportent une solution adaptée et élégante pour répondre à ce besoin.
La démarche de structuration des composants, les avantages et inconvénients par rapport aux différentes approches a été présentée.
Les applications web recourent de plus en plus au javascript, et on commence maintenant à recourir au javascript pour les parties serveur avec des outils comme Node.js TypeScript est un nouveau language permettant d'annoter et de structurer son code javascript, afin d'en faciliter la fiabilité et la maintenance. Dans cette session, nous vous présenterons les bases de TypeScript et comment tirer le meilleur parti de ce nouvel outil dans vos applications.
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUGZenika
Découvrez les annotations Java comme vous ne les avez jamais vues ! Olivier Croisier, expert Java, anime une conférence de deux heures sur les Annotations, à destination des développeurs et des architectes. Elle couvre leur utilisation, développement, et manipulation au compile-time et au run-time grâce aux Annotation Processors et à la Réflexion.
* Présentation : Historique, cas d'utilisations et limitations
* Tour d'horizon des annotation disponibles
* Utilisation des annotations
* Développer une annotation personnalisée : structure, propriétés et méta-annotations
* Outillage compile-time : les pluggable annotation processors
* Outillage runtime : Réflexion
* Injection d'annotations
* Conclusion
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
Une introduction / ébauche au langage PHP (intro, xampp, premier pas, les structures, les variables, les types, les fonctions ...) faite dans le cadre des formations inter-membres du club Junior ENSI (http://www.junior-ensi.org/) de l'école nationale des sciences de l'informatique (http://www.ensi.rnu.tn/).
Introduites avec Java 5, les annotations ont ouvert la voie à la méta-programmation et sont aujourd’hui présentes dans tous les frameworks et API Java.
Au cours de la conférence, Olivier Croisier reviendra tout d’abord sur le principe des annotations et leur mise en œuvre au quotidien, puis démontrera l’étendue des possibilités qu’elles offrent à la compilation et au runtime, via les Annotation Processors et la Réflexion.
Olivier Croisier est expert Java chez Zenika. Il est certifié Java 5.0 avec 100%, Spring 2.5 avec 86% et est formateur certifié Terracotta. Olivier a notamment obtenu le titre de Certified JavaSpecialist Master Course Instructor de la part d’Heinz Kabutz, devenant ainsi le formateur JavaSpecialist de référence en France. Il est également l’auteur du blog The Coder’s Breakfast.
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n’est pas aisée si elle n’a pas été été prévue dès la conception de l’application.
Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d’exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l’installateur PEAR et le tout récent Composer.
Java SE 8 est sûrement la version la plus importante et la plus impactante pour les développeurs. Deux ans après sa sortie, ce talk propose des retours sur les bonnes ou moins bonnes utilisations des principales fonctionnalités de Java 8. Une connaissance de ces fonctionnalités est requise.
Ting - Un datamapper PHP sous stéroïdesXavier Leune
Slides de ma présentation lors du meetup du 9 juin 2016 dans les locaux de CCM Benchmark, organisé avec l'AFUP Paris.
Dans ce talk j'ai notamment parlé de Ting, le datamapper que nous avons conçu pour nos besoins et choisi d'open sourcer.
While many organizations have started to automate their software development processes, many still engineer their infrastructure largely by hand. Treating your infrastructure just like any other piece of code creates a “programmable infrastructure” that allows you to take full advantage of the scalability and reliability of the AWS cloud. This session will walk through practical examples of how AWS customers have merged infrastructure configuration with application code to create application-specific infrastructure and a truly unified development lifecycle. You will learn how AWS customers have leveraged tools like CloudFormation, orchestration engines, and source control systems to enable their applications to take full advantage of the scalability and reliability of the AWS cloud, create self-reliant applications, and easily recover when things go seriously wrong with their infrastructure.
Open close principle, on a dit étendre, pas extends !Engineor
Conférence en français sur le principe d'ouverture fermeture proposé à l'AFUP de Paris en février 2019, comportant des exemples d'implémentation du principe à l'aide de design patterns, avec ou sans utilisation d'un framework.
Objets patterns et genie logiciel , par Julien PauliALTER WAY
Lorsqu’on parle d’objet, de patterns ou de génie logiciel, PHP fait souvent sourire et Java vient tout de suite en tête. Cette session a pour but de prouver que PHP est mature pour supporter des projets d’envergure. Nous détaillerons techniquement le modèle objet de PHP, nous parlerons design patterns et génie logiciel, UML à l’appuie. Comment PHP a-t-il évolué sur ces points ? Comment fonctionne-t-il et quels sont les projets open sources basés sur PHP et orientés patterns ?
Quelle place pour le framework Rails dans le développement d'application web5pidou
Cette présentation a été réalisée dans le cadre des Rencontres Mondiales décentralisées du Logiciel Libre (RMLLd) qui se sont déroulées du 1er au 3 Juillet 2011 à Saint-Joseph (Ile de la Réunion).
Le développement d'applications lourdes à base de JavaScript est désormais possible. Cependant, cela requiert de bien connaître le langage en lui-même ainsi que les meilleurs patterns et pratiques établit ces 10 dernières années à travers des frameworks comme YUI ou jQuery par exemple. Vous verrez donc ici comment bien structurer votre code, comment utiliser des approches permettant de palier à certaines limitations de JS et comment également industrialiser le code grâce à la mise en place de tests unitaires.
Lors de cette présentation vous trouverez la liste complète des nouveautés de PHP 5.3 avec des exemples d'implémentation.
Elle comprend aussi une partie introspective sur le futur de PHP au 30 juin 2010
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
60. L'héritage doit être strict, le type conservé class A { public function foo($b, $c) { } } class B extends A { public function foo($b, $c, $d ) { } } Strict standards: Declaration of B::foo() should be compatible with that of A::foo()
65. Pas d'interface Throwable try{ $result = $db->getResult(); }catch (BadArgumentException $e){ // une erreur dans les arguments d'une fonction }catch (DatabaseException $e){ // une erreur de base de données }catch (Exception $e){ echo 'erreur !' . $e->getMessage(); }
82. Observateur / Sujet codé class SomeSubject implements Subject { protected $observers; protected function __construct() { $this->observers = new SplObjectStorage(); } protected function attach(Observer $o) { $this->observers->attach($o); } public function detach(Observer $o) { $this->observers->detach($o); } public function doSomething() { foreach ($this->observers as $o) { $o->update($this); } } } class SomeObserver implements Observer { public function update(Subject $s) { // let's do something here } }