SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
© IBM France 2017
Université IBM i 2017
17 et 18 mai – IBM Client Center de Bois-Colombes
S43 – Passer à PHP 7 sous IBM i
Jeudi 18 mai – 15h15-16h45
Gautier DUMAS - NoToS
IBM Power Systems - IBM i
© IBM France 2017
NoToS
 Expertise autour de l’IBM i
– Sécurité
– Regard moderne
– Service
– Formation, audit, développement…
 PHP sur IBM i avec Zend
– Modernisation
– Web Services…
 Développement de progiciels
– Modernisation à valeur ajoutée des IBM i
3
IBM Power Systems - IBM i
© IBM France 2017
Introduction
 Partenariat Zend / IBM depuis 2005
 Stack PHP sur IBM i aujourd’hui en version 9
 Le Zend Server est l’environnement PHP sur IBM i adapté :
– Pour la production
– Support, monitoring avancé, performances
– Pour les développements
– Z-Ray, Z-Ray Live!, URL Insight
 Totalement intégré à l’IBM i
– D’un point de vue du serveur
– D’un point de vue des développements avec un ensemble de
bibliothèques PHP pour IBM i
4
IBM Power Systems - IBM i
© IBM France 2017
PHP 7
Qu’est ce qui change ?
5
IBM Power Systems - IBM i
© IBM France 2017
PHP 7 – Le maître mot : performances !
1. Réduction de l’utilisation des ressources (server, hardware etc.)
PHP 7 est en moyenne 2x plus rapide que PHP 5.6 et
consomme significativement moins de mémoires
2. Une satisfaction des utilisateurs
Améliore l’experience utilisateur en réduisant les temps
de réponses
IBM Power Systems - IBM i
© IBM France 2017
PHP 7.0 vs 5.6
More information @ zend.com
(Nombres de requêtes traités par
seconde)
IBM Power Systems - IBM i
© IBM France 2017
Roadmap PHP
8
http://php.net/supported-versions.php
IBM Power Systems - IBM i
© IBM France 2017
Se préparer à passer à PHP 7
 Une rétrocompatibilité presque totale
 Permet de migrer nos applications PHP 5.6 à PHP7 sans
trop d’efforts
 Des outils sont à dispositions dans le Zend Studio pour aider
à repérer les incompatibilités
 Des performances au rendez vous sans développement
supplémentaire
9
IBM Power Systems - IBM i
© IBM France 2017
Se préparer à PHP 7 grâce au Zend Studio
10
IBM Power Systems - IBM i
© IBM France 2017
Principales incompatibilités
 suppression des fonctionnalités dépréciées
 http://php.net/manual/en/migration70.incompatible.php
 Exemples
– L’extension MySQL (dépréciée depuis PHP5.5) qui est l’ancien connecteur
et jeu de fonctions pour interagir avec le sgbdr MySQL
Préférez l’utilisation de MySQLi ou PDO_MySQL
– L’extension ereg (dépréciée depuis PHP 5.3) qui permet de
rechercher une expression régulière
 Préférez l’utilisation du jeu de fonctions preg_** (PCRE)
11
IBM Power Systems - IBM i
© IBM France 2017
Passage en deprecated
 Utilisation des constructeurs de classes PHP4
12
IBM Power Systems - IBM i
© IBM France 2017
Passage en deprecated
 Gestion des méthodes statiques
13
IBM Power Systems - IBM i
© IBM France 2017
Rétro incompatibilités
 Suppression des ASP et script tags
 La redéfinition d’un argument d’une fonction n’est plus possible
// Retourne une erreur fatale : Fatal error: Redefinition of
// parameter $valid…
14
IBM Power Systems - IBM i
© IBM France 2017
Rétro incompatibilités
 Retrait de la variable $HTTP_RAW_POST_DATA
Remplacer par le flux PHP php://input
 Listes complètes sur php.net :
– Rétro incompatibilités :
http://php.net/manual/en/migration70.incompatible.php
– Dépréciés :
http://php.net/manual/en/migration70.deprecated.php
15
IBM Power Systems - IBM i
© IBM France 2017
Nouveautés PHP 7
 PHP7 offre la possibilité de spécifier un type scalaire (string,
integer, float, boolean) pour les paramètres des fonctions
 Possibilité d’activer la validation stricte des types : utilsiation
