Dawan Formation

Dawan Formation Centre de formation

Formations publiées

Formation Services web avec PHP
Dawan Formation

Programme de Formation Services web avec PHP

Introduction

Nombreux principes fondamentaux

Exemples de services web

Avantages et conséquences ; l'architecture

Rappels de PHP nécessaires

Services REST

Principes généraux

Sérialisations : XML, JSON, ...

Gestion des URL avec Apache

Atelier : consommation d'un service web REST public Atelier : création d'un site accesible en REST complet Normes essentielles de RPC Rappels complets de XML

Présentation de XML-RPC, WS*, SOAP, WSDL

Quelques cas particuliers

La bibliothèque SOAP

Présentation générale et alternatives

Mise en place d'un serveur

Accès par un client quelconque

Utiliser le WSDL

Cas additionnels (sécurité, encodage, binaire...)

Besoins spécifiques et questions

Atelier : un service web et sn client, et des situations additionnelles

Non finançable CPF
1196.00 €
À distance
Tout public
Formation Usine Logicielle pour développeurs PHP
Dawan Formation

Programme de Formation Usine Logicielle pour développeurs PHP

Appréhender la culture agile

Le manifeste Agile

De la vision à la livraison, la chronologie du projet

Le système sensoriel pour suivre l’évolution du projet

La planification et la gestion de l’inconnu

Le rythme : travailler de façon itérative

La mutation : amélioration progressive et continue du projet et des process

Quelques principes : KISS, YAGNI, empirisme, transparence, …

Apprendre les pratiques agiles

Le Lean Management : objectif, principes

Kanban : principe, avantage, cycle de vie d'une étiquette

Pratiques XP (eXtreme Programming)

Le cadre Scrum, distribution des rôles

Time boxes : Sprint planning, Sprint Review, Sprint Retrospective, Daily Scrum

Artéfacts : Product Backlog, Sprint Backlog, Burndown chart

Mettre en place une solution de gestion de version Git

Principes de gestion de contrôle de source (SCM)

Historique, contrôle local, centralisé et distribué

Fonctionnement des instantanées, comparaison avec les différences

Installation (Linux, MacOS, Windows)

Accès au manuel : man / help

Configuration initiale de Git : préférences, profil utilisateur

Initialisation d’un dépôt local

Atelier : Installation de Git - Création d'un projet Exploiter le dépôt local et son cycle de vie

Concepts, de répertoire de travail, index et dépôt

Vérifier l’état de la copie de travail : status

Indexer ses modifications : add

Ignorer des fichier : .gitignore

Valider ses modifications : commit

Supprimer et déplacer des fichiers

Atelier : contributions et validations Visualiser l’historique

Visualiser les modifications : log

Personnaliser le format : stat, pretty, …

Filtrer par date , auteur, message de commit, contenu modifié, ...

Visualiser et exporter une différence (format natif, outil externe)

Étiqueter ses validations : étiquettes légères et annotées

Rechercher avec git-grep

Annuler des actions

Réécrire la dernière validation

Désindexer un fichier

Réinitialiser un fichier

Travailler avec les branches

Principe de branche, le pointeur HEAD

Créer une branche

Basculer entre les branches, le mode détaché

Fusionner les branches : avance-rapide, trois sources

Gérer les conflits de fusion

Outil de fusion externe : mergetool (emerge, vimdiff, meld, …)

Visualiser les branches existantes, celles qui ont été fusionnées

Supprimer une branche

Stratégies de gestion de branches : branche longue, thématique, …

Travailler avec un dépôt distant

Dépôt distant, branches distantes, suivi de branche

Afficher et inspecter les dépôts distants

Ajouter, renommer, retirer ses dépôts distants

Tirer, pousser et supprimer une branche distante

Réécrire l’histoire, rebaser

Mise en garde : les dangers de la réécriture

Rebaser une portion de branche

Quand rebaser et quand fusionner

Remiser et nettoyer

Remiser son travail en cours

Créer une branche depuis une remise

Nettoyer son répertoire de travail

Personnaliser Git

