Formation PHP5 v1.10
Formation PHP5 v1.10
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 2
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 3
Introduction
Optimisation des développements par l’utilisation de briques
logicielles
Réutiliser les briques dans d’autres applications
Développer et valider indépendamment les briques
Ne pas réinventer la roue
Fiabilité
Gain de temps
BeOtic
BeOtic 4
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 5
Programmation Orientée Objet (POO)
Classes, propriétés, méthodes
Constructeur, destructeur
Héritage et agrégation
PEAR
PHPLib
BeOtic
BeOtic 6
Programmation Orientée Objet (POO)
Classes, propriétés, méthodes
Constructeur, destructeur
Héritage et agrégation
PEAR
PHPLib
BeOtic
BeOtic 7
POO : Classes, propriétés, méthodes
Classe
Bloc regroupant un ensemble de propriétés et de méthodes. Plusieurs
instances possibles. Déclaration via le mot clé « class ». Instanciation via le
mot clé « new » (on obtient ainsi un objet ou instance).
Propriété
Variable interne à une classe. Liée à l’instance. Peut aussi être appelée
attribut.
Méthode
BeOtic
BeOtic 8
POO : Classes, propriétés, méthodes
Déclaration
Déclaration d’une classe via « class »
BeOtic
BeOtic 9
POO : Classes, propriétés, méthodes
Déclaration
Déclaration d’une méthode/fonction sans paramètre
BeOtic
BeOtic 10
POO : Classes, propriétés, méthodes
Accès
Instanciation d’une classe via « new »
² Affectation
Accès
BeOtic
BeOtic 11
POO : Classes, propriétés, méthodes
Visibilité et protection
En PHP, il est possible d’associer une visibilité à un attribut ou à une
méthode.
Public
Protected
Private
BeOtic
BeOtic 12
POO : Classes, propriétés, méthodes
Visibilité et protection : public
BeOtic
BeOtic 13
POO : Classes, propriétés, méthodes
Visibilité et protection : protected
Déclaration de la propriété
« protected »
BeOtic
BeOtic 14
POO : Classes, propriétés, méthodes
Visibilité et protection : private
BeOtic
BeOtic 15
POO : Classes, propriétés, méthodes
Déclaration d’une classe
Déclaration de la classe
Déclaration des
attributs/propriétés
Déclaration des
méthodes/fonctions
BeOtic
BeOtic 16
Travaux Pratiques
TP 1
Classe / Instanciation
BeOtic
BeOtic 17
Programmation Orientée Objet (POO)
Classes, propriétés, méthodes
Constructeur, destructeur
Héritage et agrégation
PEAR
PHPLib
BeOtic
BeOtic 18
POO : Constructeur, destructeur
Introduction
En PHP 5 le constructeur est déclaré par la méthode « __construct() » et le
destructeur par la méthode « __destruct() ».
BeOtic
BeOtic 19
POO : Constructeur, destructeur
Introduction
Constructeur sans
paramètres
Constructeur avec
paramètre
BeOtic
BeOtic 20
POO : Constructeur, destructeur
Introduction
Constructeur avec
plusieurs paramètres
Paramètre facultatif
BeOtic
BeOtic 21
POO : Constructeur, destructeur
Introduction
Exemple d’un constructeur et d’un destructeur :
Déclaration du
constructeur de la classe
Déclaration du
destructeur de la classe
BeOtic
BeOtic 22
POO : Constructeur, destructeur
Appel implicite vs explicite
Les méthodes « __construct() » et « __destruct() » sont implicitement
appelées par le moteur.
BeOtic
BeOtic 23
POO : Constructeur, destructeur
Appel implicite vs explicite
Appel explicite du
constructeur de la classe
parente
La classe « Livre » hérite
de la classe « Document »
Appel implicite du
constructeur de la classe
« Livre » Appel explicite du
destructeur de la classe
parente
Appel implicite du
destructeur de la classe
« Livre »
BeOtic
BeOtic 24
POO : Bonnes pratiques
Règle de nommage des variables/paramètres
Utile pour s’y retrouver dans le code
Meilleur compréhension
Exemples :
- Préfixe pour les paramètres (pParam1,
pParam2…)
BeOtic
BeOtic 25
Travaux Pratiques
TP 1
Classe / Instanciation
Constructeur
BeOtic
BeOtic 26
Programmation Orientée Objet (POO)
Classes, propriétés, méthodes
Constructeur, destructeur
Héritage et agrégation
PEAR
PHPLib
BeOtic
BeOtic 27
POO : Héritage et agrégation
Règle de propagation
L’héritage est utilisé afin d’adapter une classe à ses besoins. Ceci en
modifiant certaines de ses caractéristiques.
BeOtic
BeOtic 28
POO : Héritage et agrégation
Règle de propagation
Héritage de la classe
« Document » Un livre est composé
d’une « Preface »
(Composition)
Surcharge du constructeur
de la classe parente
« Document »
BeOtic
BeOtic 29
POO : Héritage et agrégation
Polymorphisme
BeOtic
BeOtic 30
POO : Héritage et agrégation
Polymorphisme
BeOtic
BeOtic 31
Programmation Orientée Objet (POO)
Classes, propriétés, méthodes
Constructeur, destructeur
Héritage et agrégation
PEAR
PHPLib
BeOtic
BeOtic 32
POO : Introduction aux concepts avancés de POO
Classe abstraite
Une classe abstraite ne peut être instanciée, elle est déclarée avec le mot
clé « abstract ».
Les méthodes abstraites sont seulement déclarées par leur signature (pas
d’implémentation).
BeOtic
BeOtic 33
POO : Introduction aux concepts avancés de POO
Classe abstraite
Déclaration de la classe
abstraite
Centralisation de
l’affectation du nom
Héritage de la classe
abstraite
BeOtic
BeOtic 34
POO : Introduction aux concepts avancés de POO
Classe abstraite
Déclaration de la classe
abstraite
Centralisation de
l’affectation du nom
Héritage de la classe
abstraite
BeOtic
BeOtic 35
POO : Introduction aux concepts avancés de POO
Interface
Permet de définir des méthodes visibles depuis l’extérieur (API : Application
Programming Interface)
Un peu comme une classe abstraite, sauf qu’aucune méthode n’y est
implémentées.
Permet de déclarer des constantes. (mot clé « const »), accessible via
« NomClasse::nomConstante »
BeOtic
BeOtic 36
POO : Introduction aux concepts avancés de POO
Interface
Déclaration de l’interface
Implémentation de l’interface
Implémentation des
méthodes de l’interface
BeOtic
BeOtic 37
POO : Introduction aux concepts avancés de POO
Interface
Déclaration de l’interface
Implémentation de l’interface
Implémentation des
méthodes de l’interface
BeOtic
BeOtic 38
POO : Introduction aux concepts avancés de POO
Design Pattern
Des modèles de conception disponibles afin de ne pas « réinventer la
roue » à chaque projet.
BeOtic
BeOtic 39
POO : Introduction aux concepts avancés de POO
Design Pattern : MVC
Séparation des parties (présentation, traitement, accès données). Exemple
simple : un fichier par partie.
Contrôleur
Vue
Modèle
BeOtic
BeOtic 40
POO : Introduction aux concepts avancés de POO
Design Pattern : Singleton
BeOtic
BeOtic 41
POO : Introduction aux concepts avancés de POO
Design Pattern : Factory
BeOtic
BeOtic 42
Travaux Pratiques
TP 1
Héritage / Abstraction
BeOtic
BeOtic 43
Programmation Orientée Objet (POO)
Classes, propriétés, méthodes
Constructeur, destructeur
Héritage et agrégation
PEAR
PHPLib
BeOtic
BeOtic 44
POO : PEAR
Utilisation de composants utilitaires
PEAR est l’abréviation de « PHP Extension And Application Repository ».
Tous les scripts respectent un certain nombre de règles qui les rendent
portables et réutilisables.
http://pear.php.net/
BeOtic
BeOtic 45
POO : PEAR
Exemple d’utilisation du paquet Date
BeOtic
BeOtic 46
POO : PEAR
Exemple d’utilisation du paquet MDB2
Connexion à la base de
données
Exécution de la requête
BeOtic
BeOtic 47
POO : PEAR
Exemple d’utilisation du paquet MDB2
Parcours de l’ensemble
des lignes du résultat
BeOtic
BeOtic 48
Travaux Pratiques
TP 1
PEAR
BeOtic
BeOtic 49
Programmation Orientée Objet (POO)
Classes, propriétés, méthodes
Constructeur, destructeur
Héritage et agrégation
PEAR
PHPLib
BeOtic
BeOtic 50
POO : PHPLib
Structure, conventions, paramètres et principales librairies
PHPLib est un ensemble de classes complétant les fonctionnalités du
langage php. (http://www.sanisoft.com/phplib/manual/templateMethods.php )
Exemples de classes :
« DB_Sql » permet de gérer les connexions aux bases de données
(connexion, maniement des données, déconnexion…).
« Auth » elle permet de gérer l’authentification
« Template », pour la génération de template (Code html avec des
variables traitées par le php)
« Session », « Perm », « Cart »….
BeOtic
BeOtic 51
POO : PHPLib
Exemple d’utilisation pour la gestion de template
BeOtic
BeOtic 52
POO : PHPLib
Exemple d’utilisation pour la gestion de template avec bloc
Template
BeOtic
BeOtic 53
POO : PHPLib
Exemple d’utilisation pour la gestion
de template avec bloc
BeOtic
BeOtic 54
POO : Supplémentaire
Gestion des templates avec Smarty
Inclusion de la librairie
Instanciation de la classe
Affectation de la variable
Affichage du résultat
Documentation : http://www.smarty.net/
BeOtic
BeOtic 55
POO : Supplémentaire
Auto inclusion de classe
Utilisation de l’autoload.
BeOtic
BeOtic 56
POO : Supplémentaire
Garbage Collector (GC, Ramasse-miettes)
Libère la mémoire au fur et à mesure de l’exécution d’une requête.
Depuis la version 5.3 de PHP, beaucoup mieux géré (<= 5.2 problème de
fuite de mémoire avec les dépendances cycliques)
Documentation : http://www.php.net/manual/fr/features.gc.refcounting-basics.php
BeOtic
BeOtic 57
Travaux Pratiques
TP 1
PEAR / Phplib
BeOtic
BeOtic 58
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 59
Gestion des erreurs
Introduction
Erreurs ou exceptions?
Une « erreur » peut être apparentée à un bug comme par exemple une
division par 0 (Division by 0), un accès à un élément d’un tableau au-delà
de sa taille (Undefined offset). Elles sont détectées par le système.
BeOtic
BeOtic 60
Gestion des erreurs
Gestion des exceptions
PHP offre une gestion des exceptions tout comme les autres langages de
programmation.
Une fois que l’exception est lancée, le moteur stoppe l’exécution du code et
tente de trouver un bloc catch correspondant. S’il n’en trouve pas, une
erreur fatale sera affichée.
BeOtic
BeOtic 61
Gestion des erreurs
Gestion des exceptions
Lancement de l’exception
Capture de l’exception
BeOtic
BeOtic 62
Gestion des erreurs
Gestion des exceptions
Déclaration de deux
exceptions personnalisées,
dans des fichiers indépendant
BeOtic
BeOtic 63
Gestion des erreurs
Création d’un gestionnaire d’erreurs
Si un gestionnaire est déclaré, il captera seulement les exceptions non attrapées
Définition du gestionnaire
d’erreurs
BeOtic
BeOtic 64
Gestion des erreurs
Bufferisation et fichier de log
Php fournit des méthodes utiles pour gérer la bufferisation comme :
BeOtic
BeOtic 65
Travaux Pratiques
TP 2
Exceptions
BeOtic
BeOtic 66
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 67
Authentification LDAP
Introduction
Openldap
Configuration et démarrage
BeOtic
BeOtic 68
Authentification LDAP
Introduction
Openldap
Configuration et démarrage
BeOtic
BeOtic 69
Authentification LDAP
Introduction
LDAP (Lightweight Directory Access Protocol) est un protocole standard de
gestion d’annuaires électroniques. Il permet, via le protocole TCP/IP,
d’accéder aux informations d’un annuaire électronique.
BeOtic
BeOtic 70
Authentification LDAP
Introduction
LDAP c’est :
BeOtic
BeOtic 71
Authentification LDAP
Introduction
Le protocole définit la communication entre le client et le serveur.
BeOtic
BeOtic 72
Authentification LDAP
Introduction
Les données de l’annuaire sont structurées sous forme d’une arborescence
hiérarchique appelée DIT (Directory Information Tree).
dc=masociete,dc=com
ou=personnes ou=groupes
uid=ablot
Chaque entrée est un objet abstrait ou réel qui contient un certain nombre
d’attributs la décrivant.
Un attribut est défini par un nom (ex : givenName), un type (ex : Directory
string) et une valeur (ex : André).
BeOtic
BeOtic 73
Authentification LDAP
Introduction
Chaque nœud est identifié par :
dc=masociete,dc=com
ou=personnes ou=groupes
uid=ablot
BeOtic
BeOtic 74
Authentification LDAP
Introduction
Exemple d’entrée :
Attribut Valeur
Cn: André Blot
Uid: ablot
givenName: André
Sn: Blot
BeOtic
BeOtic 75
Authentification LDAP
Introduction
LDAP fournit la notion de classes d’objets qui permet de caractériser une
entrée par un ensemble d’attributs optionnels ou obligatoires (devant
obligatoirement être renseignés dans l’objet qui en hérite).
La classe d’objet est définie par son nom qui l’identifie, un OID qui peut
également l’identifier, une liste d’attributs obligatoires, une liste d’attributs
optionnels et un type.
BeOtic
BeOtic 76
POO : Authentification LDAP
Introduction
Exemple de hiérarchie de classe d’objets :
top
person
organisationalPerson
inetOrgPerson
organisationalUnit
country
BeOtic
BeOtic 77
Authentification LDAP
Introduction
LDAP met à disposition un ensemble de classes et d’attributs par défaut qui
conviennent pour la majorité des applications.
BeOtic
BeOtic 78
Authentification LDAP
Introduction
Exemple de classes :
person :
commonName
Surname
Description
userPassword
…
organizationalPerson :
organizationUnitName
Title
postalAddress
…
inetOrgPerson :
Mail
Photo
…
BeOtic
BeOtic 79
Authentification LDAP
Introduction
LDAP fournit un format d’échange de données appelé LDIF (LDAP Data
Interchange Format).
BeOtic
BeOtic 80
Authentification LDAP
Introduction
Exemple de fichier LDIF :
BeOtic
BeOtic 81
Authentification LDAP
Introduction
LDAP fournit une liste d’opérations de base afin de réaliser des actions sur
les entrées ou la structure de l’annuaire.
Exemples d’opérations :
BeOtic
BeOtic 82
Authentification LDAP
Introduction
Pour vérifier la bonne connexion au serveur ldap
Exemples :
BeOtic
BeOtic 83
Authentification LDAP
Introduction
La lecture de données dans l’annuaire peut se faire via la commande
« ldapsearch ». Cette commande peut être utilisée en mode anonyme ou en
mode authentifié « paramètre –D et –W » (-x pour authentification simple).
Résultat :
# Andre Blot, Personnes, masociete.com
dn: cn=Andre Blot,ou=Personnes,dc=masociete,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Andre Blot
sn: Blot
givenName: Andre
mail: [email protected]
ou: Personnes
telephoneNumber: 0251242569
BeOtic
BeOtic 84
Authentification LDAP
Introduction
BeOtic
BeOtic 85
Authentification LDAP
Introduction
BeOtic
BeOtic 86
Authentification LDAP
Introduction
BeOtic
BeOtic 87
Authentification LDAP
Introduction
BeOtic
BeOtic 88
Authentification LDAP
Introduction
L’url d’accès à un annuaire LDAP est de la forme :
ldap[s]//<hostname>:<port>/<base_name>
Exemple : ldap://ldap.masociete.com/dc=masociete,dc=com
BeOtic
BeOtic 89
Authentification LDAP
Introduction
Openldap
Configuration et démarrage
BeOtic
BeOtic 90
Authentification LDAP
Openldap
Openldap fournit :
BeOtic
BeOtic 91
Authentification LDAP
Introduction
Openldap
Configuration et démarrage
BeOtic
BeOtic 92
Authentification LDAP
Configuration et démarrage
BeOtic
BeOtic 93
Authentification LDAP
Configuration et démarrage
access to *
by dn="cn=admin,dc=masociete,dc=com" write
by * read
BeOtic
BeOtic 94
Authentification LDAP
Configuration et démarrage
BeOtic
BeOtic 95
Authentification LDAP
Introduction
Openldap
Configuration et démarrage
BeOtic
BeOtic 96
Authentification LDAP
Lecture - Connexion anonyme - Interrogation et
récupération de données
En Php il existe l’extension php_ldap permettant d’effectuer des opérations
sur un annuaire ldap (à inclure dans le fichier php.ini).
BeOtic
BeOtic 97
Authentification LDAP
Lecture - Connexion anonyme - Interrogation et
récupération de données
Afin de récupérer des données dans l’annuaire, la fonction à utiliser est
« ldap_search », voici ses principaux paramètres :
BeOtic
BeOtic 98
Authentification LDAP
Lecture - Connexion anonyme - Interrogation et
récupération de données
Connexion au serveur
Authentification anonyme
Récupération du résultat
sous forme de tableau
multidimentionnel
BeOtic
BeOtic 99
Authentification LDAP
Lecture - Connexion non anonyme - Interrogation et
récupération de données
Connexion au serveur
Authentification en tant
que manager
Récupération du résultat
sous forme de tableau
multidimentionnel
BeOtic
BeOtic 100
Authentification LDAP
Introduction
Openldap
Configuration et démarrage
BeOtic
BeOtic 101
Authentification LDAP
Écriture - Connexion administrateur - Formatage des
données et insertion
Pour l’ajout et la modification de données dans l’annuaire, les fonctions
disponibles sont « ldap_add », « ldap_modify », « ldap_delete ».
ldap_delete(identifiant, dn)
Identifiant : identifiant retourné par la méthode « ldap connect() »
Dn : dn de l’objet à supprimer (ex : cn=Marc Guillet,
ou=Personnes,dc=masociete,dc=com)
BeOtic
BeOtic 102
Authentification LDAP
Écriture - Connexion administrateur - Formatage des
données et insertion
Exemple d’ajout d’un objet dans le ldap :
Exemple de modification :
Exemple de suppression :
BeOtic
BeOtic 103
Travaux Pratiques
TP 3
LDAP
BeOtic
BeOtic 104
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 105
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 106
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 107
Base de données : manipulations avancées
Base multitables et jointure.
La séparation des données dans des tables différentes permet d’éviter les
données redondantes. Exemple :
Les numéros de téléphone peuvent être stockés dans une table différente,
une jointure sera donc nécessaire pour récupérer les numéros de téléphone
associés à une personne.
BeOtic
BeOtic 108
Base de données : manipulations avancées
Base multitables et jointure.
Un découpage trop fin nécessitera de nombreuses jointures et donc des
requêtes coûteuses.
BeOtic
BeOtic 109
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 110
Base de données : manipulations avancées
Intégrité transactionnelle. Cohérence des données.
Pratiquer la politique du tout ou rien afin d’éviter des incohérences en base.
Tant qu’il n’y a pas eu de commit, les modifications ne sont visibles que par
l’utilisateur courant et ne sont pas persistées en base.
BeOtic
BeOtic 111
Base de données : manipulations avancées
Intégrité transactionnelle. Cohérence des données.
Exemple :
BeOtic
BeOtic 112
Base de données : manipulations avancées
Intégrité transactionnelle. Cohérence des données.
Démarrage de la transaction
« begin »
« commit » de la transaction si
tout s’est bien passé
« rollback » de la transaction si
un problème est survenu
BeOtic
BeOtic 113
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 114
Base de données : manipulations avancées
Procédures stockées : réutilisation de l’existant.
L'un des intérêts du PL/SQL est d'être exécuté dans la base de données;
d'où un gain de performance important, qui peut être utile quelle que soit la
technologie utilisée lors de la migration (point à vérifier pour chaque projet
car la difficulté de maintenance est plus importante).
BeOtic
BeOtic 115
Base de données : manipulations avancées
Procédures stockées : réutilisation de l’existant.
Exemple de PL/SQL:
Appel de la procédure
BeOtic
BeOtic 116
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 117
Base de données : manipulations avancées
Champs multidimensionnels.
BeOtic
BeOtic 118
Base de données : manipulations avancées
Champs multidimensionnels.
Récupération du premier
numéro pour chaque personne
Insertion d’un tableau de 2 numéros
Récupération du nombre de
numéros pour chaque personne
BeOtic
BeOtic 119
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 120
Base de données : manipulations avancées
Sécurité : formatage des entrées et requêtes paramétrées.
Injection SQL : Une requête sql peut être saisie dans un formulaire et
compromettre la sécurité (exemple : requête d’administration).
BeOtic
BeOtic 122
Base de données : manipulations avancées
Sécurité : formatage des entrées et requêtes paramétrées.
Exemple de palliatif.
Utilisation de la méthode :
« mysql_real_esacpe_string »,
le login et le password deviendront :
« \' OR \'x\'=\'x »
Le paramètre est ainsi sécurisé
BeOtic
BeOtic 123
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 124
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
BeOtic
BeOtic 125
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
Requête de sélection
Instanciation et connexion
BeOtic
BeOtic 126
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
Requête de sélection
Instanciation et connexion
BeOtic
BeOtic 127
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
Requête de mise à jour
BeOtic
BeOtic 128
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
Utilisation du « prepare »
BeOtic
BeOtic 129
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
Utilisation du « prepare » et du « bindValue ».
Préparation de la requête avec les
paramètres
Association de la valeur de
« $lNom » au paramètre « nom » de
la requête.
BeOtic
BeOtic 130
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
Utilisation du « prepare » et du « bindParam ».
BeOtic
BeOtic 131
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
Utilisation du « beginTransaction » « commit » « rollback ».
Démarrage de la transaction
BeOtic
BeOtic 132
Base de données : manipulations avancées
PDO (API abstraite d’accès aux bases de données).
BeOtic
BeOtic 133
Base de données : manipulations avancées
Base multitables et jointure : avantages et limites de la théorie.
Champs multidimensionnels.
BeOtic
BeOtic 134
Base de données : manipulations avancées
ODBC : outil passe-partout win32.
PHP fournit un client ODBC unifié qui donne accès à différentes bases de
données qui ont respecté la norme ODBC pour implémenter leur API
(Sybase, Oracle, SQL Server).
BeOtic
BeOtic 135
Base de données : manipulations avancées
ODBC : outil passe-partout win32.
Initialisation du DSN
Le nom du driver doit correspondre à un
driver disponible dans le gestionnaire ODBC
de windows
BeOtic
BeOtic 136
Base de données : manipulations avancées
ODBC : outil passe-partout win32.
BeOtic
BeOtic 137
Travaux Pratiques
TP 4
Base de données
avancée
BeOtic
BeOtic 138
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 139
XML/DOM/XSLT
XML : Format et validation.
BeOtic
BeOtic 140
XML/DOM/XSLT
XML : Format et validation.
BeOtic
BeOtic 141
XML/DOM/XSLT
XML : Format et validation.
Langage de balisage.
Un fichier XML peut être utilisé comme une base de données. Mais reste
limité en terme de performance car assez verbeux.
BeOtic
BeOtic 142
XML/DOM/XSLT
XML : Format et validation.
Noeuds
Attributs
BeOtic
BeOtic 143
XML/DOM/XSLT
XML : Format et validation.
La validation d’un fichier XML peut s’effectuer soit par un DTD ou un XSD.
Il a sa propre grammaire.
BeOtic
BeOtic 144
XML/DOM/XSLT
XML : Format et validation.
Peut être généré à partir d’outil
comme « freeformatter.com »
XSD
depuis xml ou via l’editeur de
eclipse (sorte de modeler)
DTD
BeOtic
BeOtic 145
XML/DOM/XSLT
XML : Format et validation.
BeOtic
BeOtic 146
XML/DOM/XSLT
XML : Format et validation.
Code php pour valider un document XML
BeOtic
BeOtic 147
XML/DOM/XSLT
XML : Format et validation - Type disponible dans le XSD (W3C).
BeOtic
BeOtic 148
XML/DOM/XSLT
XML - Format et validation.
BeOtic
BeOtic 149
XML/DOM/XSLT
DOM et XPath - Création, analyse.
BeOtic
BeOtic 150
XML/DOM/XSLT
DOM et XPath - Création, analyse.
Utilisation de la classe DOMDocument pour le parcours.
BeOtic
BeOtic 151
XML/DOM/XSLT
DOM et XPath - Création, analyse.
Utilisation de la classe DOMDocument pour la création.
BeOtic
BeOtic 152
XML/DOM/XSLT
DOM et XPath - Création, analyse.
Utilisation de la classe DOMDocument pour la création.
Création du document
BeOtic
BeOtic 153
XML/DOM/XSLT
DOM et XPath - Création, analyse.
Utilisation de la classe DOMDocument pour la création.
BeOtic
BeOtic 154
XML/DOM/XSLT
DOM et XPath - Création, analyse.
BeOtic
BeOtic 155
XML/DOM/XSLT
XML - Format et validation.
BeOtic
BeOtic 156
XML/DOM/XSLT
Transformateurs XSL - Utilisation de XSLT.
Format XML.
2 éléments :
XSLT : Transformation des données.
BeOtic
BeOtic 157
XML/DOM/XSLT
Transformateurs XSL - Utilisation de XSLT.
BeOtic
BeOtic 158
XML/DOM/XSLT
Transformateurs XSL - Utilisation de XSLT.
Définition de la variable « separateur »
qui pourra être utilisée par la suite
BeOtic
BeOtic 159
XML/DOM/XSLT
XML - Format et validation.
BeOtic
BeOtic 160
XML/DOM/XSLT
Clients riches : SWF et Ajax - Principes et enjeux.
Contrairement aux SWF, Ajax n’a pas besoin de plugin (flash player).
BeOtic
BeOtic 161
Travaux Pratiques
TP 5
XML
BeOtic
BeOtic 162
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 163
Web Services et SOAP
Introduction.
WSDL et SOAP.
BeOtic
BeOtic 164
Web Services et SOAP
Introduction.
WSDL et SOAP.
BeOtic
BeOtic 165
Web Services et SOAP
Introduction.
BeOtic
BeOtic 166
Web Services et SOAP
Introduction.
Un flux SOAP est composé d’une enveloppe, d’un entête (optionnel) et d’un
corps.
BeOtic
BeOtic 167
Web Services et SOAP
Introduction.
WSDL et SOAP.
BeOtic
BeOtic 168
Web Services et SOAP
Annuaire des services et accessibilité.
http://soapclient.com/uddisearch.html
BeOtic
BeOtic 169
Web Services et SOAP
Introduction.
WSDL et SOAP.
BeOtic
BeOtic 170
Web Services et SOAP
WSDL et SOAP
Déclaration du service
BeOtic
BeOtic 171
Web Services et SOAP
WSDL et SOAP.
Réponse
BeOtic
BeOtic 172
Web Services et SOAP
Introduction.
WSDL et SOAP.
BeOtic
BeOtic 173
Web Services et SOAP
Créer un Web Service et son fichier de description.
Traitement de la requête
BeOtic
BeOtic 174
Web Services et SOAP
Créer un Web Service et
son fichier de description.
Générateurs existants :
BeOtic
BeOtic 175
Web Services et SOAP
Introduction.
WSDL et SOAP.
BeOtic
BeOtic 176
Web Services et SOAP
Utiliser un Web Service
Déclaration du client
Traitement du résultat de
l’appel du service
BeOtic
BeOtic 177
Travaux Pratiques
TP 6
Webservice
BeOtic
BeOtic 178
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 179
PDF pour AcrobatReader
Opérations de base - Texte et mise en page.
BeOtic
BeOtic 180
PDF pour AcrobatReader
Introduction.
FPDF (v1.7 en 2011, < 100Ko) est une librairie PHP (free) qui permet de
générer des fichiers PDF :
Insertion d’image
…
TCPDF est une librairie (v6 en 2014), intégrée dans joomla, drupal…, mais
fichiers assez lourds (peut aller jusqu’à 1Mo suivant les options) donc à
chaque exécution le code est chargé (source de problème de performance)
BeOtic
BeOtic 181
PDF pour AcrobatReader
Opérations de base - Texte et mise en page.
BeOtic
BeOtic 182
PDF pour AcrobatReader
Opérations de base - Texte et mise en page.
BeOtic
BeOtic 183
POO : PDF pour AcrobatReader
Opérations de base - Texte et mise en page.
Exemple :
Définition de la police
Positionnement du titre
Positionnement du texte en x et y
BeOtic
BeOtic 184
PDF pour AcrobatReader
Opérations de base - Texte et mise en page.
BeOtic
BeOtic 185
PDF pour AcrobatReader
Opérations avancées - Images et tracés vectoriels.
Exemple :
BeOtic
BeOtic 186
PDF pour AcrobatReader
Utilisation de phpToPDF
Exemple d’ajout de tableau dans un pdf (phpToPDF = extension de fpdf):
http://jc-cornic.developpez.com/tutoriels/php/Doc-phpToPDF/
BeOtic
BeOtic 187
PDF pour AcrobatReader
Extension de la classe FPDF
BeOtic
BeOtic 188
PDF pour AcrobatReader
Autres librairies.
BeOtic
BeOtic 189
Travaux Pratiques
TP 7
PDF
BeOtic
BeOtic 190
Programme de la formation
Introduction
Authentification LDAP
XML/DOM/XSLT
BeOtic
BeOtic 191
E-mail
MIME : pièces jointes et format HTML.
BeOtic
BeOtic 192
E-mail
MIME : pièces jointes et format HTML.
BeOtic
BeOtic 193
E-mail
MIME : pièces jointes et format HTML.
…
BeOtic
BeOtic 194
E-mail
MIME : pièces jointes et format HTML.
Exemple d’envoi de mail au format HTML
Envoi du mail
BeOtic
BeOtic 195
E-mail
MIME : pièces jointes et format HTML.
Exemple d’envoi de mail avec pièce jointe
BeOtic
BeOtic 196
E-mail
MIME : pièces jointes et format HTML.
BeOtic
BeOtic 197
E-mail
Les formats Mixed, Multipart, Alternative/Related.
Ligne vide
importante
Contenu
BeOtic
BeOtic 198
E-mail
Les formats Mixed, Multipart, Alternative/Related.
Format HTML
Format texte
BeOtic
BeOtic 199
E-mail
Les formats Mixed, Multipart, Alternative/Related.
Lien de référence à
l’image
Source de l’image
encodé en base64
BeOtic
BeOtic 200
E-mail
MIME : pièces jointes et format HTML.
BeOtic
BeOtic 201
E-mail
Les encodages particuliers.
UTF-8 : International.
Cette propriété indique au logiciel client mail quel jeu de caractères il doit
utiliser pour afficher le mail.
BeOtic
BeOtic 202
E-mail
MIME : pièces jointes et format HTML.
BeOtic
BeOtic 203
E-mail
Paramétrage d’un serveur de test.
Configuration Windows :
• Configuration Linux :
BeOtic
BeOtic 204
PHP 5.4
Améliorations
BeOtic
BeOtic 205
Travaux Pratiques
TP 8
Mail
BeOtic
BeOtic 206
Annexes
BeOtic
BeOtic 207
Annexe 1
BeOtic
BeOtic 208
Installation wsdl editor
Dans la partie en dessous « Web, XML, Java EE… » > « Eclipse Java Web
Developer Tools »
BeOtic
BeOtic 209