de l’instruction declare(strict_types=1); en première
instruction du fichier
16
Affiche
Int(3)
Int(3)
Affiche
Int(3)
Error: Argument 1
passed to sum()
must be of the
type integer, float
given, called in -
on line 10
IBM Power Systems - IBM i
© IBM France 2017
Nouveautés PHP 7
 Fonctionne aussi avec les listes d’éléments d’un type donné
 Déclaration des types retours
17
Affiche Int(9)
IBM Power Systems - IBM i
© IBM France 2017
Nouvel opérateur de comparaisons PHP SPACE SHIPS
 Opérateur de comparaison (Combined Comparison
Operator) <=>
– identique aux fonctions strcmp() et version_compare() mais peut
comparer tous les types du moment qu’ils sont identiques de part et
d’autre de l’opérateur : chaînes, array, objets, ….
 ● Retourne 0 si égal
 ● Retourne -1 si la valeur de gauche est inférieure
 ● Retourne 1 si la valeur de droite est inférieure
18
IBM Power Systems - IBM i
© IBM France 2017
Null Coalesce Operator ??
 L’opérateur ?? retourne le résultat de l’opération de gauche
si celui-ci n’est pas NULL sinon le résultat de l’opération de
droite
 Ces opérateurs peuvent être enchaînés pour retourner le
premier résultat non null d’un ensemble.
<?php
$name = $_GET['name'] ?? $aBdd['name'] ?? 'default';
19
PHP 5 PHP 7
<?php
$name = ($_GET['name']) ?
$_GET['name'] : 'default';
<?php
$name = $_GET['name'] ?? 'default';
IBM Power Systems - IBM i
© IBM France 2017
Nouveautés PHP 7
 Nouvelle version du connecteur ibm_db2 1.9.9-zs6
– Ajout du support de PHP 7
– Apport de correctifs
20
IBM Power Systems - IBM i
© IBM France 2017
Zend Server 9.1
 Installation en parallèle d’une installation existante
– Les deux versions peuvent tourner en même temps
– Permet une migration des applications de la version 8 vers la version 9
– Menu GO ZENDPHP7/ZSMENU
– Sous-système ZENDPHP7
– Document root IFS : /www/zendphp7/htdocs/
– Binaires : /usr/local/zendphp7/
– Ports par défaut nouvelle installation :
– 10080 & 10081
– Ports par défaut installation en parallèle :
– 10090 & 10091
21
IBM Power Systems - IBM i
© IBM France 2017
Gestion 5250 : GO ZENDPHP7/ZSMENU
22
IBM Power Systems - IBM i
© IBM France 2017
Gestion 5250 : Configurations
23
IBM Power Systems - IBM i
© IBM France 2017
Fonctionnalités du Zend Server 9.1
 Consolidation des fonctionnalités existantes
– Z-Ray, Z-Ray Live!, Z-Ray History
– Job Queues
– Page Cache
– Code Tracing
– URL Insight
– Monitoring
 Nouveautés du Zend Server 9.1
– ZendDbi 10 (instance Maria DB) : MySQL pour IBM i
– DB2 Engine
– Job Queue Pulse
– Anonymisations (Personally Identifiable Information : PII)
24
IBM Power Systems - IBM i
© IBM France 2017
Z-Ray
 Z-Ray est un module du Zend Server arrivé depuis la version 7
 Très apprécié et utilisé de la communauté des développeurs,
cette fonctionnalité ne cesse d’évoluer
 Z-Ray permet de donner un maximum d’informations aux
développeurs sur l’exécution d’un script PHP
 Gain de temps pour le développeur
 Augmente la qualité du code
 Simple à configurer et à utiliser
25
IBM Power Systems - IBM i
© IBM France 2017
Configuration du Z-Ray
 Se configure depuis l’interface d’administration du Zend
Server
 Disabled :
Par défaut sur les
applications de
production
 Enabled :