Configurer éditeur par défaut, exclusions automatiques, ...

Création et utilisation d’alias

Outils graphiques : Git-Gui, GitKraken, SmartGit, ...

Créer des filtres : smudge et clean

Crochets côté client : pre-commit, pre-rebase, post-rewrite…

Crochets côté serveur : pre-receive, update, post-receive

Faire référence à un projet externe

Principe des sous-modules

Déclarer, tirer et mettre à jour un sous-module

Modifier et gérer les conflits sur une bibliothèque externe

Problèmes des sous-modules

Publier un dépôt Git sur un serveur

Les protocoles : local, HTTP, SSH, Git

Création d’un dépôt nu, comptes utilisateurs

Utilisateur git unique, clés SSH et git-shell

Démon Git

Atelier : Mise en place d’un serveur Git Appréhender Docker

Les différentes formes de virtualisation et leur concept

Présentation des avantages et des cas d'utilisation des conteneurs

Présentation de Docker et de son architecture Comprendre l'intégration continue Processus de développement, d'intégration et de déploiement

Intégration continue : présentation, positionnement dans une démarche agile

Gestion des environnements : développement, recette, production

Panorama outils de gestion : versionning, build, tests, qualité

Présentation d'outils d'intégration continue : Jenkins, GitLab-CI, Bamboo, …

Atelier : Publier un projet PHP sur une plateforme d’intégration continue Mettre en place un pipeline d’intégration PHP avec Gitlab-CI Chargement d’une image Docker PHP CLI

Mise en place du pipeline : les stages et les jobs

Exécution du pipeline et visualisation de la sortie

Configurer les dépendances entre jobs

Gérer le déclenchement de l’intégration suivant les branches ou tags

Atelier : Configurer et lancerl’intégration S’équiper pour l’assurance qualité Outils de qualité, types et intérêts

Analyse à froid : php_cs_fixer, PHP_CodeSniffer

Panorama des types tests : unitaires, fonctionnels, e2e

Stratégies des tests, TDD, BDD, StoryBDD, non-régression

Ce qu’il faut et ne faut pas tester

Atelier : Mettre en place un contrôle de convention d’écriture Tester son application Présentation de PHPUnit

Classes et méthodes de tests, assertion

Provisionner en données : fixtures

Les doublures : bouchons, mock

Les résultats : succès, échec, erreur, risqué, incomplet

Atelier : Mettre en place des tests automatisés, contrôler les scénarios Passer de l’intégrationau déploiement : le mouvement DevOps Présentation du mouvement DevOps

Valeurs DevOps: Culture, Automatisation, Lean, Mesure, Partage

Culture DevOps : présentation, caractéristiques, mise en place

Principe d’infrastructure as code

Présentation d’Ansible

Non finançable CPF
2380.00 €
À distance
Tout public
Formation PHP Avancé : Modélisation, Webservices, Librairies courantes + Déploiement, Tests, Frameworks
Dawan Formation

Programme de Formation PHP Avancé : Modélisation, Webservices, Librairies courantes + Déploiement, Tests, Frameworks

Introduction

Rappels POO en PHP

Gestion du contexte applicatif

S'adapter à la version PHP : nouveautés, dépréciations et retraits, revue des versions actuelles

Design Patterns

Présentation et principe ; intéret des Design Patterns

Design Patterns spécifiques au Web

L'architecture MVC

Le Singleton, Factory, Builder

Le Proxy, Adapter, Bridge

L'Iterator, Observer

L'injection de dépendance

Atelier : Implémenter plusieurs design patternComposer

PHP en ligne de commande CLI

Installation de composer

Déclaration du projet

Déclaration de dépendances, contraintes de version

Dépendances relatives à la plate-forme

Mise à jour et installation des dépendances

Auto-chargement des définitions (PSR-0, PSR-4, classmap, files)

Débogage des incompatibilités (why, why-not)

Atelier : Déclarer son projet avec composer, importer une bibliothèqueLes bases de données

Rappels : Accès à une base de données

Notions de base SQL & NoSQL

