google appengine avec php

17
GOOGLE APPENGINE AVEC PHP SUMBANG CHRISTIAN BAUREL SKYPE : TEMZY1988 TECHNICAL MANAGER GDG DOUALA FACEBOOK : SUMBANG CHRISTIAN BAUREL GOOGLE+ : SUMBANG CHRISTIAN BAUREL TWITTER : @CHRISTIANBAUREL

Upload: christian-sumbang

Post on 23-Jun-2015

1.164 views

Category:

Education


2 download

DESCRIPTION

Introduction sommaire de PHP avec Google AppEngine

TRANSCRIPT

Page 1: Google appengine avec php

GOOGLE APPENGINE AVEC PHP

SUMBANG CHRISTIAN BAUREL

SKYPE : TEMZY1988

TECHNICAL MANAGER GDG DOUALA

FACEBOOK : SUMBANG CHRISTIAN BAUREL

GOOGLE+ : SUMBANG CHRISTIAN BAUREL

TWITTER : @CHRISTIANBAUREL

Page 2: Google appengine avec php

LE DÉBUT DE L’AVENTURE : MAI 2013

• AU LANCEMENT DE LA PLATEFORME APPENGINE PHP N’ÉTAIT PAS PARMI LES LANGAGES

SUPPORTÉS, JAVA D’AILLEURS N’ÉTAIT PAS PRISE EN CHARGE; SEUL PYTHON ÉTAIT SUPPORTÉS

• QUELQUES ANNÉES PLU TARD JAVA A ÉTÉ PRISE EN CHARGE SUITE A LA FORTE DEMANDE DE LA

COMMUNAUTÉ JAVA, PLUS TARD GO LE LANGAGE PROPRIÉTAIRE DE GOOGLE A LUI AUSSI ÉTÉ

PRIS EN CHARGE PAR LA PLATEFORME

• LA PRISE EN CHARGE DE PHP EST SURVENUE EN MAI DERNIER LORS DU GOOGLE IO, CERTES

CETTE PRISE EN CHARGE EST ENCORE LIMITE PAR RAPPORT AU AUTRES LANGAGES TEL JAVA ET

PYTHON

Page 3: Google appengine avec php

APPENGINE ET PHP : L’UNION PARFAITE

• POURQUOI UNION PARFAITE ? PHP EST LE LANGAGE WEB LE PLUS POPULAIRE ET LE PLUS

UTILISÉ AU MONDE, APPENGINE EST UNE PLATEFORME D’HÉBERGEMENT CLOUD, NE PAS

PROPOSER PHP COMME LANGAGE SUPPORTÉ PAR APPENGINE ÉTAIT INCOMPRÉHENSIBLE DE

MON POINT DE VUE

• AVEC LE SUPPORT DE PHP, APPENGINE S’OUVRE A UNE ÉNORME COMMUNAUTÉ DE

DÉVELOPPEURS ET A DES MILLIONS D’APPLICATIONS POTENTIELS QUI Y SERONT HÉBERGÉES

• LA PRISE EN CHARGE DE PHP EST ENCORE A SES DÉBUTS, MAIS TOUT ME LAISSE PENSER QUE

D’ICI QUELQUES ANNÉES, ELLE SERA COMPLÈTE ET PARFAITEMENT UTILISABLE

Page 4: Google appengine avec php

APPENGINE ET PHP : LES LIMITES ET RESTRICTIONS

• COMME DIT, LA PRISE EN CHARGE DE PHP EST ENCORE AU STADE EMBRYONNAIRE, CERTAINES

EXTENSIONS NE SONT PAS PRISE EN CHARGE, MAIS LE NÉCESSAIRE POUR LE DÉVELOPPEMENT

EST ACTIF

• PARMI LES EXTENSIONS PHP ACTIVES, ON RETROUVERA DES EXTENSIONS TEL : APC, BCMATCH,

CORE, CALENDAR, CTYPE, DATE, DOM, EREG, FILTER, GD, HASH, ICONV, JSON, LIBXML,