Idéal pour les
environnements de
développement
 Selective :
Pour les
environnements
mixtes
26
IBM Power Systems - IBM i
© IBM France 2017
Utilisation de la barre Z-Ray
 Z-Ray se matérialise, côté navigateur, par la barre d’état
suivante :
 Page Requests : état global de la page (code retour http)
Très utile dans les applications avec des traitements ajax
27
IBM Power Systems - IBM i
© IBM France 2017
Utilisation de la barre Z-Ray
 Temps d’exécution et utilisation mémoire
 Visualisation du monitoring Zend Server
28
IBM Power Systems - IBM i
© IBM France 2017
Utilisation de la barre Z-Ray
 Visualisation de la log php (php.log)
 Avec plus d’informations si nécessaire grâce au backtracing
29
IBM Power Systems - IBM i
© IBM France 2017
Utilisation de la barre Z-Ray
 Les problèmes de performance se situant souvent au niveau
de la base de données, les développeurs apprécieront
l’analyse des requêtes base de données
 Et le backtracing
30
IBM Power Systems - IBM i
© IBM France 2017
Utilisation de la barre Z-Ray
 Décomposition des temps d’exécutions par fonctions PHP
– Natives
– Développées
 Visualisation des informations de la requête
31
IBM Power Systems - IBM i
© IBM France 2017
Configuration du Selective mode
 Pour un Zend Server faisant tourner des applications de
production et des applications en développements
 Pour un usage sécurisé et ponctuel du Z-Ray sur
l’application de production
 Permet de définir :
– Le développeur qui aura accès au
Z-Ray
– L’application à observer
– La durée de l’accès
32
IBM Power Systems - IBM i
© IBM France 2017
Configuration du Selective mode
 Définition du nom de l’accès
 Utilisation par token (sécurisé !)
 Définition de la durée de la validité de la règle
33
IBM Power Systems - IBM i
© IBM France 2017
Configuration du Selective mode
 Restriction sur les IP des développeurs autorisés
 Restriction sur les URL (applications)
34
IBM Power Systems - IBM i
© IBM France 2017
Configuration du Selective mode
 Configuration générale du Z-Ray
35
IBM Power Systems - IBM i
© IBM France 2017
Création et utilisation du token
 Dans le Zend Server
 Dans le navigateur du développeur
 Une fois le token renseigné, Z-Ray est actif sur la session de
navigation
36
IBM Power Systems - IBM i
© IBM France 2017
Z-Ray pour des audits
 L’utilisation première de Z-Ray est l’aide aux
développements
 Il peut être utilisé pour réaliser des audits des applications
existantes :
– Plus besoin de chercher dans les fichiers de logs
– Permet d’identifier des problèmes souvent laissés de côté car « la
page fonctionne »
– Permet d’identifier les problèmes de performances et de les résoudre
plus rapidement
– Les tests sont réalisés en fonction de scénarios de navigations réels
37
IBM Power Systems - IBM i
© IBM France 2017
Z-Ray Live !
 Analyse en temps réels de tous les traitements PHP
38
IBM Power Systems - IBM i
© IBM France 2017
Z-Ray Live !
 Utilise les fonctions du Z-Ray
 Permet d’être au plus proche des utilisateurs et de la réalité
 Permet d’analyser les traitements des web services !
39
IBM Power Systems - IBM i
© IBM France 2017
URL insight
 Accessible depuis Monitoring -> URL Insight
 Statistiques sur les exécutions des scripts PHP du serveur
– Temps de réponse
– Nombre de requêtes
40
IBM Power Systems - IBM i
© IBM France 2017
URL Insight
 Accès à un historique de snapshots Z-Ray organisés par
script PHP
 Suivi dans le temps des comportements d’un script
 Identification plus rapide des problèmes ou des régressions
41
IBM Power Systems - IBM i
© IBM France 2017
Configuration URL Insight
42
IBM Power Systems - IBM i
© IBM France 2017
Monitoring avec le Zend Server
 Visualisation agrégée des évènements monitorés par le
Zend Server
 Plus complet que la log PHP : statistiques, contexte
 Valeur ajoutée sur l’évènement : débogage, profile