Introduction au Mapping Relationnel Object

Intérêt et avantage à l'utilisation d'un ORM

ORM PHP: Doctrine, Propel

Atelier : Installer et utiliser un ORMCryptographie

Principes et Notions de cryptographie

Distinguer Chiffrement et Hachage

Choisir son algorithme (puissance / cout) selon l'objectif

L'extension PHP de chiffrement : OpenSSL

Les extensions PHP de hachage : Hash et Password_hash

Atelier : Créer une classe de ChiffrementWeb Services

Présentation des services web et d'une architecture SOA

Présentation du Web Services Description Language (WSDL)

La bibliothèque SOAP de php

Présentation d'une architecture REST

Atelier : Réalisation d'un Service Web RESTLes Tests en PHP

Bibliothèques de test Unitaire: PHPUnit, PHPSpec

Installation de PHPUnit

Ecriture d'une classe de test

Utilisation des assertions

Les helpers PHPUnit_Framework_TestCase

Utiliser les dépendances d'objet: Les Mocks

Exécution des tests

Atelier : Tester plusieurs classesDéploiement d'applications PHP

Sécurité des scripts PHP : éviter les failles

Se prémunir des attaques Cross-Site Scripting (XSS)

Eviter les injections SQL

Se protéger contre le Cross-Site Request Forgery (CSRF)

Gestion des erreurs et des exceptions PHP

Atelier : Protéger son application des failles phpEtude de cas : Utilisation d'un Framework

Introduction à CodeIgniter

Utiliser l'architecture MVC

Gestion des urls

Lier un controller à une url

Associer une vue à un controller

Utiliser les modèles

Atelier : Créer une application avec CodeIgniter

Non finançable CPF
1900.00 €
À distance
Tout public
Formation PHP et les bibliothèques graphiques
Dawan Formation

Programme de Formation PHP et les bibliothèques graphiques

PHP

Présentation de PHP

Rappels rapides : syntaxe, création de fonction

Présentation des librairies graphiques

La bibliothèque GD

Créer des images PNG, GIF, JPG

Obtenir les dimensions d’une image

Redimensionner une image

Transformer une image (écrire dessus, dessiner un cercle, etc…)

Les chaînes de caractères

La transparence des images - modes de fonctionnement et limites

Image Magick

Appliquer des effets de flou

Convertir une image d’un format à un autre

Solariser une image

Adjoindre une bordure

Les autres effets possibles : ajouter du bruit, jouer avec les contrastes, filtre médian, etc.

Etude de cas

Création d’une photothèque :

Spécifications de l’application

Conception technique

Schémas des bases de données

Création des imports de photos

Génération de miniatures

Modélisation d’effets (correction gamma, flou)

Introduction à la bibliothèque Ming

Créer une animation Flash

Créer un effet de mouvement

Créer un effet de couleur

La bibliothèque JPGraph

Une librairie spécifique pour créer des graphiques

Principe de fonctionnement

Présentation des différents formats de graphiques

Génération de courbes

Gestion des légendes et des intitulés des axes

Génération d’histogrammes

Génération de graphiques à partir de données mySQL

Génération d’autres graphiques

Etude de cas

Création d’un gestionnaire de projet :

Spécifications de l’application

Conception technique

Schémas des bases de données

Génération de diagramme GANTT

Génération de graphiques de suivi d'activité

Conclusion et bilan

Les différentes bibliothèques graphiques

Extension : Comment développer un diagramme PERT ?

Non finançable CPF
900.00 €
À distance
Tout public
Formation PHP Expert : Optimisation et industrialisation d'applications
Dawan Formation

Programme de Formation PHP Expert : Optimisation et industrialisation d'applications

Rappel: histoire de PHP

Les nouveautés de PHP7, PHPNG et HHVM

Principe d'architecture

Protocole centrée: présentation de PSR7, ReST et HATEOAS

MVC, découpler le domaine de l'applicatif

Plus de découplage: Interface based programming

Encore plus de découplage: microservices

Injection de dépendances

Frameworks