MBSTRING, MSCRIPT, MEMCACHE, MEMCACHED, MYSQL, MYSQLI, MSQLND, OAUTH, OPENSSL,

PCRE, PDO, PDO_MYSQL, REFLECTION, SESSION, SHMOP, SIMPLEXML, SOAP, SPL, STANDARD,

TOKENIZER, XML, XMLREADER, XMLREADER, ZLIB

Page 5: Google appengine avec php

APPENGINE ET PHP : LIMITE ET RESTRICTIONS

• CERTAINES FONCTIONNALITÉS DE PHP ONT ÉTÉ DÉSACTIVÉES POUR DES RAISONS DE SÉCURITÉ,

CERTAINES PEUVENT ÊTRE ACTIVES AU BESOIN DANS LE FICHIER PHP.INI, ENTRE AUTRES ON A :

DISK_FREE_SPACE(), DISK_TOTAL_SPACE(), DISKFREESPACE(), ESCAPESHELLARG() AND

ESCAPESHELLCMD(), EXEC(), FSOCKOPEN(), GETHOSTNAME(), HIGHLIGHT_FILE(), LINK(),

PASSTHRU(), POPEN(), PROC_CLOSE(), PROG_GET_STATUS(), PROC_NICE(), PROC_OPEN()

AND PROC_TERMINATE(), SET_TIME_LIMIT(), SHELL_EXEC(), SHOW_SOURCE(), SYMLINK(),

SYSTEM(), TMPFILE(), TEMPNAM()

Page 6: Google appengine avec php

APPENGINE ET PHP : LIMITES ET RESTRICTIONS

• IL EST POSSIBLE D’UTILISER DU CODE PHP DANS SES APP APPENGINE, MAIS CELA DOIT ÊTRE

UNE SYNTAXE PUR PHP

• DE MÊME IL EST POSSIBLE D’INTÉGRER HTML, JAVASCRIPT ET CSS DANS NOS APPLICATIONS

APPENGINE, CONCERNANT JAVASCRIPT ET CSS NOUS DEVONS SIGNALER LEUR UTILISATION

DANS LE FICHIER DE CONFIGURATION DE NOTRE APPLICATION (APP.YAML), NOUS

REVIENDRONS SUR CE FICHIER PLUS TARD

• LA VERSION DE PHP SUPPORTÉS POUR L’INSTANT EST LA 5.4, VOTRE APPLICATION DOIT DONC

ÊTRE FAITE AU MINIMUM AVEC LA VERSION 5.4 DE PHP

Page 7: Google appengine avec php

APPENGINE ET PHP : QUOTAS ET SANDBOX

• LE SANDBOX SIGNIFIE BAC A SABLE EN FRANÇAIS, C’EST LE LIEU OU EST EXÉCUTÉ VOTRE

APPLICATION APPENGINE, C’EST UN ESPACE DÉDIÉE À L’EXÉCUTION DE VOTRE APPLICATION SANS

AUCUNE INCIDENCE SUR LES AUTRES APPLICATIONS HÉBERGÉES PAR APPENGINE OU SUR LA

PLATEFORME APPENGINE EN GÉNÉRAL

• COMME CHAQUE APPLICATION APPENGINE, AVEC PHP VOUS AVEZ DROIT A UN QUOTA

D’UTILISATION SUR LES OUTILS ET SERVICES DE GOOGLE, UNE FOIS CE QUOTAS FRANCHIS, VOUS

NE POUVEZ PLUS UTILISÉ LE DIT SERVICE, POUR LE FAIRE VOUS DEVEZ SOUSCRIRE DE NOUVEAU

• A LA CRÉATION DE VOTRE APPLICATION, VOUS DÉFINISSEZ LES QUOTAS POUR CHAQUE SERVICES

Page 8: Google appengine avec php

INSTALLATION DU PHP SDK APPENGINE

• L’EXÉCUTION D’APPENGINE SUR PHP NÉCESSITE D’AVOIR AU PRÉABLE PYTHON SUR SA