43
IBM Power Systems - IBM i
© IBM France 2017
Configuration des règles de monitoring
 Ensemble de règles par application
44
IBM Power Systems - IBM i
© IBM France 2017
Règle de monitoring
45
IBM Power Systems - IBM i
© IBM France 2017
Nouveautés
Job Queue Pulse, Anonymisations (PII)
46
IBM Power Systems - IBM i
© IBM France 2017
Job Queue Pulse
 Un tableau de bord pour gérer au mieux tous les travaux
planifiés
47
IBM Power Systems - IBM i
© IBM France 2017
Anonymisations (PII)
 Système d’anonymisation dans les outils Z-Ray afin d’avoir
une utilisation sur la production
48
IBM Power Systems - IBM i
© IBM France 2017
Conclusion
 L’atout principal du Zend Server 9 sur IBM i est le gain de
performances apporté par le support de PHP 7
 La migration vers PHP 7 se fait simplement avec un coût de
développement au plus faible
 Les fonctionnalités du Zend Server orientées production sont
toujours disponibles et continuent d’évoluer
49
IBM Power Systems - IBM i
© IBM France 2017
Merci pour votre écoute !
Des questions ?
S43 – Passer à PHP 7 sous IBM i
Gautier DUMAS - gdumas@notos.fr
04 30 96 97 31
www.notos.fr

Contenu connexe

Tendances

Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Roland Benedetti
 
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
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overviewSymfonyMu
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3sitengo
 
DevOps illustré : la jungle de la configuration d'une application
DevOps illustré : la jungle de la configuration d'une applicationDevOps illustré : la jungle de la configuration d'une application
DevOps illustré : la jungle de la configuration d'une applicationgdigugli
 
AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelecjulien pauli
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3Nicolas Lœuillet
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfonyJeremy Gachet
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2Ahmed ABATAL
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation SymfonyJeremy Gachet
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHPjulien pauli
 
Symfony2 Presentation
Symfony2 PresentationSymfony2 Presentation
Symfony2 Presentationyllieth
 
Symfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureSymfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureStéphane ESCANDELL
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshopCyril Balit
 
Une application en deux heure - PHP Québec Janvier 2009
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
 
Symfony 2 : chapitre 1 - Présentation Générale
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éraleAbdelkader Rhouati
 

Tendances (18)

Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3
 
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]
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overview
 
Flex4.5 air3.0
Flex4.5 air3.0Flex4.5 air3.0
Flex4.5 air3.0
 
Symfony Best Practices
Symfony Best PracticesSymfony Best Practices
Symfony Best Practices
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3
 
DevOps illustré : la jungle de la configuration d'une application
DevOps illustré : la jungle de la configuration d'une applicationDevOps illustré : la jungle de la configuration d'une application
DevOps illustré : la jungle de la configuration d'une application
 
AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelec
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation Symfony
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHP
 
Symfony2 Presentation
Symfony2 PresentationSymfony2 Presentation
Symfony2 Presentation
 
Symfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureSymfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur Azure
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshop
 
Une application en deux heure - PHP Québec Janvier 2009
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
 
Symfony 2 : chapitre 1 - Présentation Générale
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
 

Similaire à S43 passer à php 7 sous IBM i

S29 valorisation de l'existant ibm i avec php
S29   valorisation de l'existant ibm i avec phpS29   valorisation de l'existant ibm i avec php
S29 valorisation de l'existant ibm i avec phpGautier DUMAS
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Ugif 09 2013 open source
Ugif 09 2013   open sourceUgif 09 2013   open source
Ugif 09 2013 open sourceUGIF
 
2011 09 powerha_guide_shareaix
2011 09 powerha_guide_shareaix2011 09 powerha_guide_shareaix
2011 09 powerha_guide_shareaixSylvain Lamour
 
Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...
Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...
Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...Solutions IT et Business
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
Ugif 09 2013 open source - session tech
Ugif 09 2013   open source - session techUgif 09 2013   open source - session tech
Ugif 09 2013 open source - session techUGIF
 