Les full-stack MVC framework: présentation de Symfony et Zend

Un composant classique l'ORM:

Les frameworks allégés: exemple de Silex

Paradigme collaborationiste et suppression des frameworks

Gestion des logs

Rappels: logs natifs de PHP

PSR-3: Logger-interface

Une implémentation: Monolog

Les processeurs (introspection, memory usage, ...)

Les formateurs (html, ChromePHP, ...)

Les wrappers (Buffer, Filter, FingersCrossed, ...)

Atelier : Mettre à disposition un logger à notre applicationLes environnements de développements

Environnement AMP local

Le serveur HTTP embarqué de PHP5

Virtualisation, gérer les déploiements avec vagrant

Virtualisation, moduler les dépendances avec Docker

Atelier : Créer un lanceur de serveur de développementMonitoring et Profiling

Monitoring : que surveiller ?

Présentation d'un outil tel que Monit

Profiling : xDebug, Xhprof et Xhgui

Profiling dans un framework : Symfony WebProfilerBundle

Profiling via un service externe : Blackfire

Test de montée en charge avec Apache Bench

Atelier : Profiler notre applicationOutils de développement

Système de contrôle de version (VCS) : SVN, Git

Gestion des branches

Documentation : PHPDoc

Environnement de développement intégré (IDE)

Fichier de configuration, les formats Yaml, XML, json

Chargeur de configuration

Inspecter le source : PHPStorm inspector, Sensio Insight

Optimiser l'écriture du code

Convention de code :PSR-1, PSR-2

Principes du développement SOLID

Vérifier les conventions : phpcpd, php-cs-fixer ...

Optimiser l'exécution

Outils d'optimisation / qualité de code

Erreurs courantes, solutions

Compression à la volée

Optimisation des algorithmes

Optimisation de la couche d'accès aux données: memcached

Cache HTTP, directives cache-control

Cache HTTP sur un reverse-proxy, présentation d'outils

Atelier : Multiples scénarios d'optimisation de codePassage de la certification (si prévue dans le financement)

Non finançable CPF
1980.00 €
À distance
Tout public
Formation PHP Avancé : Modélisation, Webservices, Librairies courantes
Dawan Formation

Programme de Formation PHP Avancé : Modélisation, Webservices, Librairies courantes

Introduction

Rappels POO en PHP

Gestion du contexte applicatif

S'adapter à la version PHP : nouveautés, dépréciations et retraits, revue des versions actuelles

Design Patterns

Présentation et principe ; intéret des Design Patterns

Design Patterns spécifiques au Web

L'architecture MVC

Le Singleton, Factory, Builder

Le Proxy, Adapter, Bridge

L'Iterator, Observer

L'injection de dépendance

Atelier : Implémenter plusieurs design patternComposer

PHP en ligne de commande CLI

Installation de composer

Déclaration du projet

Déclaration de dépendances, contraintes de version

Dépendances relatives à la plate-forme

Mise à jour et installation des dépendances

Auto-chargement des définitions (PSR-0, PSR-4, classmap, files)

Débogage des incompatibilités (why, why-not)

Atelier : Déclarer son projet avec composer, importer une bibliothèqueLes bases de données

Rappels : Accès à une base de données

Notions de base SQL & NoSQL

Introduction au Mapping Relationnel Object

Intérêt et avantage à l'utilisation d'un ORM

ORM PHP: Doctrine, Propel

Atelier : Installer et utiliser un ORMCryptographie

Principes et Notions de cryptographie

Distinguer Chiffrement et Hachage

Choisir son algorithme (puissance / cout) selon l'objectif

L'extension PHP de chiffrement : OpenSSL

Les extensions PHP de hachage : Hash et Password_hash

Atelier : Créer une classe de ChiffrementWeb Services

Présentation des services web et d'une architecture SOA

Présentation du Web Services Description Language (WSDL)

La bibliothèque SOAP de php

Présentation d'une architecture REST

Atelier : Réalisation d'un Service Web REST

Non finançable CPF
1196.00 €
À distance
Tout public