MACHINE, DE CE FAIT POUR INSTALLER LE PHP SDK VOUS PROCUREZ LES OUTILS SUIVANTS :

• PYTHON

• PHP

• APACHE

• MYSQL

• APPENGINE POUR PHP

Page 9: Google appengine avec php

INSTALLATION DU PHP SDK APPENGINE

• TÉLÉCHARGEZ ET INSTALLEZ LA VERSION DE PYTHON CORRESPONDANTE A VOTRE SYSTÈME (

DE PRÉFÉRENCE LA 2.7 )

• CONFIGUREZ L’ENVIRONNEMENT PYTHON SUR VOTRE MACHINE EN AJOUTANT A LA VARIABLE

SYSTÈME LE RÉPERTOIRE VERS VOTRE INSTALLATION DE PYTHON ( C:/PYTHON27 )

• OUVREZ L’INVITE DE COMMANDE ET TAPEZ PYTHON, SI TOUT ES OK, VOUS VERREZ LA

VERSION ET VOUS AUREZ AUSSI L’INTERPRÉTEUR PYTHON

• UNE FOIS PYTHON INSTALLÉ, INSTALLÉ AUSSI MYSQL, ET APACHE

Page 10: Google appengine avec php

INSTALLATION DU PHP SDK APPENGINE

• L’INSTALLATION DE PHP N’EST PAS NÉCESSAIRE CAR APPENGINE EMBARQUE UNE VERSION DE

PHP, MAIS RIEN N’EMPÊCHE D’INSTALLER PHP INDÉPENDAMMENT DE APPENGINE

• PROCÉDEZ MAINTENANT À L’INSTALLATION D’APPENGINE QUE VOUS VENEZ DE TÉLÉCHARGEZ

• UNE FOIS CELA FAIT, VOTRE ENVIRONNEMENT APPENGINE EST OPÉRATIONNEL ET VOUS

POUVEZ DES A PRÉSENT COMMENCER A CRÉER VOS APPLICATIONS

Page 11: Google appengine avec php
Page 12: Google appengine avec php
Page 13: Google appengine avec php

EXÉCUTION DE NOTRE APPLICATION APPENGINE

• UNE FOIS NOTRE APPLICATION APPENGINE CRÉE, NOUS AVONS LE FICHIER APP.YAML QUI NOUS

DONNE LES INFOS DE BASES DE NOTRE APPLICATION ( VERSION, EXÉCUTEUR, NOM DE

L’APPLICATION, FICHIERS STATIQUES, RÉPERTOIRES IMAGES, … )

• POUR EXÉCUTER NOTRE APPLICATION APPENGINE, NOUS ALLONS EN LIGNE DE COMMANDE ET

EXÉCUTONS LA COMMANDE SUIVANTE : PATH_GOOGLE_APPENGINE/DEV_APPSERVER.PY PATH-TO-

YOUR-APP OU GOOGLE_APPENGINE/DEV_APPSERVER.PY --PORT=NUM_PORT PATH-TO-YOUR-APP

SI LE PORT PAR DEFAUT (8080) EST OCCUPÉE

• POUR ARRÉTER SON SERVEUR VOICE LES COMBINAISONS DE TOUCHES A FAIRE : CONTROL-C SOUS

MAC OU LINUX, ET CONTROL-BREAK SOUS WINDOWS

• VOUS POUVEZ AUSSI TESTER VOS APPLICATIONS VIA L’INTERFACE APPENGINE SANS UTILISER LA

LIGNE DE COMMANDE

Page 14: Google appengine avec php

APPENGINE ET PHP : BASE DE DONNÉES

• APPENGINE POUR PHP DISPOSE DE DEUX MOYENS DE GESTION DES DONNÉES, PLUS

EXACTEMENT 2 ARCHITECTURES DE BASE DE DONNÉES SONT PRISES EN CHARGE

• LES BASES DE DONNÉES RELATIONNELLES ET ICI ON FAIT APPEL A GOOGLE CLOUD SQL, IL