cours-syst (1).pdf
cours-syst (1).pdfcours-syst (1).pdf
cours-syst (1).pdfolfaharrabi2
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...
CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...
CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...Capgemini
 
Nouveautés IBM i 2015 par Phillipe Bourgeois, IBM France
Nouveautés IBM i 2015 par Phillipe Bourgeois, IBM FranceNouveautés IBM i 2015 par Phillipe Bourgeois, IBM France
Nouveautés IBM i 2015 par Phillipe Bourgeois, IBM FranceFresche Solutions
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsPhilippeBrogi
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Firas Kouẞàa
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideMicrosoft Technet France
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideMicrosoft
 

Similaire à S43 passer à php 7 sous IBM i (20)

S29 valorisation de l'existant ibm i avec php
S29   valorisation de l'existant ibm i avec phpS29   valorisation de l'existant ibm i avec php
S29 valorisation de l'existant ibm i avec php
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Ugif 09 2013 open source
Ugif 09 2013   open sourceUgif 09 2013   open source
Ugif 09 2013 open source
 
2011 09 powerha_guide_shareaix
2011 09 powerha_guide_shareaix2011 09 powerha_guide_shareaix
2011 09 powerha_guide_shareaix
 
Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...
Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...
Déployer une infrastructure de stockage en quelques minutes – IBM Spectrum Ac...
 
Symfony à la télé
Symfony à la téléSymfony à la télé
Symfony à la télé
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
Ugif 09 2013 open source - session tech
Ugif 09 2013   open source - session techUgif 09 2013   open source - session tech
Ugif 09 2013 open source - session tech
 
Flex Php E Seminar Fr
Flex Php E Seminar FrFlex Php E Seminar Fr
Flex Php E Seminar Fr
 
43_pps.pdf
43_pps.pdf43_pps.pdf
43_pps.pdf
 
cours-syst (1).pdf
cours-syst (1).pdfcours-syst (1).pdf
cours-syst (1).pdf
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...
CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...
CWIN17 Morocco / Microsoft re-invent .net with the future in mind amine belha...
 
Nouveautés IBM i 2015 par Phillipe Bourgeois, IBM France
Nouveautés IBM i 2015 par Phillipe Bourgeois, IBM FranceNouveautés IBM i 2015 par Phillipe Bourgeois, IBM France
Nouveautés IBM i 2015 par Phillipe Bourgeois, IBM France
 
Flex et Php Afup
Flex et Php AfupFlex et Php Afup
Flex et Php Afup
 
Intégration Continue et PHP
Intégration Continue et PHPIntégration Continue et PHP
Intégration Continue et PHP
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloads
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybride
 
System Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybrideSystem Center 2012 R2 en environnement hétérogène et hybride
System Center 2012 R2 en environnement hétérogène et hybride
 

