zend studio plateform

Page 1

Formation Zend Studio / Zend Platform, Standards de codage, migration PHP 5 & gestion de versions Arawak

Copyright Š 2007, Zend Technologies Inc.


Programme • • • • • •

Zend Studio Zend Platform pour les développeurs Standards de codage La PHPDoc Migration vers PHP 5 La gestion des versions avec Subversion

Copyright ©2007 Zend Technologies, Inc.

#2


Zend Studio: Introduction

Copyright Š 2007, Zend Technologies Inc.


Zend Studio: Introduction

Fonctionnalités Colorisation syntaxique personnalisable Gestionnaire de fichiers

Client FTP

Complétion de code PHP

Mise en évidence des erreurs en temps réel

Inspecteurs

Copyright ©2007 Zend Technologies, Inc.

#4


Zend Studio: Introduction

Intégration de Internet Explorer Barre d'outils de débogage

Cycle de débogage complet depuis Zend Studio

Consultez le manuel PHP depuis Zend Studio

Copyright ©2007 Zend Technologies, Inc.

#5


Zend Studio: Introduction

Gabarits

Les gabarits vous permettent de travailler plus rapidement, avec moins de risque d'erreurs de frappe (menu Outils >

Personnalisation)

Copyright Š2007 Zend Technologies, Inc.

#6


Zend Studio: Introduction

Assistant PHPDocumentor En utilisant l'assistant PHPDocumentor, vous pouvez facilement générer la documentation API de votre Ajouter des application fichiers Ajouter des répertoires Ajouter les fichiers qui ne doivent pas être inclus

Copyright ©2007 Zend Technologies, Inc.

#7


Zend Studio: Introduction

Assistant PHPDocumentor

Copyright Š2007 Zend Technologies, Inc.

#8


Zend Studio: Introduction

Assistant PHPDocumentor

Copyright Š2007 Zend Technologies, Inc.

#9


Zend Studio: Editeur

Copyright Š 2007, Zend Technologies Inc.


Zend Studio: Editeur

Intégration PHPDoc • Les commentaires PHPDoc sont utilisés pour:  Décrire comment l'élément est utilisé dans le code de l'application  Générer la documentation API du projet via PHPDocumentor  Générer des commentaires structurés pour la complétion de code dans Zend Studio

Copyright ©2007 Zend Technologies, Inc.

# 11


Zend Studio: Editeur

Intégration PHPDoc • En utilisant le droit clic dans l'inspecteur d'objets