S’AGIT EN FAIT D’UNE BASE DE DONNÉES MYSQL DANS LE CLOUD

• LE DATASTORE, IL S’AGIT ICI D’UNE BASE DE DONNÉES NON RELATIONNELLES, CE TYPE

D’ARCHITECTURE EST AUSSI CONNUE SOUS LE NOM DE NO-SQL ( CELA NE VEUT PAS DIRE PAS

DE SQL, MAIS PLUTÔT NON A L’APPROCHE RELATIONNELLE DES BASES DE DONNÉES

CLASSIQUES )

Page 15: Google appengine avec php

APPENGINE ET PHP : BASE DE DONNÉES

• COMME DIT PLUTÔT, GOOGLE CLOUD SQL, C’EST MYSQL DANS LE CLOUD, DONC LES

REQUÊTES À UTILISER DANS VOTRE CODE SONT DES REQUÊTES SQL NORMALES, ON PEUT

AUSSI UTILISER DES OUTILS TEL PDO, OU ALORS FAIRE UNE CHAINE DE CONNEXION MYSQL

STANDARD

• POUR CEUX QUI DÉVELOPPENT LEUR APPLIS EN LOCALE, JE LEUR CONSEILLE DONC DE GREFFER

UNE BD MYSQL A LEUR PROJET, PUIS AU MOMENT DE DÉPLOYER L’APPLICATION SUR

APPENGINE, QU’IL FASSE UN EXPORT DE LEUR BD QU’IL IMPORTERONS SUR LA PLATEFORME

• ILS AURONT JUSTE A CHANGER LA CHAINE DE CONNEXION, POUR RAPPEL SUR APPENGINE

CHAQUE BD CORRESPOND À UNE INSTANCE DE GOOGLE CLOUD SQL

Page 16: Google appengine avec php

APPENGINE ET PHP : BASE DE DONNÉES

• JE PARTAGERAIS AVEC VOUS D’ICI PEU UN TUTO SUR COMMENT CRÉER ET CONFIGURER UNE

INSTANCE GOOGLE CLOUD SQL

• MAINTENANT, GOOGLE CLOUD SQL CONTRAIREMENT AU DATASTORE N’EST PAS GRATUIT, DE

CE FAIT POUR CRÉER VOTRE INSTANCE ON VOUS DEMANDERA LE NUMÉRO DE VOTRE CARTE

VISA

• LA FACTURATION EST DE L’ORDRE DE 12F/HEURE, VOUS N’ÊTES FACTURÉ QUE SI VOTRE

APPLICATION FAIT APPEL À L’INSTANCE GOOGLE CLOUD SQL

• L’AVANTAGE DE GOOGLE CLOUD SQL EST QU’IL EST ASSEZ FAMILIER A LA PLUPART DES

DÉVELOPPEURS CONTRAIREMENT AU DATASTORE

Page 17: Google appengine avec php

APPENGINE ET PHP : BASE DE DONNÉES

• LE DATASTORE EST L’AUTRE MOYEN DE STOCKAGE QUE PROPOSE APPENGINE, L’UTILISATION

PEUT S’AVÉRER TRÈS COMPLIQUER POUR LE DÉVELOPPEMENT PHP, EN JAVA ET PYTHON

L’UTILISATION SEMBLE PLUS SIMPLE

• LE DATASTORE COMME DIT PLUTÔT EST UN ARCHITECTURE DE BD NON RELATIONNELLE,

ARCHITECTURE CONNU SOUS LE NOM DE NO-SQL, LE NO-SQL PRÉCONISE QUE LES TABLES DE

LA BD N’ONT PAS UNE STRUCTURE RIGIDE, PAR EXEMPLE DANS UNE MÊME TABLE ON PEUT

AVOIR UN ENREGISTREMENT DE 3 VALEURS ET UN AUTRE ENREGISTREMENT DE 5 VALEURS,

• L’UTILISATION DU DATASTORE SE FAIT TOUJOURS VIA UNE INSTANCE