S43 passer à php 7 sous IBM i

  • 1. © IBM France 2017 Université IBM i 2017 17 et 18 mai – IBM Client Center de Bois-Colombes S43 – Passer à PHP 7 sous IBM i Jeudi 18 mai – 15h15-16h45 Gautier DUMAS - NoToS
  • 2. IBM Power Systems - IBM i © IBM France 2017 NoToS  Expertise autour de l’IBM i – Sécurité – Regard moderne – Service – Formation, audit, développement…  PHP sur IBM i avec Zend – Modernisation – Web Services…  Développement de progiciels – Modernisation à valeur ajoutée des IBM i 3
  • 3. IBM Power Systems - IBM i © IBM France 2017 Introduction  Partenariat Zend / IBM depuis 2005  Stack PHP sur IBM i aujourd’hui en version 9  Le Zend Server est l’environnement PHP sur IBM i adapté : – Pour la production – Support, monitoring avancé, performances – Pour les développements – Z-Ray, Z-Ray Live!, URL Insight  Totalement intégré à l’IBM i – D’un point de vue du serveur – D’un point de vue des développements avec un ensemble de bibliothèques PHP pour IBM i 4
  • 4. IBM Power Systems - IBM i © IBM France 2017 PHP 7 Qu’est ce qui change ? 5
  • 5. IBM Power Systems - IBM i © IBM France 2017 PHP 7 – Le maître mot : performances ! 1. Réduction de l’utilisation des ressources (server, hardware etc.) PHP 7 est en moyenne 2x plus rapide que PHP 5.6 et consomme significativement moins de mémoires 2. Une satisfaction des utilisateurs Améliore l’experience utilisateur en réduisant les temps de réponses
  • 6. IBM Power Systems - IBM i © IBM France 2017 PHP 7.0 vs 5.6 More information @ zend.com (Nombres de requêtes traités par seconde)
  • 7. IBM Power Systems - IBM i © IBM France 2017 Roadmap PHP 8 http://php.net/supported-versions.php
  • 8. IBM Power Systems - IBM i © IBM France 2017 Se préparer à passer à PHP 7  Une rétrocompatibilité presque totale  Permet de migrer nos applications PHP 5.6 à PHP7 sans trop d’efforts  Des outils sont à dispositions dans le Zend Studio pour aider à repérer les incompatibilités  Des performances au rendez vous sans développement supplémentaire 9
  • 9. IBM Power Systems - IBM i © IBM France 2017 Se préparer à PHP 7 grâce au Zend Studio 10
  • 10. IBM Power Systems - IBM i © IBM France 2017 Principales incompatibilités  suppression des fonctionnalités dépréciées  http://php.net/manual/en/migration70.incompatible.php  Exemples – L’extension MySQL (dépréciée depuis PHP5.5) qui est l’ancien connecteur et jeu de fonctions pour interagir avec le sgbdr MySQL Préférez l’utilisation de MySQLi ou PDO_MySQL – L’extension ereg (dépréciée depuis PHP 5.3) qui permet de rechercher une expression régulière  Préférez l’utilisation du jeu de fonctions preg_** (PCRE) 11
  • 11. IBM Power Systems - IBM i © IBM France 2017 Passage en deprecated  Utilisation des constructeurs de classes PHP4 12
  • 12. IBM Power Systems - IBM i © IBM France 2017 Passage en deprecated  Gestion des méthodes statiques 13
  • 13. IBM Power Systems - IBM i © IBM France 2017 Rétro incompatibilités  Suppression des ASP et script tags  La redéfinition d’un argument d’une fonction n’est plus possible // Retourne une erreur fatale : Fatal error: Redefinition of // parameter $valid… 14
  • 14. IBM Power Systems - IBM i © IBM France 2017 Rétro incompatibilités  Retrait de la variable $HTTP_RAW_POST_DATA Remplacer par le flux PHP php://input  Listes complètes sur php.net : – Rétro incompatibilités : http://php.net/manual/en/migration70.incompatible.php – Dépréciés : http://php.net/manual/en/migration70.deprecated.php 15
  • 15. IBM Power Systems - IBM i © IBM France 2017 Nouveautés PHP 7  PHP7 offre la possibilité de spécifier un type scalaire (string, integer, float, boolean) pour les paramètres des fonctions  Possibilité d’activer la validation stricte des types : utilsiation de l’instruction declare(strict_types=1); en première instruction du fichier 16 Affiche Int(3) Int(3) Affiche Int(3) Error: Argument 1 passed to sum() must be of the type integer, float given, called in - on line 10
  • 16. IBM Power Systems - IBM i © IBM France 2017 Nouveautés PHP 7  Fonctionne aussi avec les listes d’éléments d’un type donné  Déclaration des types retours 17 Affiche Int(9)
  • 17. IBM Power Systems - IBM i © IBM France 2017 Nouvel opérateur de comparaisons PHP SPACE SHIPS  Opérateur de comparaison (Combined Comparison Operator) <=> – identique aux fonctions strcmp() et version_compare() mais peut comparer tous les types du moment qu’ils sont identiques de part et d’autre de l’opérateur : chaînes, array, objets, ….  ● Retourne 0 si égal  ● Retourne -1 si la valeur de gauche est inférieure  ● Retourne 1 si la valeur de droite est inférieure 18
  • 18. IBM Power Systems - IBM i © IBM France 2017 Null Coalesce Operator ??  L’opérateur ?? retourne le résultat de l’opération de gauche si celui-ci n’est pas NULL sinon le résultat de l’opération de droite  Ces opérateurs peuvent être enchaînés pour retourner le premier résultat non null d’un ensemble. <?php $name = $_GET['name'] ?? $aBdd['name'] ?? 'default'; 19 PHP 5 PHP 7 <?php $name = ($_GET['name']) ? $_GET['name'] : 'default'; <?php $name = $_GET['name'] ?? 'default';
  • 19. IBM Power Systems - IBM i © IBM France 2017 Nouveautés PHP 7  Nouvelle version du connecteur ibm_db2 1.9.9-zs6 – Ajout du support de PHP 7 – Apport de correctifs 20
  • 20. IBM Power Systems - IBM i © IBM France 2017 Zend Server 9.1  Installation en parallèle d’une installation existante – Les deux versions peuvent tourner en même temps – Permet une migration des applications de la version 8 vers la version 9 – Menu GO ZENDPHP7/ZSMENU – Sous-système ZENDPHP7 – Document root IFS : /www/zendphp7/htdocs/ – Binaires : /usr/local/zendphp7/ – Ports par défaut nouvelle installation : – 10080 & 10081 – Ports par défaut installation en parallèle : – 10090 & 10091 21
  • 21. IBM Power Systems - IBM i © IBM France 2017 Gestion 5250 : GO ZENDPHP7/ZSMENU 22
  • 22. IBM Power Systems - IBM i © IBM France 2017 Gestion 5250 : Configurations 23
  • 23. IBM Power Systems - IBM i © IBM France 2017 Fonctionnalités du Zend Server 9.1  Consolidation des fonctionnalités existantes – Z-Ray, Z-Ray Live!, Z-Ray History – Job Queues – Page Cache – Code Tracing – URL Insight – Monitoring  Nouveautés du Zend Server 9.1 – ZendDbi 10 (instance Maria DB) : MySQL pour IBM i – DB2 Engine – Job Queue Pulse – Anonymisations (Personally Identifiable Information : PII) 24
  • 24. IBM Power Systems - IBM i © IBM France 2017 Z-Ray  Z-Ray est un module du Zend Server arrivé depuis la version 7  Très apprécié et utilisé de la communauté des développeurs, cette fonctionnalité ne cesse d’évoluer  Z-Ray permet de donner un maximum d’informations aux développeurs sur l’exécution d’un script PHP  Gain de temps pour le développeur  Augmente la qualité du code  Simple à configurer et à utiliser 25
  • 25. IBM Power Systems - IBM i © IBM France 2017 Configuration du Z-Ray  Se configure depuis l’interface d’administration du Zend Server  Disabled : Par défaut sur les applications de production  Enabled : Idéal pour les environnements de développement  Selective : Pour les environnements mixtes 26
  • 26. IBM Power Systems - IBM i © IBM France 2017 Utilisation de la barre Z-Ray  Z-Ray se matérialise, côté navigateur, par la barre d’état suivante :  Page Requests : état global de la page (code retour http) Très utile dans les applications avec des traitements ajax 27
  • 27. IBM Power Systems - IBM i © IBM France 2017 Utilisation de la barre Z-Ray  Temps d’exécution et utilisation mémoire  Visualisation du monitoring Zend Server 28
  • 28. IBM Power Systems - IBM i © IBM France 2017 Utilisation de la barre Z-Ray  Visualisation de la log php (php.log)  Avec plus d’informations si nécessaire grâce au backtracing 29
  • 29. IBM Power Systems - IBM i © IBM France 2017 Utilisation de la barre Z-Ray  Les problèmes de performance se situant souvent au niveau de la base de données, les développeurs apprécieront l’analyse des requêtes base de données  Et le backtracing 30
  • 30. IBM Power Systems - IBM i © IBM France 2017 Utilisation de la barre Z-Ray  Décomposition des temps d’exécutions par fonctions PHP – Natives – Développées  Visualisation des informations de la requête 31
  • 31. IBM Power Systems - IBM i © IBM France 2017 Configuration du Selective mode  Pour un Zend Server faisant tourner des applications de production et des applications en développements  Pour un usage sécurisé et ponctuel du Z-Ray sur l’application de production  Permet de définir : – Le développeur qui aura accès au Z-Ray – L’application à observer – La durée de l’accès 32
  • 32. IBM Power Systems - IBM i © IBM France 2017 Configuration du Selective mode  Définition du nom de l’accès  Utilisation par token (sécurisé !)  Définition de la durée de la validité de la règle 33
  • 33. IBM Power Systems - IBM i © IBM France 2017 Configuration du Selective mode  Restriction sur les IP des développeurs autorisés  Restriction sur les URL (applications) 34
  • 34. IBM Power Systems - IBM i © IBM France 2017 Configuration du Selective mode  Configuration générale du Z-Ray 35
  • 35. IBM Power Systems - IBM i © IBM France 2017 Création et utilisation du token  Dans le Zend Server  Dans le navigateur du développeur  Une fois le token renseigné, Z-Ray est actif sur la session de navigation 36
  • 36. IBM Power Systems - IBM i © IBM France 2017 Z-Ray pour des audits  L’utilisation première de Z-Ray est l’aide aux développements  Il peut être utilisé pour réaliser des audits des applications existantes : – Plus besoin de chercher dans les fichiers de logs – Permet d’identifier des problèmes souvent laissés de côté car « la page fonctionne » – Permet d’identifier les problèmes de performances et de les résoudre plus rapidement – Les tests sont réalisés en fonction de scénarios de navigations réels 37
  • 37. IBM Power Systems - IBM i © IBM France 2017 Z-Ray Live !  Analyse en temps réels de tous les traitements PHP 38
  • 38. IBM Power Systems - IBM i © IBM France 2017 Z-Ray Live !  Utilise les fonctions du Z-Ray  Permet d’être au plus proche des utilisateurs et de la réalité  Permet d’analyser les traitements des web services ! 39
  • 39. IBM Power Systems - IBM i © IBM France 2017 URL insight  Accessible depuis Monitoring -> URL Insight  Statistiques sur les exécutions des scripts PHP du serveur – Temps de réponse – Nombre de requêtes 40
  • 40. IBM Power Systems - IBM i © IBM France 2017 URL Insight  Accès à un historique de snapshots Z-Ray organisés par script PHP  Suivi dans le temps des comportements d’un script  Identification plus rapide des problèmes ou des régressions 41
  • 41. IBM Power Systems - IBM i © IBM France 2017 Configuration URL Insight 42
  • 42. IBM Power Systems - IBM i © IBM France 2017 Monitoring avec le Zend Server  Visualisation agrégée des évènements monitorés par le Zend Server  Plus complet que la log PHP : statistiques, contexte  Valeur ajoutée sur l’évènement : débogage, profile 43
  • 43. IBM Power Systems - IBM i © IBM France 2017 Configuration des règles de monitoring  Ensemble de règles par application 44
  • 44. IBM Power Systems - IBM i © IBM France 2017 Règle de monitoring 45
  • 45. IBM Power Systems - IBM i © IBM France 2017 Nouveautés Job Queue Pulse, Anonymisations (PII) 46
  • 46. IBM Power Systems - IBM i © IBM France 2017 Job Queue Pulse  Un tableau de bord pour gérer au mieux tous les travaux planifiés 47
  • 47. IBM Power Systems - IBM i © IBM France 2017 Anonymisations (PII)  Système d’anonymisation dans les outils Z-Ray afin d’avoir une utilisation sur la production 48
  • 48. IBM Power Systems - IBM i © IBM France 2017 Conclusion  L’atout principal du Zend Server 9 sur IBM i est le gain de performances apporté par le support de PHP 7  La migration vers PHP 7 se fait simplement avec un coût de développement au plus faible  Les fonctionnalités du Zend Server orientées production sont toujours disponibles et continuent d’évoluer 49
  • 49. IBM Power Systems - IBM i © IBM France 2017 Merci pour votre écoute ! Des questions ? S43 – Passer à PHP 7 sous IBM i Gautier DUMAS - gdumas@notos.fr 04 30 96 97 31 www.notos.fr