• Par la complétion de code: tapez /** puis <ENTREE>

Copyright ©2007 Zend Technologies, Inc.

# 12


Zend Studio: Editeur

Intégration PHPDoc, exemple

Copyright ©2007 Zend Technologies, Inc.

# 13


Zend Studio: Editeur

Complétion de code • Accès facile aux:        

Classes Fonctions Variables Constantes Mots-clés Balises HTML Attributs Valeurs d'attributs etc...

Copyright ©2007 Zend Technologies, Inc.

# 14


Zend Studio: Editeur

Complétion de code • Complétion de code HTML

• Complétion de code PHP:  Complétion de code pour les fonctions imbriquées  Complétion de code pour les valeurs de retour d'une fonction ou méthode (en utilisant PHPDoc)

Copyright ©2007 Zend Technologies, Inc.

# 15


Zend Studio: Editeur

Complétion de code • Indice pour la complétion de code PHP:  Ajoutez une balise @var comme indice au type de

classe  En utilisant un commentaire, vous pouvez précisément indiquer le type de classe d'une variable:

Copyright ©2007 Zend Technologies, Inc.

# 16


Zend Studio: Editeur

Complétion de code la classe ClasseDeComplétion

Sans commentaires PHPDoc

Avec commentaires PHPDoc

Copyright ©2007 Zend Technologies, Inc.

# 17


Zend Studio: Editeur

Signets

Utilisez les signets dans le document actif pour marquer des lignes de code (par clic droit sur la marge à hauteur de la ligne ou en appuyant sur la touche <F2>)

Signet

Signet Signet

Commentaire du signet

Signet

Cette fonctionnalité vous permet de naviguer plus rapidement dans le code en utilisant la combinaison de touches <CTRL> + <F2> ou en cliquant sur les indicateurs de signet dans l'ascenseur de droite En passant sur le signet avec la souris, on obtient la description Copyright ©2007 Zend Technologies, Inc.

# 18


Zend Studio: Editeur

Signets

Gérez vos signets avec le gestionnaire de signets

Ajoutez des descriptions à vos signets

Copyright ©2007 Zend Technologies, Inc.

# 19


Zend Studio: Editeur

Exercices

• Compléter la phpdoc de l'application que nous avons installé pour le cours Zend Studio. • Repérer une fonction qui renvoit une classe dans le code fourni, compléter la phpdoc pour renseigner quel type de classe cette fonction renvoit. • Générer la phpdoc dans un dossier "phpdoc" à la racine de l'application. • Tester l'utilisation des signets.

Copyright ©2007 Zend Technologies, Inc.

# 20


Zend Studio : Travailler Avec Des Projets

Copyright Š 2007, Zend Technologies Inc.


Travailler Avec des Projets

Créer un nouveau projet Création d'un nouveau projet

L'assistant vous guide pour déterminer les propriétés de votre nouveau projet

Copyright ©2007 Zend Technologies, Inc.

# 22


Travailler Avec des Projets

Utilité de définir un projet • Quelle est l'utilité de créer un projet ?    

Débogage Complétion de code Contrôle des versions des fichiers du projet Une seule arborescence pour tous les fichiers avec lesquels vous devez travailler

Copyright ©2007 Zend Technologies, Inc.

# 23


Travailler Avec des Projets

Ajouter des fichiers Ajouter des fichiers Ă un projet

Copyright Š2007 Zend Technologies, Inc.

# 24


Travailler Avec des Projets

Les Inspecteurs

• Le panneau d'inspecteurs est utilisé pour mapper •

graphiquement des éléments de code Les éléments de code représentables sont:        

Noms de classes Propriétés de classes Constantes de classes Méthodes de classes Fonctions Constantes Fichiers "Include" Clients SOAP

Copyright ©2007 Zend Technologies, Inc.

# 25


Travailler Avec des Projets

Les Inspecteurs

• Il existe trois onglets d'inspecteurs:  Onglet d'Inspecteur de fichiers: affiche

dans une arborescence tous les éléments de code représentables déclarés dans le fichier en cours d'édition

 Onglet d'Inspecteur de projet: tous les

éléments de code dans les fichiers du projet ou les fichiers ouverts dans l'editeur

 Onglet PHP: toutes les classes et fonctions PHP – tapez F1 pour ouvrir le manuel PHP

Copyright ©2007 Zend Technologies, Inc.

# 26


Travailler Avec des Projets

Exercices

• Créer un projet contenant l'application fournie. • Définir les propriétés du projet comme suit :  Encoding UTF-8  Débogueur interne

Copyright ©2007 Zend Technologies, Inc.

# 27


Zend Studio : Débogage

Copyright © 2007, Zend Technologies Inc.


Zend Studio: Débogage

Débogueur interne • Débogueur interne  Zend Studio installe ses propres versions de PHP – 4 & 5, avec

lesquels vous pouvez déboguer vos scripts  Le débogueur interne est une suite d'outils qui permettent au développeur de déboguer ses applications avant leur mise en ligne

Copyright ©2007 Zend Technologies, Inc.

# 29


Zend Studio: Débogage

Exercice

• Changez la version PHP utilisé pour le débogage •

dans Outils > Préférences > Poste de travail Modifiez le fichier INI pour chaque version dans <répertoire d'installation de Studio>/bin/phpx

Copyright ©2007 Zend Technologies, Inc.

# 30


Zend Studio: Débogage

Serveur de débogage Zend Platform Configuration:

Zend Platform

Copyright ©2007 Zend Technologies, Inc.

# 31


Zend Studio: Débogage

Serveur de débogage • Requièrt l'installation de Zend Platform sur le serveur Web • Vous permet de déboguer des scripts plus complexes, en •

utilisant votre propre version de PHP et vos extensions, sur votre environnement Web Possibilité de déboguer des fichiers locaux ou ceux sur votre serveur

Copyright ©2007 Zend Technologies, Inc.

# 32


Zend Studio Débogage

Configuration du débogueur • Dans ZDE, ouvrez Outils > Personnalisation >

Débogage. Sélectionnez le mode de débogage "Serveur" et renseignez l'adresse de votre serveur dans le champs "URL du Serveur de Débogage" Ajoutez l'adresse IP de votre machine dans la liste des hôtes autorisés depuis l'interface utilisateur de Zend Platform, ou éditez la directive zend_debugger.allow_hosts dans votre fichier php.ini Veillez à redémarrer votre serveur Web après avoir effectué ces changements Vous pouvez également configurer ces paramètres pour chaque projet séparément en éditant les propriétés du projet: Projet > Propriétés du Projet

Copyright ©2007 Zend Technologies, Inc.

# 33


Zend Studio Débogage

Différentes façons de déboguer • Débogage URL (F8)  Le retour du débogueur est rendu dans le navigateur et dans la

fenêtre « Résultat du débogage » du client Zend Studio au fur et à mesure de l'avancement du débogage  Facilite le débogage de formulaires  Vous permet de lancer le débogage sur des pages situés sur le serveur Web

Copyright ©2007 Zend Technologies, Inc.

# 34


Zend Studio Débogage

Différentes façons de déboguer • Bouton « Commencer le débogage » (F5)  Vous permet de déboguer des fichiers locaux dans

l'environnement de votre serveur Web  Les chemins relatifs dans les scripts peuvent différer – assurez vous d'ajouter tous les fichiers nécessaires à un projet dans Zend Studio

Copyright ©2007 Zend Technologies, Inc.

# 35


Zend Studio Débogage

La barre d'outils de débogage

• La barre d'outils de débogage peut être installée sous Internet Explorer et les navigateurs Mozilla (comme Firefox)  Elle offre un accès facile et rapide aux fonctions de

débogage et de profilage depuis le navigateur Internet  Puisqu'elle permet de lancer une session de débogage depuis le navigateur, elle est particulièrement utile pour le débogage de formulaires – toutes les valeurs saisies seront disponibles lors du débogage

Copyright ©2007 Zend Technologies, Inc.

# 36


Zend Studio Débogage

Profilage

• Synthétise les données générées par une application PHP • Représente les ressources pour chacun d'eux dans un graphique

Copyright ©2007 Zend Technologies, Inc.

# 37


Zend Studio Débogage

Profilage, Informations du profileur • Fournit des informations générales sur:  La durée et la date du profilage  Le nombre de fichiers appelés par l'URL demandée  La répartition du temps pour les fichiers appelés

Copyright ©2007 Zend Technologies, Inc.

# 38


Zend Studio Débogage

Profilage, Fonctions statiques • Fournit des informations générales sur:

 Affiche la liste

des fichiers appelés par l'URL  Affiche des informations détaillés concernant les fonctions et méthodes dans les fichiers (nombre d'appels, durée d'exécution totale, ...) Copyright ©2007 Zend Technologies, Inc.

# 39


Zend Studio Débogage

Profilage, Trace d'appel • Affichage hiërarchique des fonctions selon leur ordre d'exécution

• Vous permet de:

 Sauter à la fonction dans le code par doubleclic  Voir l'appel à la fonction  Voir la déclaration de la fonction  Vérifier les détails de la fonction • ...

Copyright ©2007 Zend Technologies, Inc.

# 40


Zend Studio Débogage

Exercices

• Effectuer le profilage de l'application fournie à •

l'aide de Zend Studio et sa barre d'outils. Tester les options de débogage à partir de la barre d'outil Zend Studio.

Copyright ©2007 Zend Technologies, Inc.

# 41


Zend Studio: Fonctionnalités Supplémentaires

Navigateur SQL

Affichez les résultats d'une requête

Connectez vous sur plusieurs serveurs de bases de données simultanément Consultez le schéma, les tables et colonnes de la base de données

Exécutez des requêtes

Consultez les utilisateurs de la base de données

Copyright ©2007 Zend Technologies, Inc.

Passez facilement d'un serveur, base de données ou schéma à un autre

# 42


Zend Studio: Fonctionnalités Supplémentaires

Générateur WSDL

Le générateur de fichiers WSDL vous permet de créer facilement un service Web pour votre application (Menu Outils > Générateur WSDL)

Copyright ©2007 Zend Technologies, Inc.

# 43


Zend Studio: Fonctionnalités Supplémentaires

Versionnage

• Le versionnage est supporté pour deux logiciels de contrôle de version:

 CVS http://www.nongnu.org/cvs/  Subversion http://subversion.tigris.org/  CVS et Subversion sont interchangeables et sont définis dans le menu de personnalisation: Outils > Personnalisation > Versionnage  Vous devez avoir défini un projet avant de pouvoir vous servir des fonctionnalités de versionnage de Zend Studio Copyright ©2007 Zend Technologies, Inc.

# 44


Zend Platform pour les développeurs

Copyright © 2007, Zend Technologies Inc.


Zend Platform pour les développeurs

Introduction: Architecture

Copyright ©2007 Zend Technologies, Inc.

# 46


Zend Platform pour les développeurs

Module Performance

• Il existe différents niveaux pour gagner en performance     

Accélération de code Optimisation de code Caching du contenu (page complète ou partielle) Zend Download Server Compression du rendu

• Le but est de réduire la charge serveur et d'améliorer •

les temps de réponse Le module Performance inclut des outils de benchmarking

Copyright ©2007 Zend Technologies, Inc.

# 47


Zend Platform pour les développeurs

Module Performance, Console • Information • •

serveur Dernières informations de benchmark Résumé des paramètres et statut de chaque composant Liens rapides Copyright ©2007 Zend Technologies, Inc.

# 48


Zend Platform pour les développeurs

Module Performance, Testing • L'onglet Testing vous donne accès à des tests de benchmarking:  Tester des

téléchargements  Tester une URL  Tester un site

Copyright ©2007 Zend Technologies, Inc.

# 49


Zend Platform pour les développeurs

Module Session Clustering • Le problème  Le protocole HTTP n'a pas d'état  Les sessions sont le standard de facto pour stocker des données

par utilisateur pour une durée limitée  Les données des sessions sont typiquement stockées dans des fichiers ou une base de données  PHP vous permet d'écrire facilement des « handler » pour stocker des données de sessions dans tout support accessible par PHP  Usage typique des sessions: un panier d'achats

Comment synchroniser les sessions ?

Copyright ©2007 Zend Technologies, Inc.

# 50


Zend Platform pour les développeurs

Module Session Clustering • La solution: Zend Session Clustering  Les sessions résident sur le serveur où elles étaient créées  Chaque session peut être lue par tout autre serveur du cluster  Un système de vérouillage et d'intégrité de données plus performant  Différentes façons de stocker les données: en fichier ou en mémoire

Copyright ©2007 Zend Technologies, Inc.

# 51


Zend Platform pour les développeurs

Module Session Clustering, Statistics • L'onglet Cluster Statistics du module Session Clustering

vous donne des informations sur les sessions sur le cluster

Copyright ©2007 Zend Technologies, Inc.

# 52


Zend Platform pour les développeurs

Module Java Bridge

• Intégrez vos librairies et classes Java avec PHP sans • •

heurts Augmentez le retour sur investissement de vos applications Java existantes tout en bénéficiant de PHP pour vos applications Web Délivrez une solution prenant le meilleur de deux mondes

Copyright ©2007 Zend Technologies, Inc.

# 53


Zend Platform pour les développeurs

Module Java Bridge: exemple • Exemple de communication avec une application Java

Copyright ©2007 Zend Technologies, Inc.

# 54


Zend Platform pour les développeurs

Module PHP Intelligence • PHP Intelligence est basé sur des incidents d'exécution

PHP se produisant sur le serveur Web, détectés par Zend Platform         

Exécution lente de scripts (absolu / relatif) Erreurs PHP Erreurs de fonctions (ex: division par zéro) Fonction lente Exécution de requêtes SQL lentes Charge moyenne sur le(s) serveur(s) Utilisation mémoire excessive (absolu / relatif) Erreur de base de données Inconsistences de rendus – un client ne voit pas la même chose qu'un autre pour la même demande  Evènements personnalisés Copyright ©2007 Zend Technologies, Inc.

# 55


Zend Platform pour les développeurs

Module PHP Intelligence, System Health • Une vue immédiate sur la « santé » de vos serveurs

Copyright ©2007 Zend Technologies, Inc.

# 56


Zend Platform pour les développeurs

Module PHP Intelligence, Event list • Une vue de la liste des évènements

Copyright ©2007 Zend Technologies, Inc.

# 57


Zend Platform pour les développeurs

Module PHP Intelligence, Event details

Informatons sur le script PHP générant l'évènement

Intégration avec Zend Studio

Afficher le code source du script

Données contextuelles à l'évènement Copyright ©2007 Zend Technologies, Inc.

# 58


Zend Platform pour les développeurs

PHP Intelligence, Intégration Zend Studio Tester l'URL: ouvre le navigateur Internet avec toutes les données contextuelles de l'évènement

Ouvre une session de débogage dans Zend Studio avec toutes les données contextuelles de l'évènement chargées

Ouvre le code source du script dans Zend Studio

Lance une session de profilage dans Zend Studio comprenant toutes les données contextuelles de l'évènement

Copyright ©2007 Zend Technologies, Inc.

# 59


Zend Platform pour les développeurs

Module PHP Intelligence, Event triggers • Définir les évènements capturés

Copyright ©2007 Zend Technologies, Inc.

# 60


Zend Platform pour les développeurs

Module PHP Intelligence, Graphs • Statistiques d'évènements par serveur

Copyright ©2007 Zend Technologies, Inc.

# 61


Zend Platform pour les développeurs

API Zend Platform

• Zend Platform possède une API permettant :  D'utiliser les fonctionnalités de cache dans son application

(cache partiel)  D'activer ou désactiver l'accélérateur  De gérer le monitoring et envoyer des événements personnalisés  D'envoyer des fichiers binaires en utilisant le Zend Download Server

• Une documentation complète est fournie dans le guide de l'utilisateur de la Zend Platform, ainsi qu'un tutorial pour l'utilisation du caching partiel.

Copyright ©2007 Zend Technologies, Inc.

# 62


Zend Platform pour les développeurs

API Zend Platform • Exemple de mise en

cache partiel d'une d'une fonction (getProductList est mis en cache, mais pas le header et le footer de la page).

Copyright ©2007 Zend Technologies, Inc.

# 63


Zend Platform pour les développeurs

Exercices

• Créer un utilisateur portant votre pseudonyme, se

logguer avec cet utilisateur et parcourir les écrans des slides précédents. • Télécharger le guide de l'utilisateur de la zend platform et l'ouvrir au chapitre consacré à l'API. • Créer un fichier "Cache.php" et implémenter une Zend Platform pour les développeurs classe "Cache" avec des méthodes "get", "set" et "clean" qui respectivement rappatrient, émettent une valeur dans le cache et vide le cache. • Utiliser cette classe dans un fichier test en mettant en oeuvre un jeu de test qui vérifie si ces trois méthodes fonctionnent. pour ces deux derniers points, vous pouvez utiliser les fonctions qui vous semblent les plus appropriées Copyright ©2007 Zend Technologies, Inc.

# 64


Standards de codage

Copyright Š 2007, Zend Technologies Inc.


Standards de codage • • • •

Pratiques et procédures courantes Conventions de nommage et de formattage Fonctionnalités recommandées Bonnes pratiques

Nous nous baserons sur les standards du framework Zend pour cette formation. Ces standards ont l'avantage d'être très complets et cohérents. Copyright ©2007 Zend Technologies, Inc.

# 66


Conventions : généralités

Copyright © 2007, Zend Technologies Inc.


Conventions : généralités

Pratiques des entreprises • PHP est une plateforme souple et simple à utiliser.

Pour faire un travail professionnel et productif, il est NECESSAIRE d'avoir des conventions solides, complètes et fiables. • La plupart des problèmes de pérénité et de productivité sont liés aux non respect des conventions et des architectures définies, ou tout simplement parce que ces considérations n'ont pas assez été abordées.

Copyright ©2007 Zend Technologies, Inc.

# 68


Conventions : généralités

Pratiques des entreprises • Certaines entreprises ont leurs propres

conventions, d'autres utilisent les conventions officielles (PEAR, Zend Framework). La deuxième solution s'avère plus efficace.

Copyright ©2007 Zend Technologies, Inc.

# 69


Conventions : généralités

Scope des conventions • Les conventions de codage doivent couvrir 

La syntaxe de codage (tabulations, espaces, nommage, sauts de ligne, etc.) L'organisation des fichiers (nommage, hiérarchie, organisation, dossiers et fichiers obligatoires, etc.) L'architecture sur laquelle repose tout développement (mvc, méthodes de construction d'une librairie, interfaces à implémenter, etc.)

Copyright ©2007 Zend Technologies, Inc.

# 70


Conventions : généralités

Scope des conventions • Les conventions de codage doivent couvrir (suite) 

 

L'utilisation des outils, notamment le gestionnaire de versions (messages des commits, nommage des tags et des branches, etc.) et le bugtracker La stratégie de qualité (écriture et passage des tests) La méthode de développement (méthode agile, XP, ...)

Copyright ©2007 Zend Technologies, Inc.

# 71


Formatage des fichiers

Copyright Š 2007, Zend Technologies Inc.


Formattage des fichiers

Général

• Pour les fichiers contenant uniquement du code PHP, le tag de fermeture ("?>") n'est jamais permis.  

Il n'est pas requis pas PHP. Ne pas l'inclure permet de prévenir les problèmes liés à l'injection accidentelle d'espaces blancs dans la sortie.

• IMPORTANT: L'inclusion de données binaires arbitraires comme il est permis par __HALT_COMPILER() est très déconseillé. L'utilisation de cette possibilité devrait uniquement être permise pour des scripts spéciaux d'installation. Copyright ©2007 Zend Technologies, Inc.

# 73


Formattage des fichiers

Indentation, longueur de ligne • Utiliser une indentation de 4 espaces, sans

tabulations. • La longueur souhaitée d'une ligne est de 80 caractères. 

 

i.e les développeurs devraient avoir pour but de ne pas dépasser les 80 caractères pour des raisons pratiques. Cependant, des lignes plus longues sont acceptables. La longueur maximum de toute ligne de code PHP est de 120 caractères.

Copyright ©2007 Zend Technologies, Inc.

# 74


Formattage des fichiers

Terminaison de lignes • La terminaison de ligne est la terminaison

standard pour les fichier textes UNIX. Les lignes doit finir seulement avec un "linefeed" (LF). Les linefeeds sont représentés  

comme 10 en ordinal, ou 0x0A en hexadecimal.

• Ne pas utiliser de retour chariot (CR) comme les font les Macintosh (0x0D) • Ne pas utiliser de combinaison retour chariot/linefeed (CRLF) comme le font les ordinateurs sous Windows (0x0D, 0x0A). Copyright ©2007 Zend Technologies, Inc.

# 75


Conventions de nommage

Copyright Š 2007, Zend Technologies Inc.


Conventions de nommage

Classes

• Le Framework Zend emploie une convention de

nommage des classes où les noms des classes mènent directement dans le(s) répertoire(s) dans lesquels elle sont stockées. • Le répertoire racine du Framework Zend est le répertoire "Zend", dans lequel toutes les classes sont stockées de façon hiérarchique.

Copyright ©2007 Zend Technologies, Inc.

# 77


Conventions de nommage

Classes

• Les noms de classes 

Ne peuvent contenir que des caractères alphanumérique. Les tirets bas ("_") ne sont autorisés que pour être utilisés comme séparateur de chemin -- le nom "Zend/Db/Table.php" doit mener à la classe appelée "Zend_Db_Table". Les nombres sont autorisés, mais déconseillés.

Copyright ©2007 Zend Technologies, Inc.

# 78


Conventions de nommage

Classes

• Les noms de classes 

Si un nom de classe comprend plus d'un mot, la première lettre de chaque nouveau mot doit être mis en majuscule. La mise en majuscule successive de lettre n'est pas autorisée, i.e une class "Zend_PDF" est interdit alors que "Zend_Pdf" est autorisé.

Copyright ©2007 Zend Technologies, Inc.

# 79


Conventions de nommage

Classes

• Remarque Zend Framework 

Le code qui opère avec le Framework mais qui n'en fait par partie, i.e le code écrit par un utilisateur et pas Zend ou une des entreprises partenaires, ne doivent jamais commencer par "Zend_".

Copyright ©2007 Zend Technologies, Inc.

# 80


Conventions de nommage

Classes

• Voici 3 exemples de noms de classes autorisés : Zend_Db Zend_View Zend_View_Helper

Copyright ©2007 Zend Technologies, Inc.

# 81


Conventions de nommage

Interfaces

• Les interfaces doivent suivre les mêmes

conventions que les autres classes (cf slide précédent), • cependant elles doivent finir par le mot "Interface" comme le montre les exemples du slide suivant.

Copyright ©2007 Zend Technologies, Inc.

# 82


Conventions de nommage

Interfaces

• Nommage des interfaces Zend_Log_Adapter_Interface Zend_Controller_Dispatcher_Interface

Copyright Š2007 Zend Technologies, Inc.

# 83


Conventions de nommage

Noms de fichier

• Pour tous les autres fichiers, seuls des caractères

alphanumérique, tirets bas et tiret demi-cadratin ("-") sont autorisés. • Les espaces et les caractères spéciaux sont interdits. • Tout fichier contenant du code PHP doit se terminer par l'extension ".php" • Les exemples suivants montrent des noms de fichiers acceptables pour contenir les noms de classes issus des exemples précédents.

Copyright ©2007 Zend Technologies, Inc.

# 84


Conventions de nommage

Noms de fichier

• Exemples de noms de fichiers valides Zend/Db.php Zend/Controller/Front.php Zend/View/Helper/FormRadio.php

Copyright ©2007 Zend Technologies, Inc.

# 85


Conventions de nommage

fonctions et méthodes • Les noms de fonctions 

 

Ne peuvent contenir que des caractères alphanumériques. Les tirets_bas ne sont pas permis. Les nombres sont autorisés mais déconseillés. Ils doivent toujours commencer avec une lettre en minuscule. Quand un nom de fonction est composé de plus d'un seul mot, la première lettre de chaque mot doit être en majuscule (méthode "studlyCaps" ou "camelCaps"). La clarté est conseillée. Le nom devrait être aussi explicite que possible, c'est un gage de compréhension du code.

Copyright ©2007 Zend Technologies, Inc.

# 86


Conventions de nommage

fonctions et méthodes • Noms acceptables pour des fonctions filterInput() getElementById() widgetFactory()

Copyright ©2007 Zend Technologies, Inc.

# 87


Conventions de nommage

Variables

• Les noms de variables 

 

Ne peuvent contenir que des caractères alphanumériques. Les tirets bas ne sont pas permis. Les nombres sont autorisés mais déconseillés.

• Pour les variables membres de classe 

Qui sont déclarées comme "private" ou "protected", le premier caractère du nom doit être un seul tiret bas. C'est le seul usage acceptable d'un tiret bas dans un nom de variable. Les variables membres "public" ne devraient jamais commencer par un tiret bas. Copyright ©2007 Zend Technologies, Inc.

# 88


Conventions de nommage

Constantes

• Les constantes 

 

Peuvent contenir des caractères alphanumérique et des tirets bas, les nombres sont autorisés. Elles doivent toujours être en majuscule. Elles doivent toujours être définies comme des membres d'une classe, en utilisant la construction "const".

• Définir des constantes globales avec "define" est permis mais déconseillé.

Copyright ©2007 Zend Technologies, Inc.

# 89


Style de codage

Copyright Š 2007, Zend Technologies Inc.


Style de codage

Démarcation du code PHP • Les démarcations PHP doivent toujours être

délimitées par la forme complète : (<?php ...). • Les balises courtes d'ouverture ne sont pas autorisées.

Copyright ©2007 Zend Technologies, Inc.

# 91


Style de codage

Chaînes de caractères • Lorsqu'une chaîne est littérale (i.e elle ne contient pas de substitution de variables), le guillemet simple doit être utilisé pour démarquer la chaîne. 

$a = 'Example String';

• Lorsque qu'une chaîne litérale contient des

apostrophes, il est permis de les démarquer en utilisant les guillemets doubles. 

$sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";

Copyright ©2007 Zend Technologies, Inc.

# 92


Style de codage

Substitution de variables • Elle est permise sous deux formes : $greeting = "Bonjour $name, bienvenue!"; $greeting = "Bonjour {$name}, bienvenue!"; // Cette forme n'est pas permise (pour des raisons d'uniformité) $greeting = "Bonjour ${name}, bienvenue!";

Copyright ©2007 Zend Technologies, Inc.

# 93


Style de codage

Concaténation de chaînes • Les chaînes peuvent êtres concaténées en

utilisant l'opérateur ".". Un espace doit toujours être ajouté avant, et après cet opérateur, cela permet d'améliorer la lisibilité. 

$company = 'Zend' . 'Technologies';

• Lors de la concaténation de chaînes avec l'opérateur "." 

Il est permis de couper le segment en plusieurs lignes pour améliorer la lisibilité. Dans ces cas, chaque nouvelle ligne doit être remplie avec des espaces, de façon à aligner le "." sous l'opérateur "=". Copyright ©2007 Zend Technologies, Inc.

# 94


Style de codage

Concaténation de chaînes • Exemple de concaténation sur plusieurs lignes $sql = "SELECT `id`, `name` FROM `people` WHERE `name` = 'Susan' ORDER BY `name` ASC ";

Copyright ©2007 Zend Technologies, Inc.

# 95


Style de codage

Verifier les chaînes • Dans chaque fichier de l'application fournie   

Vérifier le format des chaînes de caractères. Mettre les concaténations à la norme. Faites en sorte que les lignes ne dépassent pas 80 caractères.

Ce sont souvent les chaînes qui dépassent en longueur les 80 caractères max. conseillés d'une ligne ! Copyright ©2007 Zend Technologies, Inc.

# 96


Style de codage

Tableaux

• Tableaux indexés numériquement  

 

L'utilisation d'indices négatifs n'est pas permise. Un tableau indexé doit commencer avec n'importe quel nombre positifs, cependant cette méthode est déconseillée. Il est conseillé de commencer l'indexation à 0. Lors de la déclaration de tableaux indexés avec la construction array, un espace doit être ajouté après chaque virgule délimitante, pour améliorer la lisibilité. Ex : $sampleArray = array(1, 2, 3, 'Zend', 'Studio');

Copyright ©2007 Zend Technologies, Inc.

# 97


Style de codage

Tableaux

• Tableaux indexés numériquement 

Il est aussi permis de déclarer des tableaux indexés sur plusieurs lignes en utilisant la construction array. Dans ce cas, chaque nouvelle ligne doit être remplie par des espaces jusqu'à ce que cette ligne s'aligne (cf. slide suivant).

• Lors de la déclaration de tableaux associatifs avec la construction array  

Séparer la définition sur plusieurs lignes. Dans ce cas, chaque ligne successive doit être remplie par des espaces pour que les clés et les valeurs soient alignées.

Copyright ©2007 Zend Technologies, Inc.

# 98


Style de codage

Tableaux

• Exemple de déclaration de tableaux $sampleArray = array(1, 2, 3, 'Zend', 'Studio', $a, $b, $c, 56.44, $d, 500); $sampleArray = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue');

Copyright ©2007 Zend Technologies, Inc.

# 99


Style de codage

Check des tableaux • Dans l'application fournie  

Vérifier si les tableaux sont tous déclarés correctement. Mettre les déclarations et les lignes qui utilisent les tableaux à la norme.

Ne pas oublier de déclarer votre tableau avant de l'utiliser !

Copyright ©2007 Zend Technologies, Inc.

# 100


Style de codage

Déclaration de classes • Règles de déclaration 

 

L'accolade est toujours écrite dans la ligne sous le nom de la classe (forme "one true brace"). Toutes les classes doivent avoir un bloc de documentation conforme à PHPDocumentor. Tout code d'une classe doit être indenté avec 4 espaces. Une seule classe par fichier PHP. Le placement de code additionnel dans un fichier de classe est permis, mais déconseillé. Dans ces fichier, deux lignes vides doivent séparer la classe du code PHP additionel.

Copyright ©2007 Zend Technologies, Inc.

# 101


Style de codage

Déclaration de classes • Exemple de déclaration de classe /** * Bloc de documentation */ class SampleClass { // contenu de la classe // qui doit être indenté avec 4 espaces }

Copyright ©2007 Zend Technologies, Inc.

# 102


Style de codage

Compléter les classes • Compléter les classes existantes  

Par une documentation phpdoc utile. Essayer de mettre une exemple d'utilisation entre des balises <code></code>.

Mettre aussi quelques tags phpdoc utiles : licence, auteur, version, paquetage, sous-paquetage, ... Copyright ©2007 Zend Technologies, Inc.

# 103


Style de codage

Variables membres d'une classe • Les variables membres (propriétés) 

Doivent être nommées en respectant les conventions de nommage. Doivent être listée en haut de la classe, avant toute déclaration de fonction.

• La construction var (PHP4) n'est pas permise en PHP5. 

Toujours mentionner la visibilité : private, protected, ou public. L'accès direct aux variables membres publiques est permis mais déconseillé. Il est préférable d'utiliser des accesseur (set/get). Copyright ©2007 Zend Technologies, Inc.

# 104


Style de codage

Fonctions, méthodes • Les fonctions 

Doivent être nommées en respectant les conventions de nommage.

• Mentionner la visibilité des fonctions internes aux

classes (private, protected, ou public) est obligatoire. • Tout comme les classes, l'accolade ouvrante est toujours écrite sous le nom de la fonction (form "one true brace").

Copyright ©2007 Zend Technologies, Inc.

# 105


Style de codage

Fonctions, méthodes • Il n'y a pas d'espace entre le nom de la fonction et les parenthèses des arguments. • Il n'y a pas d'espace entre la parenthèse fermante et l'accolade.

Copyright ©2007 Zend Technologies, Inc.

# 106


Style de codage

Fonctions, méthodes • Les fonctions globales sont fortement

déconseillées. • Le passage par référence est permis uniquement dans la déclaration de la fonction. • L'appel par référence est interdit. • La valeur de retour ne doit pas être entourée de parenthèses. 

Ceci peut gêner à la lecture et peut aussi casser le code si une méthode est modifiée plus tard pour retourner par référence.

Copyright ©2007 Zend Technologies, Inc.

# 107


Style de codage

Fonctions, méthodes • Déclarer fonctions et méthodes /* * Bloc de documentation */ function sampleMethod($a) { // contenu de la fonction // qui doit être indenté avec 4 espaces } function sampleMethod(&$a) {}

Copyright ©2007 Zend Technologies, Inc.

# 108


Style de codage

Fonctions, méthodes • Retour de fonction function foo() { // INCORRECT return($this->bar);

}

// CORRECT return $this->bar;

Copyright ©2007 Zend Technologies, Inc.

# 109


Style de codage

Vérification des fonctions • Dans les fonctions de l'application fournie  

Vérifier si leur déclaration est à la norme. Vérifier les retours, les corriger si nécessaire.

Les fonctions et les méthodes ont exactement les mêmes conventions de codage. Copyright ©2007 Zend Technologies, Inc.

# 110


Style de codage

Usage de fonctions, méthodes • Les arguments d'une fonction sont séparés par un espace après la virgule de délimitation. • L'appel par référence est interdit. 

Se référer à la section sur la déclaration de fonctions pour la méthode correcte de passer des argument par référence.

• Pour les fonctions dont les arguments peuvent être des tableaux 

L'appel à la fonction doit inclure la construction "array" et peut être divisé en plusieurs ligne pour améliorer la lecture. Dans ces cas, les standards d'écriture de tableaux s'appliquent aussi. Copyright ©2007 Zend Technologies, Inc.

# 111


Style de codage

Déclarer fonctions et méthodes • Exemple d'appels de fonctions threeArguments(1, 2, 3); threeArguments(array(1, 2, 3), 2, 3); threeArguments(array(1, 2, 3, 'Zend', 'Studio', $a, $b, $c, 56.44, $d, 500), 2, 3);

Copyright ©2007 Zend Technologies, Inc.

# 112


Style de codage

Structure de contrôle : if / else • Les structure de contrôles basée sur les construction if et elseif 

Doivent avoir un seul espace avant la parenthèse ouvrante de la condition et un seul espace après la parenthèse fermante.

• Pour la condition entre les parenthèses 

Les opérateurs doivent être séparés par des espaces pour une meilleure lisibilité. Les parenthèses internes sont conseillées pour améliorer le regroupement logique de longues conditions.

Copyright ©2007 Zend Technologies, Inc.

# 113


Style de codage

Structure de contrôle : if / else • L'accolade ouvrante est écrite sur la même ligne que la condition. • L'accolade fermant est toujours écrite sur sa propre ligne. • Tout contenu présent à l'intérieur des accolades doit être indenté par 4 espaces. • Pour les instruction "if" qui incluent "elseif" ou "else", le formattage doit être comme le montre ces exemples suivants...

Copyright ©2007 Zend Technologies, Inc.

# 114


Style de codage

Structure de contrôle : if / else • Exemple avec if, else, elseif if ($a != 2) { $a = 2; } if ($a $a } else $a }

!= 2) { = 2; { = 7;

Copyright ©2007 Zend Technologies, Inc.

# 115


Style de codage

Structure de contrôle : if / else • Exemple avec if, else, elseif if ($a != 2) { $a = 2; } elseif ($a == 3) { $a = 4; } else { $a = 7; }

Copyright ©2007 Zend Technologies, Inc.

# 116


Style de codage

Structure de contrôle : if / else • PHP permet que ces instruction soient écrites sans accolades dans certaines circonstances. 

La convention de codage ne fait pas de différentiation et toute les instructions "if", "elseif" et "else" doivent utiliser des accolades.

• L'utilisation de la construction "elseif" est permise mais fortement déconseillée au profit de la combinaison "else if".

Copyright ©2007 Zend Technologies, Inc.

# 117


Style de codage

Structure de contrôle : Switch • Les instructions de contrôle avec "switch" 

Ne doivent avoir qu'un seul espace avant ma parenthèse ouvrante de l'instruction conditionnelle, Et aussi un seule espace après la parenthèse fermante.

• Tout le contenu à l'intérieur de l'instruction

"switch" doit être indenté avec 4 espaces. • Le contenu sous chaque "case" doit être indenté avec encore 4 espaces supplémentaires.

Copyright ©2007 Zend Technologies, Inc.

# 118


Style de codage

Structure de contrôle : Switch • Exemple avec switch switch ($numPeople) { case 1: break; case 2: break;

}

default: break;

Copyright ©2007 Zend Technologies, Inc.

# 119


Style de codage

Structure de contrôle : Switch • La construction default ne doit jamais être

oubliée dans une instruction switch. • Il est parfois utile d'écrire un case sans break 

Pour distinguer ces cases et les erreurs, il est utile de mettre le break en commentaire : "// break intentionally omitted".

Copyright ©2007 Zend Technologies, Inc.

# 120


Style de codage

If et Switch • Dans l'application fournie   

Vérifier la structure des if. Vérifier la structure des switch. Ajouter les accolades si elles ne sont pas mentionnées.

La plupart des conventions pour if et switch se retrouveront dans d'autres structures (for, foreach, etc.) Copyright ©2007 Zend Technologies, Inc.

# 121


La PHPDOC

Copyright Š 2007, Zend Technologies Inc.


La PHPDOC

Introduction • La phpdoc est un standard d'écriture pour la

documentation d'un code source en PHP. • On reconnait la phpdoc à sa structure. • La phpdoc permet de documenter en particulier     

Les fichiers php Le classes Les fonctions et les méthodes de classe Les constantes et les propriétés de classe Les include / require

Copyright ©2007 Zend Technologies, Inc.

# 123


La PHPDOC

Importance de la documentation • La documentation permet de rendre compréhensible un code source. • La phpdoc est un standard !   

Qui permet de travailler à plusieurs. Qui permet d'échanger le code source. Qui rend possible une génération universelle de documentation en ligne ou papier.

Copyright ©2007 Zend Technologies, Inc.

# 124


La PHPDOC

Structure de la PHPDOC • La PHPDOC est reconnaissable à sa structure /** * Je suis un commentaire PHPDOC ! */

Copyright ©2007 Zend Technologies, Inc.

# 125


La PHPDOC

Les balises de la PHPDOC • La PHPDOC possède des balises d'identification /** * Je suis le titre de mon commentaire. * * Je suis le contenu de mon commentaire. * * @author Steven Van Poeck <steven@zend.com> * @copyright Zend 2006 * @package taskmanager * @version 0.1 */

Copyright ©2007 Zend Technologies, Inc.

# 126


La PHPDOC

Les tags utiles (1) • @access 

Désigne la visibilité d'une propriété ou d'une méthode (public, protected, private static).

• @author 

Auteur de l'élément (page, classe, méthode, fonction, propriété)

• @copyright 

Copyright du code source ou de la classe.

Copyright ©2007 Zend Technologies, Inc.

# 127


La PHPDOC

Les tags utiles (2) • @deprecated 

La présence de ce tag informe le développeur que cette fonctionnalité est dépréciée et sera retirée à terme.

• @example 

Lien vers un exemple. Il est aussi possible de mettre en place des exemples "inline".

• @ignore 

Demande au parseur phpdoc d'ignorer un élément (pour un doublon par exemple)

Copyright ©2007 Zend Technologies, Inc.

# 128


La PHPDOC

Les tags utiles (3) • @internal 

Introduit une documentation "privée" qui peut être ou ne pas être générée à la demande.

• @link 

Introduit un lien en rapport avec l'élément (exemple ou documentation supplémentaire). Cette balise n'accepte qu'un lien http.

• @see 

Fait référence à une ressource (classe, fonction, etc. ou lien).

Copyright ©2007 Zend Technologies, Inc.

# 129


La PHPDOC

Les tags utiles (4) • @since 

Informe depuis quelle version de l'application une fonction existe.

• @tutorial 

Lien vers la documentation étendue de l'élément. Pour d'autres liens, utiliser plutôt @link ou @see.

• @version 

Version de l'élément.

Copyright ©2007 Zend Technologies, Inc.

# 130


La PHPDOC

Complétion dans l'éditeur • Les tags @var et @return permettent d'expliciter

le type de donnée qui sera contenu dans une propriété ou renvoyé par une fonction ou une méthode. • Dans l'exemple du slide suivant, l'éditeur sait que la propriété $statement contient une valeur de type PDOStatement.

Copyright ©2007 Zend Technologies, Inc.

# 131


La PHPDOC

Complétion dans Zend Studio

Copyright ©2007 Zend Technologies, Inc.

# 132


La PHPDOC

Documentation d'un fichier • Dans un fichier de l’application fournie   

Ajoutez un commentaire PHPDOC en haut du fichier Ajoutez un titre et une description Repérez les tags utiles à la description du fichier et ajoutez-les

• A l'aide de l'assistant PHPDocumentor de Zend Studio, générez une documentation sur ce fichier

IMPORTANT : Documentez votre code au fur et à mesure. A la fin de la formation, nous générerons la documentation de l'ensemble de vos exercices. Copyright ©2007 Zend Technologies, Inc.

# 133


Migration vers PHP 5

Copyright Š 2007, Zend Technologies Inc.


Migration vers PHP 5 - Introduction

Pourquoi migrer ?

• Plus de stabilité • Plus de fonctionnalités • Plus d'évolutivité • Bénéficier des nouveautés, entre autre :    

Un support POO complet Un support XML simple, fiable et rapide Une interopérabilité efficace avec les services web Des extensions puissantes : PDO, SOAP, ...

Copyright ©2007 Zend Technologies, Inc.

# 135


Migration vers PHP 5 • • • • •

Ce qui change entre PHP 4 et PHP 5 Préparer un plan de migration L'étape de l'adaptation L'étape de l'optimisation Outils pour la migration

Une migration vers PHP 5 doit pouvoir se faire avec méthode. Ce support est important pour tous ceux qui souhaitent gagner du temps et de l'énergie. Copyright ©2007 Zend Technologies, Inc.

# 136


Ce qui change entre PHP 4 et PHP 5

Copyright Š 2007, Zend Technologies Inc.


Ce qui change entre PHP 4 et PHP 5

Différences syntaxiques • Visibilité des propriétés et méthodes de classe • Introduction des interfaces • Gestion des exceptions • Des mots clés supplémentaires 

exception, final, php_user_filter, interface, implements, public, private, protected, abstract, clone, try, catch, throw

• Des mots clés en moins 

cfunction, old_function

Copyright ©2007 Zend Technologies, Inc.

# 138


Ce qui change entre PHP 4 et PHP 5

Différences importantes (POO) • Passage par référence des objets  

par défaut en PHP 5 (vs par copie en PHP 4) passage par copie avec 'clone'

• Un objet sans propriété n'est plus vide • Une classe doit être déclarée avant son utilisation • get_class(), get_parent_class(), get_class_methods() 

respectent la casse de la classe retournée

• __CLASS__, __METHOD__, et __FUNCTION__ 

doivent être écrits en majuscules uniquement Copyright ©2007 Zend Technologies, Inc.

# 139


Ce qui change entre PHP 4 et PHP 5

Différences importantes • strrpos et strripos matchent la chaine needle

entière • array_merge ne fonctionne qu'avec des tableaux • ip2long renvoit FALSE plutôt que -1 si une IP invalide est passée en argument • En cas de double inclusion d'un fichier contenant une déclaration (fonction, classe), une erreur fatale est générée

Copyright ©2007 Zend Technologies, Inc.

# 140


Ce qui change entre PHP 4 et PHP 5

Apports significatifs • Extensions objet 

Plusieurs extensions (mysqli, PDO, DOM, ...) sont orientées objet.

• Standard PHP Library 

L'utilisation de la SPL avec PHP 5 augmente les performances et les possibilités des objets

• Le support XML   

Est simplifié, stabilisé et complété Mise à disposition de SimpleXML Amélioration du support DOM

Copyright ©2007 Zend Technologies, Inc.

# 141


Ce qui change entre PHP 4 et PHP 5

Différences méthodologiques • Ce qui est maintenu  

Simplicité et souplesse Performances

• Ce qui évolue   

La notion de POO, les possibilités de modélisation La réutilisabilité L'amélioration des supports XML et bases de données

Copyright ©2007 Zend Technologies, Inc.

# 142


Préparer un plan de migration

Copyright © 2007, Zend Technologies Inc.


Préparer un plan de migration

Quelle est votre situation ? • Existant en PHP 4 à migrer • Migration en cours mais difficile • Existant en un autre langage à migrer   

Java ASP Autre

• Existant en PHP 5 à améliorer • Je travaille avec des outils   

Des tests unitaires Un profiler / debogueur La phpdoc Copyright ©2007 Zend Technologies, Inc.

# 144


Préparer un plan de migration

Préparation du plan de migration • Adapter le plan à votre situation    

Les caractéristiques de l'existant (langage, densité) Les méthodes de travail (tests, qualité) Les outils utilisés (framework, tests unitaires) Les ressources disponibles (habitudes, connaissances)

• Faire un plan par étapes  

Sélectionner les étapes à mettre en place Définir un processus pour chaque étape

Copyright ©2007 Zend Technologies, Inc.

# 145


Préparer un plan de migration

Etapes de migration • Adaptation     

Vérification des fonctions qui ont changées Passage en PHP 5, compatible Zend Engine I Vérification des classes et de leurs utilisations Adaptation des classes et de la syntaxe Passage en PHP 5, Zend Engine II

• Optimisation    

Passage en PHP 5, Zend Engine II, E_STRICT Mise à jour de la syntaxe Mise à jour des extensions et fonctionnalités Mise à jour de l'architecture globale

Copyright ©2007 Zend Technologies, Inc.

# 146


Préparer un plan de migration

En fonction de votre situation... • Si vous migrez depuis PHP 4 

Alors toutes ces étapes doivent être prises en compte

• Si vous migrez depuis un autre langage 

Alors passez directement en PHP 5 E_STRICT et développez avec une bonne architecture (sur le Zend Framework par exemple)

Copyright ©2007 Zend Technologies, Inc.

# 147


Préparer un plan de migration

En fonction de votre situation... • Si vous partez d'un existant PHP 5 

Faites toutes les étapes d'optimisation Il est recommandé d'optimiser avec les tests unitaires

• Si vous recommencez une migration 

Commencez à partir de 'vérification des classes et de leurs utilisations'

Copyright ©2007 Zend Technologies, Inc.

# 148


L'étape de l'adaptation

Copyright © 2007, Zend Technologies Inc.


L'étape de l'adaptation

Plan général d'adaptation • Vérifier les fonctions 

Quelques rares fonctions ne sont pas présentes ou ont été modifiées dans PHP 5

• Passage en PHP 5, compatible Zend Engine I 

Cela permet d'être en PHP 5 tout en restant compatible avec le moteur de PHP 4

• Vérification et adaptation des classes 

C'est l'étape la plus minutieuse et critique : passage par référence par défaut en PHP 5

• PHP 5, Zend Engine II 

Mise en place du moteur de PHP 5 juste après l'étape précédente et déboguage complet Copyright ©2007 Zend Technologies, Inc.

# 150


L'étape de l'adaptation

Check : fonctions, mots clés • Vérification des fonctions suivantes    

strrpos, strripos array_merge get_class, get_parent_class, get_class_methods ip2long

• Supprimer les mots clés suivants 

cfunction, old_function

• Les mots clés suivants ne doivent pas être utilisés 

exception, final, php_user_filter, interface, implements, public, private, protected, abstract, clone, try, catch, throw

Copyright ©2007 Zend Technologies, Inc.

# 151


L'étape de l'adaptation

Vérification

• Rechercher ces mots clés et... 

Vérifier leur fonctionnement s'il s'agit de fonctions qui ont évoluées Les supprimer (et les remplacer par un équivalent) s'ils ont été retirés Les modifier s'ils entrent en conflit avec un nouveau mot clé

Copyright ©2007 Zend Technologies, Inc.

# 152


L'étape de l'adaptation

PHP 5, compatible ZE I • Passer en PHP 5 compatible Zend Engine I 

Dans php.ini, mettre la directive 'zend.ze1_compatibility_mode' à On Cela a pour effet d'utiliser PHP 5 avec le moteur de PHP 4

• S'il y a des problèmes 

Les corriger à l'aide d'un débogueur et les erreurs affichées

• Si tout fonctionne 

Alors les différences minimes entre PHP 4 et PHP 5 sont réglées, passer à l'étape suivante

Copyright ©2007 Zend Technologies, Inc.

# 153


L'étape de l'adaptation

Vérification des classes • Objectif 

Vérifier toutes les instanciations de classes et les passages des objets aux fonctions et aux variables

• Deux solutions pour rendre compatible PHP 5 

Mettre le mot clé 'clone' devant tout passage aux fonctions et aux variables (non recommandé) Remanier le code pour tenir compte du passage par référence (recommandé, cf. slide suivant)

Copyright ©2007 Zend Technologies, Inc.

# 154


L'étape de l'adaptation

Adaptation des classes • Passage par référence = même objet <?php function modify($obj) { $obj->name = 'Guillaume'; } // L'objet $a est modifié PHP 5 ! $a = new MyObj(); modify($a); // L'objet $a est modifié PHP 5 ! $b = $a; $b->name = 'William';

Copyright ©2007 Zend Technologies, Inc.

# 155


L'étape de l'adaptation

Méthode d'adaptation • Relire son algorithme 

est nécessaire pour détecter les problèmes éventuels

• Utiliser 'clone' si c'est nécessaire • Retirer les & du passage par référence PHP 4 • Référence, copie : pour ou contre ? 

Le passage par référence économise des ressources : on ne duplique pas l'objet en mémoire En Java, C++, les passages sont faits aussi par référence par défaut

Copyright ©2007 Zend Technologies, Inc.

# 156


L'étape de l'adaptation

PHP 5, ZE II

• Une fois toutes les vérifications effectuées  

Passer 'zend.ze1_compatibility_mode' à Off Tester minutieusement l'ensemble des fonctionnalités

• En cas de dysfonctionnement  

Se référer à l'erreur générée (cas facile) Relire son algorithme en ayant en tête les évolutions précédentes

• A la fin de cette étape, votre application fonctionne mais n'est pas optimisée pour PHP 5

L'utilisation des tests unitaires réduira considérablement le temps passé à cette étape tout en assurant un maximum de stabilité à votre migration, pensez-y ! Copyright ©2007 Zend Technologies, Inc.

# 157


L'étape de l'optimisation

Copyright © 2007, Zend Technologies Inc.


L'étape de l'optimisation

Plan général d'optimisation • Passage en E_STRICT 

E_STRICT concerne les spécificités de PHP 5

• Remaniement de la syntaxe 

Effectuer toutes les modifications de manière à ne pas générer d'erreurs E_STRICT

• Les extensions natives 

De nombreuses fonctionnalités sont devenues stables et efficaces en PHP 5, il est très recommandé d'effectuer ces petites migrations

• L'architecture 

On passe du procédural à l'objet, cela permet d'adopter une architecture mixte intéressante Copyright ©2007 Zend Technologies, Inc.

# 159


L'étape de l'optimisation

Passage en E_STRICT • Le passage en E_STRICT permet   

d'être assuré de l'utilisation de la syntaxe PHP 5 de remanier la syntaxe si nécessaire d'avoir des suggestions pour améliorer le code

• Ce mode produit des notices 

Pas d'arrêt d'exécution en cas d'erreur

Copyright ©2007 Zend Technologies, Inc.

# 160


L'étape de l'optimisation

Adoption des extensions natives • Avantages   

Rapidité et stabilité accrues Moins de code PHP pour plus de performances Des extensions objet faciles à manier

• Quelques extensions natives objet pour PHP 5 

DOM, PDO et ses drivers, mysqli, SDO, SimpleXML, SQLite, SPL, XMLReader, XSL

Copyright ©2007 Zend Technologies, Inc.

# 161


L'étape de l'optimisation

Remaniement de l'architecture • Du procédural à l'objet  

L'architecture globale évolue L'architecture des composants évolue

• Quelle différence ? 

 

L'objet est plus modulaire et compatible UML, bien que plus verbeux La phpdoc est plus lisible et complète en objet Le travail en équipe est favorisé par la structuration objet

Copyright ©2007 Zend Technologies, Inc.

# 162


Outils pour la migration

Copyright Š 2007, Zend Technologies Inc.


Outils pour la migration

Utilité des outils • Migrer plus rapidement  

En automatisant En ayant une meilleure visibilité

• Assurer stabilité et cohérence  

En testant efficacement En maintenant les performances au top

• Migrer efficacement l'architecture 

Grâce à la maîtrise de celle-ci à tout moment

Copyright ©2007 Zend Technologies, Inc.

# 164


Outils pour la migration

DiversitĂŠ des outils

Copyright Š2007 Zend Technologies, Inc.

# 165


Outils pour la migration

Les tests unitaires • Ils sont l'allié de tout refactoring • Ils assurent le bon fonctionnement du code • Ils permettent de trouver tout de suite où se trouve l'erreur • Principe 

 

A chaque fonctionnalité élémentaire, un test est déclaré Ce test déroule un scénario qui utilise cette fonctionnalité Tout ce qui est effectué est contrôlé En cas d'erreur ou d'incohérence, le test échoue

Copyright ©2007 Zend Technologies, Inc.

# 166


Outils pour la migration

Méthode migration avec les TU • Test à postériori  

1. développer la fonctionnalité 2. développer les tests par dessus

• Test à priori  

1. construire le squelette applicatif 2. développer les tests comme si la fonctionnalité existait 3. développer la fonctionnalité jusqu'à ce que les tests passent

• Notion de couverture 

A 0%, la couverture est nulle (pas de test) et à 100%, la couverture est maximale (test de tout le code) Copyright ©2007 Zend Technologies, Inc.

# 167


Outils pour la migration

Un profiler / débogueur • Le profiler 

Donne des statistiques sur l'ensemble des instructions élémentaires effectuées par une requête PHP Détecte : les goulots d'étranglements, les doublons

• Le débogueur 

Permet d'exécuter une requête pas à pas en maîtrisant l'ensemble de l'environnement Utilité : examiner le déroulement d'une requête qui présente des difficultés

Copyright ©2007 Zend Technologies, Inc.

# 168


La gestion des versions

Copyright Š 2007, Zend Technologies Inc.


La gestion des versions

Introduction

• Principe du versionnage • Outils existants • Opérations de base • Récupération après conflit ou erreur • Bonnes pratiques • Considérations d'architecture • Utilisation dans Zend Studio

Copyright ©2007 Zend Technologies, Inc.

# 170


Principe du versionnage

Copyright Š 2007, Zend Technologies Inc.


Principe du versionnage

Introduction

• Objectifs, utilité • Principe global • Le serveur • Le client

Copyright ©2007 Zend Technologies, Inc.

# 172


Principe du versionnage

Objectifs, utilité • Permettre le travail à plusieurs   

Partage des sources Gestion des conflits d'écritures Mémorisation de 'qui à fait quoi'

• Gestion de versions   

Figer une version que l'on peut extraire à tout moment Revenir sur une version de fichier de l'application Gérer plusieurs versions en parallèle

Copyright ©2007 Zend Technologies, Inc.

# 173


Principe du versionnage

Principe global

Copyright Š2007 Zend Technologies, Inc.

# 174


Principe du versionnage

Le serveur

• Une base de données (dépot de données) • Lié à un démon (http, ssh) • Gestion des utilisateurs, des groupes et des droits • Un outil de gestion et d'administration

Copyright ©2007 Zend Technologies, Inc.

# 175


Principe du versionnage

Le client

• Un logiciel 'client' (TortoiseSVN...) • La dernière copie de travail en cours • Des méta-fichiers (.svn, .cvs)

Copyright ©2007 Zend Technologies, Inc.

# 176


Outils existants

Copyright Š 2007, Zend Technologies Inc.


Outils existants

Introduction • CVS et Subversion • Fonctionnalités de Subversion

Copyright ©2007 Zend Technologies, Inc.

# 178


Outils existants

CVS et Subversion • CVS et Subversion : 2 outils phares pour la gestion des sources • Tous deux opensource • CVS  

Existe depuis de nombreuses années Un outil qui a fait ses preuves

• Subversion  

Le successeur de CVS Meilleure gestion des fichiers binaires et des répertoires

Copyright ©2007 Zend Technologies, Inc.

# 179


Outils existants

Fonctionnalités de Subversion • Versionnage, stockage dans une base berkeley • Gestion avancée des droits 

Utilisateurs, groupes, droits sur répertoire, lecture/écriture

• Association avec un serveur HTTP ou SSH • Copies (tags), branches, merges • Différences, historique, logs • Adaptation à LDAP

Copyright ©2007 Zend Technologies, Inc.

# 180


Outils existants

Installation du client • Téléchargez TortoiseSVN • Installez-le • Vérifiez son bon fonctionnement en faisant un clic•

droit sur n'importe quel dossier à votre disposition. Faites une extraction (checkout) du projet spécifié par votre formateur.

Le premier client Subversion est l'exécutable 'svn' en ligne de commandes. Celui-ci est très pratique dans un environnement UNIX/Linux. Copyright ©2007 Zend Technologies, Inc.

# 181


Opérations de base

Copyright © 2007, Zend Technologies Inc.


Opérations de base

Introduction • Liste des opérations • Exemples d'utilisation en ligne de commandes

Copyright ©2007 Zend Technologies, Inc.

# 183


Opérations de base

Liste des opérations • • • • • • • • •

checkout update commit add cat cleanup copy delete export, import

• • • • • • • • • •

info list log merge move revert status switch lock, unlock mkdir

Copyright ©2007 Zend Technologies, Inc.

# 184


Opérations de base

Commandes usuelles

Copyright ©2007 Zend Technologies, Inc.

# 185


Opérations de base

Commande ADD • Exemple avec la commande svn add [guillaume@guillaume training]$ svn add 17_version_control A 17_version_control A 17_version_control/pictures A (bin) 17_version_control/pictures/zendstudio_svn_menu.png A (bin) 17_version_control/pictures/zendstudio_svn_commit.png A (bin) 17_version_control/pictures/zendstudio_svn_configuration.png A (bin) 17_version_control/pictures/subversion_principe.odg A (bin) 17_version_control/pictures/subversion_principe.png A (bin) 17_version_control/version_control.odp

Copyright ©2007 Zend Technologies, Inc.

# 186


Opérations de base

Commande COMMIT • Exemple avec la commande svn commit $ svn commit -m "Ajout des slides version control" 17* guillaume@notredame's password: Ajout 17_version_control Ajout 17_version_control/pictures Ajout (bin) 17_version_control/pictures/subversion_principe.odg Ajout (bin) 17_version_control/pictures/subversion_principe.png Ajout (bin) 17_version_control/pictures/zendstudio_svn_commit.png Ajout (bin) 17_version_control/pictures/zendstudio_svn_configuration.png Ajout (bin) 17_version_control/pictures/zendstudio_svn_menu.png Ajout (bin) 17_version_control/version_control.odp Ajout 17_version_control/version_control.php Transmission des données ....... Révision 96 propagée.

Copyright ©2007 Zend Technologies, Inc.

# 187


Opérations de base

Commande STATUS • Exemple avec la commande svn status [guillaume@guillaume Zend]$ svn status ? VersionControl ? Subversion ? CodingStandards ? VersionControl.php M PhpEssentials.php M Reuse.php M CodingStandards.php M Common.php

Copyright ©2007 Zend Technologies, Inc.

# 188


Opérations de base

Commande CHECKOUT • Exemple avec la commande svn checkout $ svn checkout svn+ssh://guillaume@notredame/(...)/17_version_control guillaume@notredame's password: A 17_version_control/version_control.odp A 17_version_control/version_control.php A 17_version_control/pictures A 17_version_control/pictures/subversion_principe.odg A 17_version_control/pictures/zendstudio_svn_menu.png A 17_version_control/pictures/zendstudio_svn_configuration.png A 17_version_control/pictures/zendstudio_svn_commit.png A 17_version_control/pictures/subversion_principe.png Révision 98 extraite.

Copyright ©2007 Zend Technologies, Inc.

# 189


Opérations de base

Commande UPDATE • Exemple avec la commande svn update [guillaume@guillaume Slides]$ svn update guillaume@notredame's password: A Zend/Subversion A Zend/VersionControl A Zend/VersionControl/code_subversion_update.php A Zend/VersionControl/code_subversion_status.php A Zend/VersionControl/code_subversion_checkout.php A Zend/VersionControl/code_subversion_add.php A Zend/VersionControl/code_subversion_commit.php A Zend/CodingStandards U Zend/PhpEssentials.php U Zend/Reuse.php A Zend/VersionControl.php U Zend/CodingStandards.php U Zend/Common.php Actualisé à la révision 99.

Copyright ©2007 Zend Technologies, Inc.

# 190


Opérations de base

Principe chronologique

Copyright ©2007 Zend Technologies, Inc.

# 191


Opérations de base

Utilisation de TortoiseSVN • Avec le dépôt de données (repository) fourni  

    

Faites un 'checkout' de l'application Créez un fichier ayant pour nom le nom de votre poste et ajoutez-le (add) Supprimez également un fichier Regardez ce que la commande 'svn status' renvoie Regardez ce que la commande 'svn diff' renvoie Validez le tout avec la commande 'commit' Faites une mise à jour (update) une fois que tout le monde a validé (commit) N'hésitez pas à aller plus loin en regardant la documentation et la signification des autres options dans TortoiseSVN. Copyright ©2007 Zend Technologies, Inc.

# 192


Récupération après conflit ou erreur

Copyright © 2007, Zend Technologies Inc.


Récupération après conflit ou erreur

Introduction

• Qu'est-ce qu'un conflit ? • Résoudre un conflit • Merges automatiques • Résoudre un blocage

Copyright ©2007 Zend Technologies, Inc.

# 194


Récupération après conflit ou erreur

Qu'est-ce qu'un conflit ? • Détecter un conflit 

En ligne de commande : marque 'C' devant un fichier (liste de l'update) Avec TortoiseSVN : le fichier apparaît avec une marque rouge

• Fichiers générés    

Fichier .mine : votre fichier tel qu'il était avant l'update Fichier .r<1> : révision avant l'update Fichier .r<2> : révision après l'update Fichier en conflit : contient des marques >>> ... <<< aux endroits où le conflit à lieu

Copyright ©2007 Zend Technologies, Inc.

# 195


Récupération après conflit ou erreur

Générer un conflit

• Dans votre copie locale  

Modifiez le fichier zend.php à la racine de l'application fournie Une fois que tout le monde a modifié, commitez tous en même temps Si la validation (commit) ne fonctionne pas, faites une mise à jour (update) Ceux qui ont un conflit déclaré ne peuvent plus valider (commit)

De nombreux updates permettent entre autre de réduire le nombre de conflits que vous pouvez avoir. Copyright ©2007 Zend Technologies, Inc.

# 196


Récupération après conflit ou erreur

Résoudre un conflit • Deux solutions 

Supprimer le fichier original et renommer un métafichier (.mine ou .r<x>) en lui retirant son extension Editer le fichier original, résoudre le conflit manuellement et supprimer les métafichiers

• Remarque 

Tant que les méta-fichiers existent, le conflit est actif, il n'est pas possible de valider (commit)

Copyright ©2007 Zend Technologies, Inc.

# 197


Récupération après conflit ou erreur

Résoudre le conflit

• Connecter le vidéo-projecteur sur un poste stagiaire • Sur ce poste 

Résoudre le conflit manuellement

• Puis sur tous les autres postes  

Supprimer le fichier et ses méta-fichiers Puis faire une mise à jour (update)

La résolution du conflit doit toujours être effectuée par une seule personne, sinon d'autres conflits seront générés. Copyright ©2007 Zend Technologies, Inc.

# 198


Récupération après conflit ou erreur

Merges automatiques • Si des modifications ont été effectuées par deux personnes en même temps dans des endroits différents d'un même fichier, Subversion va résoudre le conflit automatiquement 

Les modifications des deux personnes seront prises en compte Un indicateur 'G' apparaît lors d'une mise à jour (update) en ligne de commandes Il est nécessaire de tester le bon fonctionnement du fichier et de l'application en cas de merge automatique

Copyright ©2007 Zend Technologies, Inc.

# 199


Récupération après conflit ou erreur

Merge automatique

• Connecter le vidéo-projecteur sur un poste stagiaire 

Modifier une ligne et en ajouter une autre en haut du fichier puis valider (commit)

• Connecter le vidéo-projecteur sur un autre poste 

Modifier une ligne et en supprimer une en bas du fichier puis mettre à jour (update) Vérifier le bon fonctionnement du merge

Les merges automatiques sont activés par défaut. Se référer à la documentation de Subversion pour les considérer comme des conflits à résoudre manuellement. Copyright ©2007 Zend Technologies, Inc.

# 200


Récupération après conflit ou erreur

Résoudre un blocage • Si la copie locale devient instable  

Il n'est plus possible de valider (commit) Subversion affiche un message d'erreur demandant de faire un 'cleanup'

• Résolution 

A la racine de la copie locale, lancer la commande 'cleanup'

Copyright ©2007 Zend Technologies, Inc.

# 201


Récupération après conflit ou erreur

Résoudre un blocage • Si le cleanup ne résoud pas le problème 

 

Déplacer le répertoire en erreur en dehors de la copie de travail Faire une mise à jour (update) Remplacer un par un les fichiers modifiés dans la partie mise à jour Puis valider (commit)

Copyright ©2007 Zend Technologies, Inc.

# 202


Bonnes pratiques

Copyright Š 2007, Zend Technologies Inc.


Bonnes pratiques

Introduction • Documenter le commit • Mettre à jour régulièrement • Valider du code jouable • Nommer les versions • Nommer les branches • Versions stables / instables

Copyright ©2007 Zend Technologies, Inc.

# 204


Bonnes pratiques

Documenter le commit • Lors de la validation, un message peut être saisi • A quoi bon ?   

Savoir ce pour quoi les modifications ont été faites Avoir un aperçu de l'avancement Savoir qui a fait quoi

• Associé à la commande commit 

la commande 'log' permet de consulter les messages émis avec commit

Copyright ©2007 Zend Technologies, Inc.

# 205


Bonnes pratiques

Commande LOG • Exemple avec la commande svn log [guillaume@guillaume 06_php_advanced]$ svn log . guillaume@notredame's password: ------------------------------------------------------------------r78 | guillaume | 2007-01-11 17:59:03 (jeu, 11 jan 2007) | 1 line Conventions de codage et corrections des bugs signalés ------------------------------------------------------------------r77 | guillaume | 2007-01-09 19:01:26 (mar, 09 jan 2007) | 1 line Corrections orthographiques sur les slides de php avancé ------------------------------------------------------------------r52 | steven | 2006-10-04 09:04:22 (mer, 04 oct 2006) | 4 lines (...) Initial import -------------------------------------------------------------------

Copyright ©2007 Zend Technologies, Inc.

# 206


Bonnes pratiques

Mettre à jour régulièrement • La mise à jour (update) permet de maintenir

votre copie de travail à jour • Elle tient compte des modifications validées par les membres de l'équipe • Elle permet de détecter et résoudre les conflits • On peut mettre à jour à n'importe quel moment 

Il faudra penser à mettre à jour (update) systématiquement avant de travailler et avant de valider (commit)

Copyright ©2007 Zend Technologies, Inc.

# 207


Bonnes pratiques

Valider du code jouable • Pourquoi ? 

Parce que n'importe quel export de votre application doit fonctionner, même si vous choisissez un export antérieur à la date courante. Parce que tout ce qui est validé dans le dépôt de données (repository) est enregistré à jamais. Parce que du code qui ne marche pas ne sert à rien.

Copyright ©2007 Zend Technologies, Inc.

# 208


Bonnes pratiques

Nommer les versions • Il existe deux types de versions  

Les versions de fichiers, qui sont gérées par Subversion Les versions de votre application, qui sont gérées par les utilisateurs

• Nommage des versions   

RELEASE_<version>_<subversion>_<revision>[_<rc>] Ex : RELEASE_1_2_1 Ex : RELEASE_2_0_0_RC1 (release candidate 1)

• Commande associée 

'copy' : permet de créer des 'tags' et des 'branches'

Copyright ©2007 Zend Technologies, Inc.

# 209


Bonnes pratiques

Nommage : vocabulaire • Version 

Incrémentée lors d'un gros changement global, ou une refonte.

• Sous-version (subversion) 

Incrémentée lorsque des évolutions sont apportées

• Révision 

Incrémentée lorsque des corrections sont apportées

• Release Candidate (RC) 

Une version pas encore terminée mais disponible pour tester

Copyright ©2007 Zend Technologies, Inc.

# 210


Bonnes pratiques

Illustration chronologique

Copyright Š2007 Zend Technologies, Inc.

# 211


Bonnes pratiques

Commande copy • Subversion avancé : commande 'copy' $ svn help copy copy (cp): Recopie quelque chose dans une copie de travail ou un dépôt, avec historique. usage : copy SRC DST SRC et DST sont un chemin dans la copie de travail (CT) ou une URL : CT -> CT : copie et mise en attente pour ajout (avec historique) CT -> URL : propage immédiatement une copie de CT vers URL URL -> CT : extrait une URL dans CT, mise en attente pour ajout URL -> URL : copie côté serveur ; utilisée pour les branches et marques

Copyright ©2007 Zend Technologies, Inc.

# 212


Bonnes pratiques

Figer une version • A la racine de votre dépôt, il y a 3 répertoires   

'trunk' : correspond à la branche principale 'tags' : correspond aux versions figées de l'application 'branches' : correspond aux branches de l'application

• Branchez le vidéo-projecteur sur un poste stagiaire • A l'aide de la commande 'copy', figez la version 1.0.0 de l'application dans le répertoire 'tags'

Avoir les trois répertoires 'trunk', 'branches' et 'tags' à la racine est une convention adoptée dans une majorité de projets. Copyright ©2007 Zend Technologies, Inc.

# 213


Bonnes pratiques

Créer une branche • Branchez le vidéo-projecteur sur un autre poste • A l'aide de la commande 'copy', créez une branche •

correspondant à la version 2 de l'application Une fois ceci réalisé, il est possible pour les autres stagiaires de faire un 'checkout' de la branche et de travailler dessus

Il est rare de créer une branche, mais intéressant de savoir qu'il est possible de le faire avec 'copy'. Copyright ©2007 Zend Technologies, Inc.

# 214


Utilisation dans Zend Studio

Copyright Š 2007, Zend Technologies Inc.


Utilisation dans Zend Studio

Introduction

• Configuration • Menu contextuel • Update / Commit • Diff • Status

Copyright ©2007 Zend Technologies, Inc.

# 216


Utilisation dans Zend Studio

Configuration

Copyright Š2007 Zend Technologies, Inc.

# 217


Utilisation dans Zend Studio

Menu contextuel

Copyright Š2007 Zend Technologies, Inc.

# 218


Utilisation dans Zend Studio

Update / Commit • Update 

  

Faire clic-droit sur un dossier ou un fichier puis Subversion->update Valider avec les options par défaut Mettre un mot de passe si requis Les fichiers sont mis à jour et le rapport est affiché dans la fenêtre 'messages'

• Commit 

Faire clic-droit sur un dossier ou un fichier puis Subversion->commit Spécifier le message

Copyright ©2007 Zend Technologies, Inc.

# 219


Utilisation dans Zend Studio

Commande 'diff'

Copyright Š2007 Zend Technologies, Inc.

# 220


Utilisation dans Zend Studio

Commande 'status'

Copyright Š2007 Zend Technologies, Inc.

# 221


Utilisation dans Zend Studio

Manipuler Zend Studio • • • • •

Modifiez le fichier portant le nom de votre poste Faites un diff pour voir ce que vous avez modifié Faites un status à la racine de votre copie locale Validez les modifications avec Zend Studio (commit) Mettez à jour (update) votre copie locale avec Zend Studio une fois que tout le monde à validé

Si vous n'avez pas le menu contextuel Subversion, peut-être que vous n'avez pas coché 'Subversion' dans la configuration. Copyright ©2007 Zend Technologies, Inc.

# 222


Opérations Avancées

Copyright © 2007, Zend Technologies Inc.


Opérations Avancées

Commandes d'administration • svnadmin create : création d'un dépôt de données • svnadmin dump : sauvegarde d'un dépôt 

Note options : incremental, d'une version à une autre

• svnadmin load : rechargement d'un dump • svnadmin hotcopy : copie à chaud d'un dépôt • svnadmin deltify : compression du dépôt • Autres commandes 

verify, lslocks, rmlocks, lstxns, rmtxns, setlog, list-dblogs, list-unused-dblogs

Copyright ©2007 Zend Technologies, Inc.

# 224


Opérations Avancées

A vous la parole • Comment revenir sur une version précédente ?  

D'un fichier ? D'une application ?

• Comment déplacer ou renommer un fichier dans une copie locale ? 

Quels sont les risques ?

• Comment récupérer un fichier supprimé ?

Copyright ©2007 Zend Technologies, Inc.

# 225


Merci de votre attention !

Copyright Š 2007, Zend Technologies Inc.


Standards de codage

Avez-vous des questions ? • D'ordre général sur notre formation ? • Sur un point précis qui pose problème ? • Sur un point précis à approfondir ? • Sur un tout autre sujet ?

Copyright ©2007 Zend Technologies, Inc.

# 227


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.