The Components Book Version: 2.7

Dimension: px
Commencer à balayer dès la page:

Download "The Components Book Version: 2.7"

Transcription

1 The Components Book Version:. generated on September, 0

2 The Components Book (.) This work is licensed under the Attribution-Share Alike.0 Unported license (http://creativecommons.org/ licenses/by-sa/.0/). You are free to share (to copy, distribute and transmit the work), and to remix (to adapt the work) under the following conditions: Attribution: You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Share Alike: If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license. For any reuse or distribution, you must make clear to others the license terms of this work. The information in this book is distributed on an as is basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor SensioLabs shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. If you find typos or errors, feel free to report them by creating a ticket on the Symfony ticketing system (http://github.com/symfony/symfony-docs/issues). Based on tickets and users feedback, this book is continuously updated.

3 Contents at a Glance Comment installer et utiliser les composants de Symfony... Le Composant ClassLoader... Le Composant Config...0 Chargement des ressources... Mécanisme de cache basé sur les ressources... Définir et traiter les valeurs de configuration... Le Composant Console... Utiliser les commandes de console, les raccourcis et les commandes préconstruites... Modifier la commande par défault... Comment construire une application qui est une commande unique... Utilisez les événements... Helper Dialog... Formatter Helper... Progress Helper... Table Helper... Le Composant CssSelector... Le Composant Debug... Débugger un Class Loader... Le Composant d'injection de Dépendance («Dependency Injection» en anglais)...0 Types d'injection... Introduction aux paramètres... Travailler avec les définitions du conteneur... Compiler le Conteneur... Travailler avec des Services Taggés... Utiliser une «Factory» pour créer des services...0 Configurer des services avec un configurateur de service... Gérer les dépendances communes avec des services parents... Configuration Avancée du Conteneur Les services instanciés à la demande («lazy services» en anglais)... 0 Processus de construction du Conteneur... 0 Le Composant DomCrawler... 0 Le Composant répartiteur d'évènement... L'objet Évènement Générique... Le Répartiteur d'évènement du Container Aware... Le composant ExpressionLanguage... 0 Syntaxe des expressions... generated on September, 0 Contents at a Glance iii

4 Étendre ExpressionLanguage... Cacher les expressions en utilisant les parsers de cache... Le Composant «Filesystem» («système de fichiers» en français)... Le Composant Finder... Le composant Formulaire... Créer un Type Guesser personnalisé... Le composant HttpFoundation... Gestion de Session... Configurer les Sessions et les gestionnaires de sauvegarde... Tester avec les sessions... Intégration avec les session "Legacy"... Proxies de confiance... Le composant HttpKernel... Le Composant Locale... Le Composant «Process»... Le Composant PropertyAccess... Le Composant de Routage... Comment faire correspondre une route en se basant sur l'hôte... 0 Le composant sécurité... Le Pare-Feu et le Contexte de Sécurité... Authentification... Autorisation... Le Composant Serializer... Le Composant Templating... Le Composant YAML... Le Format YAML... iv Contents at a Glance Contents at a Glance

5 Chapter Comment installer et utiliser les composants de Symfony Si vous commencez un nouveau projet (ou si vous en avez déjà un) qui doit utiliser un ou plusieurs composants, la manière la plus facile pour intégrer cela est Composer. Composer est suffisamment intelligent pour télécharger le ou les composants dont vous avez besoin et prendre en charge l'autoloading, vous n'avez plus qu'à commencer à utiliser tout de suite ces librairies. Cet article va vous guider à traver la documentation : Le Composant Finder. Cela pourra être utilisé pour tout autre composant. Utiliser le composant Finder. Si vous créez un nouveau projet, créez le avec un répertoire vide.. Créé un fichier appelé composer.json et coller ce qui suit: Listing - "require": "symfony/finder": "..*" Si vous avez déjà un fichier composer.json, ajoutez juste les lignes ci-dessus. Vous aurez peut-être besoin de modifié la version (exp... ou..*). Vous pouvez rechercher les noms et versions des composants à packagist.org.. Installez composer si il n'est pas déjà présent sur votre système:. Téléchargez les librairies tierces et générez fichier vendor/autoload.php:. https://packagist.org/. generated on September, 0 Chapter : Comment installer et utiliser les composants de Symfony

6 Listing - $ php composer.phar install. Ecrivez votre code: Une fois que Composer a téléchargé le ou les composants, tout ce dont vous avez besoin est inclut dans le fichier vendor/autoload.php qui a été généré par Composer. Ce fichier prends en compte l'autoloading pour toutes les librairies, donc vous pouvez directement les utiliser: Listing - 0 // Fichier: src/script.php // mettez jour ce chemin le répertoire "vendor/" en relation la position // de ce fichier require_once '../vendor/autoload.php'; use Symfony\Component\Finder\Finder; $finder = new Finder(); $finder->in('../data/'); //... Si vous voulez utiliser tous les composants Symfony, au lieu de les ajouter tous un par un: Listing - "require": "symfony/finder": "..*", "symfony/dom-crawler": "..*", "symfony/css-selector": "..*" Vous pouvez faire ceci: Listing - "require": "symfony/symfony": "..*" Cela inclue les librairies Bundle et Bridge, que vous n'avez pas encore besoin. Et maintenant? Le composant est installé et autochargé, lisez la documentation du composant pour en savoir sur comment l'utiliser. Et maintenant, amusez vous bien! generated on September, 0 Chapter : Comment installer et utiliser les composants de Symfony

7 Chapter Le Composant ClassLoader Le Composant ClassLoader charge les classes de votre projet automatiquement si elles suivent quelques conventions standards de PHP. Chaque fois que vous utilisez une classe non-définie, PHP utilise le mécanisme de chargement automatique («Autoloading» en anglais) afin qu'il s'occupe de charger un fichier définissant la classe. Symfony fournit un «autoloader universel», qui est capable de charger des classes depuis des fichiers qui implémentent l'une des conventions suivantes : Les standards d'intéropérabilité technique pour les espaces de nom de PHP. et les noms de classe ; La convention de nommage PEAR pour les classes. Si vos classes et les bibliothèques tierces que vous utilisez pour votre projet suivent ces standards, l'«autoloader» de Symfony est l'unique «autoloader» dont vous aurez besoin. Installation Vous pouvez installer le composant de plusieurs manières : Utilisez le dépôt officiel Git (https://github.com/symfony/classloader ) ; Installez le via Composer (symfony/class-loader sur Packagist ). Utilisation New in version.: La méthode useincludepath a été ajoutée dans Symfony... https://github.com/symfony/classloader. https://packagist.org/packages/symfony/class-loader generated on September, 0 Chapter : Le Composant ClassLoader

8 Enregistrer l'«autoloader» UniversalClassLoader est très facile: Listing - 0 require_once '/path/to/src/symfony/component/classloader/universalclassloader.php'; use Symfony\Component\ClassLoader\UniversalClassLoader; $loader = new UniversalClassLoader(); // enregistrez les espaces de noms et préfixes ici (voir ci-dessous) // vous pouvez rechercher dans l'«include_path» en dernier recours. $loader->useincludepath(true); $loader->register(); Pour des gains de performance mineurs, les chemins vers les classes peuvent être cachés en mémoire en utilisant APC en enregistrant la classe ApcUniversalClassLoader : Listing - require_once '/path/to/src/symfony/component/classloader/universalclassloader.php'; require_once '/path/to/src/symfony/component/classloader/apcuniversalclassloader.php'; use Symfony\Component\ClassLoader\ApcUniversalClassLoader; $loader = new ApcUniversalClassLoader('apc.prefix.'); $loader->register(); L'«autoloader» est utile uniquement si vous ajoutez des bibliothèques à charger automatiquement. L'«autoloader» est automatiquement enregistré dans une application Symfony (voir app/ autoload.php). Si les classes à charger automatiquement utilisent les espaces de noms, utilisez la méthode registernamespace() ou registernamespaces() : Listing - $loader->registernamespace('symfony', DIR.'/vendor/symfony/symfony/src'); $loader->registernamespaces(array( 'Symfony' => DIR.'/../vendor/symfony/symfony/src', 'Monolog' => DIR.'/../vendor/monolog/monolog/src', )); $loader->register(); Pour les classes qui suivent la convention de nommage PEAR, utilisez la méthode registerprefix() ou registerprefixes() 0 : Listing - $loader->registerprefix('twig_', DIR.'/vendor/twig/twig/lib'); generated on September, 0 Chapter : Le Composant ClassLoader

9 $loader->registerprefixes(array( 'Swift_' => DIR.'/vendor/swiftmailer/swiftmailer/lib/classes', 'Twig_' => DIR.'/vendor/twig/twig/lib', )); $loader->register(); Certaines bibliothèques requièrent que la racine de leur chemin soit définie dans le «include path» PHP (set_include_path()). Les classes provenant d'un sous-espace de nom ou d'une sous-hiérarchie de classes PEAR peuvent être recherchées dans une liste de chemins afin de faciliter la séparation de sous-ensembles de bibliothèques pour les grands projets: Listing - $loader->registernamespaces(array( 'Doctrine\\Common' => DIR.'/vendor/doctrine/common/lib', 'Doctrine\\DBAL\\Migrations' => DIR.'/vendor/doctrine/migrations/lib', 'Doctrine\\DBAL' => DIR.'/vendor/doctrine/dbal/lib', 'Doctrine' => DIR.'/vendor/doctrine/orm/lib', )); $loader->register(); Dans cet exemple, si vous essayez d'utiliser une classe de l'espace de noms Doctrine\Common ou de l'un de ses enfants, l'«autoloader» va d'abord rechercher la classe dans le répertoire doctrine-common, et il va ensuite rechercher dans le répertoire Doctrine (le dernier configuré) s'il ne la trouve pas, avant d'abandonner. L'ordre des enregistrements est significatif dans ce cas. generated on September, 0 Chapter : Le Composant ClassLoader

10 Chapter Le Composant Config Introduction Le Composant Config fournit plusieurs classes pour vous aider à trouver, charger, combiner, préremplir et valider des valeurs de configuration de n'importe quel type, quelle que soit leur source (Yaml, XML, fichiers INI, ou par exemple une base de données). Installation Vous pouvez installer le composant de deux manières différentes : Utilisez le dépôt Git officiel (https://github.com/symfony/config ) ; Installez le via Composer (symfony/config à Packagist ). Sections Chargement des ressources Mécanisme de cache basé sur les ressources Définir et traiter les valeurs de configuration. https://github.com/symfony/config. https://packagist.org/packages/symfony/config generated on September, 0 Chapter : Le Composant Config 0

11 Chapter Chargement des ressources Localisation des ressources Le chargement de la configuration démarre normalement par une recherche des ressources - dans la plupart des cas : des fichiers. Cela peut être effectué à l'aide de la classe FileLocator : Listing - use Symfony\Component\Config\FileLocator; $configdirectories = array( DIR.'/app/config'); $locator = new FileLocator($configDirectories); $yamluserfiles = $locator->locate('users.yml', null, false); Le localisateur reçoit une collection de localisations où il doit rechercher les fichiers. Le premier argument de locate() est le nom du fichier à rechercher. Le second argument peut être le chemin courant, et lorsqu'il est fourni, le localisateur doit rechercher en premier dans ce répertoire. Le troisième argument indique si oui ou non le localisateur doit retourner le premier fichier qu'il trouve, ou bien un tableau contenant tous les fichiers trouvés. Chargeurs de ressource Pour chaque type de ressource (Yaml, XML, annotations, etc.), un chargeur doit être défini. Chaque chargeur doit implémenter LoaderInterface ou étendre la classe abstraite FileLoader, qui permet d'importer d'autres ressources de manière récursive: Listing - use Symfony\Component\Config\Loader\FileLoader; use Symfony\Component\Yaml\Yaml;. generated on September, 0 Chapter : Chargement des ressources

12 0 0 class YamlUserLoader extends FileLoader public function load($resource, $type = null) $configvalues = Yaml::parse($resource); //... gérer les valeurs de configuration // importer peut-être d'autres ressources : // $this->import('extra_users.yml'); public function supports($resource, $type = null) return is_string($resource) && 'yml' === pathinfo( $resource, PATHINFO_EXTENSION ); Trouver le bon chargeur La classe LoaderResolver reçoit en tant que premier argument de son constructeur une collection de chargeurs. Quand une ressource (par exemple un fichier XML) doit être chargée, le «LoaderResolver» va itérer sur cette collection de chargeurs et retourner le chargeur qui supporte ce type de ressource en particulier. La classe DelegatingLoader utilise la classe LoaderResolver. Lorsqu'on lui demande de charger une ressource, elle délègue cette question à la classe LoaderResolver. Dans le cas où le résolveur trouve un chargeur approprié, ce dernier va être utilisé pour charger la ressource: Listing - 0 use Symfony\Component\Config\Loader\LoaderResolver; use Symfony\Component\Config\Loader\DelegatingLoader; $loaderresolver = new LoaderResolver(array(new YamlUserLoader($locator))); $delegatingloader = new DelegatingLoader($loaderResolver); $delegatingloader->load( DIR.'/users.yml'); /* Le YamlUserLoader va être utilisé pour charger cette ressource puisqu'il supporte les fichiers ayant une extension «yml» */. generated on September, 0 Chapter : Chargement des ressources

13 Chapter Mécanisme de cache basé sur les ressources Lorsque toutes les ressources de configuration sont chargées, vous pourriez vouloir traiter les valeurs de configuration et les combiner toutes en un seul fichier. Ce fichier agit en tant que cache. Son contenu n'a pas besoin d'être regénéré chaque fois que l'application est exécutée mais seulement quand les ressources de configuration sont modifiées. Par exemple, le composant de Routage de Symfony vous permet de charger toutes les routes, et d'afficher une correspondance d'url ou une URL générée basé sur ces routes. Dans ce cas, lorsqu'une des ressources est modifiée (et que vous travaillez dans un environnement de développement), le fichier généré devrait être invalidé ou regénéré. Cela peut être effectué en utilisant la classe ConfigCache. L'exemple ci-dessous vous montre comment collecter des ressources, puis générer du code basé sur les ressources qui ont été chargées, et écrire ce code dans le cache. Le cache reçoit aussi la collection de ressources qui ont été utilisées pour générer le code. En regardant le timestamp de la date de dernière modification de ces ressources, le cache peut dire s'il contient toujours la dernière version ou si son contenu devrait être regénéré: Listing - 0 use Symfony\Component\Config\ConfigCache; use Symfony\Component\Config\Resource\FileResource; $cachepath = DIR.'/cache/appUserMatcher.php'; // le second argument indique si vous voulez utiliser le mode debug ou non $usermatchercache = new ConfigCache($cachePath, true); if (!$usermatchercache->isfresh()) // remplissez cela avec un tableau contenant les chemins des fichiers // «users.yml» $yamluserfiles =...; $resources = array(); foreach ($yamluserfiles as $yamluserfile) // Lisez l'article précédent «Chargement des ressources» // pour voir d'où provient $delegatingloader. generated on September, 0 Chapter : Mécanisme de cache basé sur les ressources

14 0 0 $delegatingloader->load($yamluserfile); $resources[] = new FileResource($yamlUserFile); // le code pour le «UserMatcher» est généré quelque part d'autre $code =...; $usermatchercache->write($code, $resources); // vous pourriez vouloir inclure le code caché : require $cachepath; En mode débuggage, un fichier.meta sera créé dans le même répertoire que le fichier de cache lui-même. Ce fichier.meta contient les ressources sérialisées, dont les timestamps sont utilisées pour déterminer si le cache contient toujours la dernière version. Lorsque vous n'êtes pas en mode débuggage, le cache est considéré comme contenant la dernière version dès qu'il existe, et donc, aucun fichier.meta ne sera généré. generated on September, 0 Chapter : Mécanisme de cache basé sur les ressources

15 Chapter Définir et traiter les valeurs de configuration Valider les valeurs de configuration Après avoir chargé les valeurs de configuration depuis toute sorte de ressources, les valeurs et leur structure peuvent être validées en utilisant la partie «Definition» du Composant Config. On s'attend généralement à ce que les valeurs de configuration possèdent une certaine hiérarchie. Aussi, les valeurs devraient être d'un certain type, restreintes en nombre ou faire partie d'un ensemble de valeurs donné. Par exemple, la configuration suivante (en YAML) montre une hiérarchie claire et quelques règles de validation qui devraient lui être appliquées (par exemple : «la valeur de auto_connect doit être une valeur booléenne») : Listing - 0 auto_connect: true default_connection: mysql connections: mysql: host: localhost driver: mysql username: user password: pass sqlite: host: localhost driver: sqlite memory: true username: user password: pass Lorsque vous chargez plusieurs fichiers de configuration, il devrait être possible de fusionner et de surcharger quelques valeurs. D'autres valeurs ne devraient pas être fusionnées et rester comme elles étaient lorsque vous les avez rencontrées pour la première fois. Aussi, certaines clés sont seulement disponibles quand une autre clé possède une valeur spécifique (dans l'exemple de configuration ci-dessus : la clé memory n'a de sens que si le driver est sqlite). generated on September, 0 Chapter : Définir et traiter les valeurs de configuration

16 Définir une hiérarchie des valeurs de configuration en utilisant le «TreeBuilder» Toutes les règles concernant les valeurs de configuration peuvent être définies en utilisant le TreeBuilder («constructeur d'arbre» en français). Une instance de TreeBuilder devrait être retournée depuis une classe Configuration personnalisée qui implémente ConfigurationInterface : Listing - 0 namespace Acme\DatabaseConfiguration; use Symfony\Component\Config\Definition\ConfigurationInterface; use Symfony\Component\Config\Definition\Builder\TreeBuilder; class DatabaseConfiguration implements ConfigurationInterface public function getconfigtreebuilder() $treebuilder = new TreeBuilder(); $rootnode = $treebuilder->root('database'); //... ajoute des définitions de noeud à la racine de l'arbre return $treebuilder; Ajouter des définitions de noeuds à l'arbre Noeuds variable Un arbre contient des définitions de noeuds qui peuvent être décrites d'une manière sémantique. Cela signifie qu'en utilisant l'indentation et une notation fluide, il est possible de refléter la structure réelle des valeurs de configuration: Listing - 0 $rootnode ->children() ->booleannode('auto_connect') ->defaulttrue() ->end() ->scalarnode('default_connection') ->defaultvalue('default') ->end() ->end() ; Le noeud racine lui-même est un tableau de noeuds, et possède des enfants, comme le noeud booléen auto_connect et le noeud scalaire default_connection. En général : après avoir défini un noeud, un appel à la méthode end() vous fait remonter d'un niveau dans la hiérarchie.. generated on September, 0 Chapter : Définir et traiter les valeurs de configuration

17 Types de noeud Il est possible de valider le type d'une valeur fournie en utilisant la définition de noeud appropriée. Les types de noeud disponibles sont : scalar boolean array enum integer (new in.) float (new in.) variable (pas de validation) et sont créés avec node($name, $type) ou leurs méthodes raccourcies associées xxxxnode($name). Contraintes de noeud numérique New in version.: Les noeuds numériques (float et integer) ont été ajoutés dans la version. Les noeuds numériques (float et integer) fournissent deux contraintes supplémentaires min() et max() qui vous permettent de valider leur valeur: Listing - 0 $rootnode ->children() ->integernode('positive_value') ->min(0) ->end() ->floatnode('big_value') ->max(e) ->end() ->integernode('value_inside_a_range') ->min(-0)->max(0) ->end() ->end() ; Noeuds tableau Il est possible d'ajouter un niveau plus profond à la hiérarchie en ajoutant un noeud tableau. Le noeud tableau lui-même peut avoir un ensemble prédéfini de noeuds variable: Listing - 0 $rootnode ->children() ->arraynode('connection') ->children() ->scalarnode('driver')->end() ->scalarnode('host')->end() ->scalarnode('username')->end() ->scalarnode('password')->end() ->end() ->end() ->end() ; Ou vous pouvez définir un prototype pour chaque noeud à l'intérieur d'un noeud tableau:. generated on September, 0 Chapter : Définir et traiter les valeurs de configuration

18 Listing - 0 $rootnode ->children() ->arraynode('connections') ->prototype('array') ->children() ->scalarnode('driver')->end() ->scalarnode('host')->end() ->scalarnode('username')->end() ->scalarnode('password')->end() ->end() ->end() ->end() ->end() ; Un prototype peut être utilisé pour ajouter une définition qui peut être répétée un grand nombre de fois à l'intérieur du noeud courant. Selon la définition du prototype dans l'exemple ci-dessus, il est possible d'avoir plusieurs tableaux de connexion (contenant un driver, host, etc.). Options de noeud tableau Avant de définir les enfants d'un noeud tableau, vous pouvez fournir des options comme : useattributeaskey() Fournit le nom d'un noeud enfant, dont la valeur devrait être utilisée en tant que clé dans le tableau résultant requiresatleastoneelement() Il devrait y avoir au moins un élément dans le tableau (fonctionne seulement quand isrequired est aussi appelé). adddefaultsifnotset() Si plusieurs noeuds enfants ont des valeurs par défaut, utilisez les si des les valeurs n'ont pas été explicitement fournies. Un exemple de cela: Listing - 0 $rootnode ->children() ->arraynode('parameters') ->isrequired() ->requiresatleastoneelement() ->useattributeaskey('name') ->prototype('array') ->children() ->scalarnode('value')->isrequired()->end() ->end() ->end() ->end() ->end() ; En YAML, la configuration ressemblerait à ceci: Listing - database: parameters: param: value: paramval generated on September, 0 Chapter : Définir et traiter les valeurs de configuration

19 En XML, chaque noeud parameters doit avoir un attribut name ( suivi de value), qui devrait être supprimé et utilisé comme une clé pour cet élément dans le tableau final. L'option useattributeaskey est utile pour normaliser comment les tableaux sont spécifiés dans chaque format comme le XML et le YAML Valeurs par défaut et valeurs requises Pour tous les types de noeud, il est possible de définir des valeurs par défaut et des valeurs de remplacement dans le cas où un noeud possède une certaine valeur : defaultvalue() Définit une valeur par défaut isrequired() Doit être défini (mais peut être vide) cannotbeempty() Ne peut pas contenir de valeur vide default*() (null, true, false), raccourci pour defaultvalue() treat*like() (null, true, false), fournit une valeur de remplacement dans le cas où la valeur est *. Listing $rootnode ->children() ->arraynode('connection') ->children() ->scalarnode('driver') ->isrequired() ->cannotbeempty() ->end() ->scalarnode('host') ->defaultvalue('localhost') ->end() ->scalarnode('username')->end() ->scalarnode('password')->end() ->booleannode('memory') ->defaultfalse() ->end() ->end() ->end() ->arraynode('settings') ->adddefaultsifnotset() ->children() ->scalarnode('name') ->isrequired() ->cannotbeempty() ->defaultvalue('value') ->end() ->end() ->end() ->end() ; generated on September, 0 Chapter : Définir et traiter les valeurs de configuration

20 Sections facultatives New in version.: Les méthodes canbeenabled et canbedisabled sont une nouveauté de Symfony. Si vous avez des sections entières qui sont facultatives et qui peuvent être activées ou désactivées, vous pouvez profiter des avantages des méthodes raccourci canbeenabled() et canbedisabled() : Listing -0 0 $arraynode ->canbeenabled() ; // est équivalent à $arraynode ->treatfalselike(array('enabled' => false)) ->treattruelike(array('enabled' => true)) ->treatnulllike(array('enabled' => true)) ->children() ->booleannode('enabled') ->defaultfalse() ; La méthode canbedisabled est quasiment identique à ceci près que la section sera activée par défaut. Options de fusion Des options supplémentaires concernant le processus de fusion peuvent être fournies. Pour les tableaux : performnodeepmerging() Lorsque la valeur est aussi définie dans un second tableau de configuration, n'essaye pas de fusionner un tableau, mais le surcharge entièrement Pour tout les noeuds : cannotbeoverwritten() Ne laisse pas les autres tableaux de configuration surcharger une valeur existante pour ce noeud Ajouter des sections Si vous devez valider une configuration complexe, alors l'arbre peut devenir très long et vous voudrez surement le découper en plusieurs sections. Vous pouvez faire cela en définissant une section dans un noeud séparé et en ajoutant ce noeud à l'arbre principal avec append(): Listing - 0 public function getconfigtreebuilder() $treebuilder = new TreeBuilder(); $rootnode = $treebuilder->root('database'); $rootnode ->children() ->arraynode('connection') ->children() ->scalarnode('driver'). generated on September, 0 Chapter : Définir et traiter les valeurs de configuration 0

21 0 0 0 ; ->isrequired() ->cannotbeempty() ->end() ->scalarnode('host') ->defaultvalue('localhost') ->end() ->scalarnode('username')->end() ->scalarnode('password')->end() ->booleannode('memory') ->defaultfalse() ->end() ->end() ->append($this->addparametersnode()) ->end() ->end() return $treebuilder; public function addparametersnode() $builder = new TreeBuilder(); $node = $builder->root('parameters'); $node ->isrequired() ->requiresatleastoneelement() ->useattributeaskey('name') ->prototype('array') ->children() ->scalarnode('value')->isrequired()->end() ->end() ->end() ; return $node; C'est aussi très utile pour vous aider à ne pas vous répeter si vous avez des sections de configuration qui sont identiques en plusieurs endroits. Normalisation Lorsque les fichiers de configuration sont traités, ils sont d'abord normalisés. Ensuite, ils sont fusionnés puis l'arbre est utilisé pour valider le tableau qui a été généré. La normalisation consiste à supprimer certaines des différences issues des différents formats de configuration, principalement des différences entre Yaml et XML. Typiquement, le séparateur de clés utilisé en Yaml est _ et - en XML. Par exemple, auto_connect en Yaml deviendrait auto-connect en XML. La normalisation les transforme tout les deux en auto_connect. La clé cible ne sera pas modifié si elle est mélangée comme ceci foo-bar_moo ou si elle existe déjà. generated on September, 0 Chapter : Définir et traiter les valeurs de configuration

22 Une autre différence en Yaml et Xml est la manière dont les tableaux de valeurs sont représentés. En Yaml, cela ressemble à : Listing - twig: extensions: ['twig.extension.foo', 'twig.extension.bar'] et en XML à : Listing - <twig:config> <twig:extension>twig.extension.foo</twig:extension> <twig:extension>twig.extension.bar</twig:extension> </twig:config> Cette différence peut être supprimée à la normalisation en pluralisant la clé utilisée en XML. Vous pouvez indiquer que vous voulez qu'une clé soit pluralisée de cette manière avec fixxmlconfig(): Listing - $rootnode ->fixxmlconfig('extension') ->children() ->arraynode('extensions') ->prototype('scalar')->end() ->end() ->end() ; S'il s'agit d'un pluriel irrégulier, vous pouvez le spécifier comme second argument: Listing - $rootnode ->fixxmlconfig('child', 'children') ->children() ->arraynode('children') ->end() ; En parallèle, fixxmlconfig garantit que chaque élément xml sera toujours intégré dans un tableau. Vous pouvez avoir : Listing - <connection>default</connection> <connection>extra</connection> et parfois seulement : Listing - <connection>default</connection> Par défaut, connection sera un tableau dans le premier cas et une chaine de caractères dans le second cas, ce qui rendrait la validation difficile. Vous pouvez vous assurer qu'il s'agisse toujours d'un tableau avec fixxmlconfig. Si nécessaire, vous pouvez contrôler encore plus le processus de normalisation. Par exemple, vous pouvez autoriser qu'une chaine de caractères soit définie et utilisée comme clé particulière, ou que plusieurs clés soit définies explicitement. Pour cela, si tout est facultatif dans votre config sauf l'id: Listing - connection: name: my_mysql_connection host: localhost generated on September, 0 Chapter : Définir et traiter les valeurs de configuration

The Components Book Version: 2.3

The Components Book Version: 2.3 The Components Book Version:. generated on September, 0 The Components Book (.) This work is licensed under the Attribution-Share Alike.0 Unported license (http://creativecommons.org/ licenses/by-sa/.0/).

Plus en détail

The Cookbook Version: 2.3

The Cookbook Version: 2.3 The Cookbook Version:. generated on September, 0 The Cookbook (.) This work is licensed under the Attribution-Share Alike.0 Unported license (http://creativecommons.org/ licenses/by-sa/.0/). You are free

Plus en détail

The Cookbook for Symfony 2.4

The Cookbook for Symfony 2.4 The Cookbook for Symfony. generated on November, 0 The Cookbook (.) This work is licensed under the Attribution-Share Alike.0 Unported license (http://creativecommons.org/ licenses/by-sa/.0/). You are

Plus en détail

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

Plus en détail

How to contribute to Symfony Version: 2.5

How to contribute to Symfony Version: 2.5 How to contribute to Symfony Version:.5 How to contribute to Symfony (.5) This work is licensed under the Attribution-Share Alike 3.0 Unported license (http://creativecommons.org/ licenses/by-sa/3.0/).

Plus en détail

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation Serveur Acronis Backup & Recovery 10 pour Linux Update 5 Guide d'installation Table des matières 1 Avant l'installation...3 1.1 Composants d'acronis Backup & Recovery 10... 3 1.1.1 Agent pour Linux...

Plus en détail

TD1. Installation de Symfony 2 et Netbeans

TD1. Installation de Symfony 2 et Netbeans I - Introduction : TD1 Installation de Symfony 2 et Netbeans L objet de ce TP est d installer l environnement de travail. Nous commençons par définir des notions de base nécessaires pour comprendre la

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Diffusé par Le Projet Documentation OpenOffice.org Table des Matières 1. Les Versions...3 2. Les Modifications...5

Plus en détail

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Microsoft Outlook NOTICE The information contained in this document is believed to be accurate in all respects

Plus en détail

Oracle Database SQL Developer Guide D'Installation Release 4.0 E38928-06

Oracle Database SQL Developer Guide D'Installation Release 4.0 E38928-06 Oracle Database SQL Developer Guide D'Installation Release 4.0 E38928-06 Pour accéder à la documentation détaillée de SQL Developer : voir Oracle Database SQL Developer Installation Guide Installer Oracle

Plus en détail

Programmation orientée objet et interfaces web en PHP

Programmation orientée objet et interfaces web en PHP Programmation orientée objet et interfaces web en PHP La programmation objet avec PHP5 Bases de données et interfaces web Fonctionnement des sessions Nicolas Moyroud Cemagref - UMR TETIS 26 Juin 2008 Programmation

Plus en détail

Dans l'article précédent, vous avez appris

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

Plus en détail

Didacticiel de mise à jour Web

Didacticiel de mise à jour Web Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.

Plus en détail

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux Distribué par Le Projet Documentation d'openoffice.org Table of Contents 1) Préambule...3 2) Télécharger

Plus en détail

SERVEUR DÉDIÉ DOCUMENTATION

SERVEUR DÉDIÉ DOCUMENTATION SERVEUR DÉDIÉ DOCUMENTATION Release 5.0.6.0 19 Juillet 2013 Copyright 2013 GIANTS Software GmbH, All Rights Reserved. 1/9 CHANGE LOG Correction de bug divers (5.0.6.0) Ajout d une option de relance automatique

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Projet EvaluationsEleves/Professeurs

Projet EvaluationsEleves/Professeurs Projet EvaluationsEleves/Professeurs Ce projet Java comporte les objectifs suivants: 1) Diagramme de classes 2) Développer de l'application en mode console avec un jeu de tests fourni 3) Lecture des notes/eleves/professeurs

Plus en détail

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION NetSuite NOTICE The information contained in this document is believed to be accurate in all respects but

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 Version 1.0.5 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans

Plus en détail

Intelligence d entreprise Guide de mise en route

Intelligence d entreprise Guide de mise en route Intelligence d entreprise Guide de mise en route 2013 Table des matières Guide de mise en route... 1 Rapports standard de Sage 50 Intelligence d'entreprise... 1 Accès aux rapports de Sage 50 Intelligence

Plus en détail

Client Citrix ICA Windows CE Carte de référence rapide

Client Citrix ICA Windows CE Carte de référence rapide Client Citrix ICA Windows CE Carte de référence rapide Exigences Pour exécuter le client ICA Windows CE, vous devez disposer des éléments suivants : Un périphérique Windows CE Une carte d'interface réseau

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Slony1 2.1 Londiste 3

Slony1 2.1 Londiste 3 Slony1 2.1 Londiste 3 Cédric Villemain FRANCE PgConf.EU 2011 20/10/2011, Amsterdam License Creative Commons: Attribution-Non-Commercial-Share Alike 2.5 You are free: to copy, distribute,

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Windows.................................................................

Plus en détail

Téléchargement d OCS Inventory Serveur et Agent. Sommaire

Téléchargement d OCS Inventory Serveur et Agent. Sommaire Téléchargement d OCS Inventory Serveur et Agent Tout d abord, Connectez-vous sur le site suivant : http://www.ocsinventory-ng.org/ Sélectionner le langage Français en cliquant sur le drapeau France Cliquer

Plus en détail

1.1- Compiler et exécuter un premier programme en C++

1.1- Compiler et exécuter un premier programme en C++ 1.1- Compiler et exécuter un premier programme en C++ 1- Un premier programme en C++ 2- Compilation et exécution 1- Un premier programme en C++ Le premier programme que propose le cours consiste à afficher

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Salesforce NOTICE The information contained in this document is believed to be accurate in all respects

Plus en détail

The Quick Tour Version: 2.7

The Quick Tour Version: 2.7 The Quick Tour Version:. generated on September, 0 What could be better to make up your own mind than to try out Symfony yourself? Aside from a little time, it will cost you nothing. Step by step you will

Plus en détail

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide Symantec Backup Exec 12.5 for Windows Servers Guide d'installation rapide 13897290 Installation de Backup Exec Ce document traite des sujets suivants: Configuration requise Conditions préalables à l'installation

Plus en détail

TecLocal 4.0. Manuel d'installation: Mode acheteur & multiutilisateurs

TecLocal 4.0. Manuel d'installation: Mode acheteur & multiutilisateurs Tec Local 4.0 Manuel d'installation : Mode acheteur & multi-utilisateurs (client) TecLocal 4.0 Manuel d'installation: Mode acheteur & multiutilisateurs (client) Version: 1.0 Auteur: TecCom Solution Management

Plus en détail

Préparation à l installation d Active Directory

Préparation à l installation d Active Directory Laboratoire 03 Étape 1 : Installation d Active Directory et du service DNS Noter que vous ne pourrez pas réaliser ce laboratoire sans avoir fait le précédent laboratoire. Avant de commencer, le professeur

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Windows Installer pour XenClient Enterprise Engine

Windows Installer pour XenClient Enterprise Engine Windows Installer pour XenClient Enterprise Engine Version 5.0 12 août 2013 Table des matières À propos de ce guide...3 À propos de Windows Installer pour le logiciel Engine...3 Remarques importantes...

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

IP Office IP Office Manuel de l'utilisateur de la messagerie vocale intégrée

IP Office IP Office Manuel de l'utilisateur de la messagerie vocale intégrée Manuel de l'utilisateur de la messagerie vocale intégrée 15-604067 Version 11a - (29/04/2011) 2011 AVAYA Tous droits réservés. Note Bien que tous les efforts nécessaires aient été mis en œuvre en vue de

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Linux....................................................................

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Windows Front-End Installation Guide HOPEX V1R1 FR

Windows Front-End Installation Guide HOPEX V1R1 FR Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013 Auteur : Jérôme Horber SOMMAIRE Résumé Ce document décrit les procédures et les paramétrages techniques nécessaires à l'installation, à la mise à jour

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Sage CRM. 7.2 Guide de Portail Client

Sage CRM. 7.2 Guide de Portail Client Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

Plus en détail

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Livre blanc Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Présentation Ce document examine la prise en charge de la programmabilité sur l'infrastructure axée

Plus en détail

1 Résolution de nom... 2 1.1 Introduction à la résolution de noms... 2. 1.2 Le système DNS... 2. 1.3 Les types de requêtes DNS...

1 Résolution de nom... 2 1.1 Introduction à la résolution de noms... 2. 1.2 Le système DNS... 2. 1.3 Les types de requêtes DNS... Table des matières 1 Résolution de nom... 2 1.1 Introduction à la résolution de noms... 2 1.2 Le système DNS... 2 1.3 Les types de requêtes DNS... 4 1.4 Configuration des clients DNS... 8 1.4.1 Résolution

Plus en détail

Développer de nouvelles fonctionnalités

Développer de nouvelles fonctionnalités 19 Développer de nouvelles fonctionnalités Chaque site e-commerce est unique. Bien que Magento soit une application riche, des besoins spécifiques apparaîtront et l ajout de modules deviendra nécessaire.

Plus en détail

Création de Sous-Formulaires

Création de Sous-Formulaires Création de Sous-Formulaires Révision 1.01 du 02/01/04 Réalisé avec : OOo 1.1.0 Plate-forme / Os : Toutes Distribué par le projet Fr.OpenOffice.org Table des Matières 1 But de ce how-to...3 2 Pré-requis...3

Plus en détail

DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur

DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur Présentation Installation DirXML License Auditing Tool (DLAT) vous permet de déterminer le nombre de licences DirXML utilisées dans une

Plus en détail

Atelier 2. Étape 1 : Installation de Active Directory, installation du service DNS et installation du service WINS Durée approximative : 40 minutes

Atelier 2. Étape 1 : Installation de Active Directory, installation du service DNS et installation du service WINS Durée approximative : 40 minutes Atelier 2 Installation d Active Directory Installation du service DNS Installation du Service WINS Création d'un compte d'ordinateur Jonction d'un ordinateur à un domaine Création d usagers. Étape 1 :

Plus en détail

IBM SPSS Collaboration and Deployment Services (C&DS) version 7

IBM SPSS Collaboration and Deployment Services (C&DS) version 7 Ce guide s'adresse aux administrateurs système qui configurent IBM SPSS Modeler Entity Analytics (EA) pour le déployer avec un des programmes suivants : IBM SPSS Collaboration and Deployment Services (C&DS)

Plus en détail

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations Projet Viticulture TP 3 : bases de données externes Description du thème Partie 1 : bases de données locales SQLite Partie 2 : projet H2O stockage local Partie 3 : bases de données distantes Partie 4 :

Plus en détail

Didacticiel du service cartographique en cache

Didacticiel du service cartographique en cache Didacticiel du service cartographique en cache Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'un service de carte mis en cache................... 3 Copyright 1995-2012

Plus en détail

Sophos Virtualization Scan Controller Guide de l'utilisateur. Version du produit : 1.0

Sophos Virtualization Scan Controller Guide de l'utilisateur. Version du produit : 1.0 Sophos Virtualization Scan Controller Guide de l'utilisateur Version du produit : 1.0 Date du document : juillet 2011 (Révisé) Table des matières 1 À propos de ce guide...3 2 Qu'est-ce que le Virtualization

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Portage d application de Moodle 1.9 vers Moodle 2.x

Portage d application de Moodle 1.9 vers Moodle 2.x Portage d application de Moodle 1.9 vers Moodle 2.x Outils et recommandations à l usage des développeurs. Jean FRUITET Jean.fruitet@univ-nantes.fr Plan Plan Introduction 2 Les principaux i changements

Plus en détail

Documentation de l'application de gestion de courrier évolutive (G.E.D.) pour la Mairie de Voreppe

Documentation de l'application de gestion de courrier évolutive (G.E.D.) pour la Mairie de Voreppe Documentation de l'application de gestion de courrier évolutive (G.E.D.) pour la Mairie de Voreppe Tony Galmiche le 28 février 2011 (modifiée alb) Sommaire 1 - Accès au portail de l'application GED...3

Plus en détail

Auguria_PCM Product & Combination Manager

Auguria_PCM Product & Combination Manager Auguria_PCM Product & Combination Manager Guide utilisateurs v1.5 Auguria 9, rue Alfred Kastler 44300 NANTES FRANCE +33251135012 contact@auguria.net Plan 1 Description générale du module...3 2 Mise en

Plus en détail

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Développement Web PHP Avancé

Développement Web PHP Avancé 1 / 73 Développement Web PHP Avancé Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer 2008 2 / 73 Objectif Objectif du cours Entrevoir des fonctionnalités avancées

Plus en détail

.NET - Classe de Log

.NET - Classe de Log .NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de

Plus en détail

Livre blanc Mesure des performances sous Windows Embedded Standard 7

Livre blanc Mesure des performances sous Windows Embedded Standard 7 Livre blanc Mesure des performances sous Windows Embedded Standard 7 Table des matières Résumé... 1 Introduction... 1 Utilisation de la boîte à outils Windows Performance Analysis... 2 Fonctionnement...

Plus en détail

Procédure d Installation et de mise à jour du client CAN-8 32 bits

Procédure d Installation et de mise à jour du client CAN-8 32 bits Page 1 of 9 Sounds Virtual Inc. Dec 20 2014 920 Yonge Street Suite 801, M4W 3C7 Toronto, Ontario, Canada support@ Tel 416 968 7155 ext# 502 - Sans frais : 1 855 305 9937 ext#502 Procédure d Installation

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013. Auteur : Noé LAVALLEE

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013. Auteur : Noé LAVALLEE MEGA HOPEX V1R1 FR Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013 Auteur : Noé LAVALLEE SOMMAIRE Sommaire... 2 Étape préliminaire... 3 Système d exploitation... 3.Net... 3 Rôles nécessaires... 3

Plus en détail

Création d'un package du logiciel TI-Nspire avec Microsoft SMS 2003

Création d'un package du logiciel TI-Nspire avec Microsoft SMS 2003 Création d'un package du logiciel TI-Nspire avec Microsoft SMS 2003 Vous trouverez dans ce document des instructions détaillées pour créer et déployer un package réseau TI-Nspire à l'aide de la plate-forme

Plus en détail

Guide d installation de SugarCRM Open Source version 4.5.1

Guide d installation de SugarCRM Open Source version 4.5.1 Guide d installation de SugarCRM Open Source version 4.5.1 Version 1.0.2 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans notification. Disclaimer / Responsabilité

Plus en détail

Mise à jour de BlackBerry Device Software via le réseau sans fil

Mise à jour de BlackBerry Device Software via le réseau sans fil Préambule : Ce document présente comment mettre à jour la version logicielle de l OS déployé et contrôlé depuis le serveur BES. Cette procédure est tirée du Guide de Mise à jour du BlackBerry Device Software

Plus en détail

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

TeamViewer 9 Manuel Management Console

TeamViewer 9 Manuel Management Console TeamViewer 9 Manuel Management Console Rév 9.2-07/2014 TeamViewer GmbH Jahnstraße 30 D-73037 Göppingen www.teamviewer.com Sommaire 1 A propos de la TeamViewer Management Console... 4 1.1 A propos de la

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

Créer un blog ou un site e-commerce avec WordPress

Créer un blog ou un site e-commerce avec WordPress Créer un blog ou un site e-commerce avec WordPress OnBusinessPlan.fr Copyright 2015 OnBusinessPlan.fr On Business Plan Edition, License Notes This ebook is licensed for your personal enjoyment only. This

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

L'API Google de géolocalisation pour Android. JMF (Tous droits réservés)

L'API Google de géolocalisation pour Android. JMF (Tous droits réservés) L'API Google de géolocalisation pour Android 1 La (géo)localisation : le sytème GPS GPS = Global Positionning System 24 satellites (au moins) tournant autour de la terre et diffusant leur position et l'heure

Plus en détail

Mise en route avec l'application mobile Android. Installation

Mise en route avec l'application mobile Android. Installation Mise en route avec l'application mobile Android L'application mobile SanDisk +Cloud vous permet d'accéder à votre contenu et de gérer votre compte depuis votre appareil portable. Grâce à l'application

Plus en détail

Installation de Windows 2003 Serveur

Installation de Windows 2003 Serveur Installation de Windows 2003 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows

Plus en détail

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Sage CRM NOTICE The information contained in this document is believed to be accurate in all respects but

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Quelles sont les nouveautés?

Quelles sont les nouveautés? Quelles sont les nouveautés? Compatibilité Windows CODESOFT 2014 est compatible avec Windows 8.1 et Windows Serveur 2012 R2 CODESOFT 2014 Compatibilité avec les systèmes d exploitations suivants: Windows

Plus en détail

Tune Sweeper Manuel de l'utilisateur

Tune Sweeper Manuel de l'utilisateur Tune Sweeper Manuel de l'utilisateur www.wideanglesoftware.com Table des matières Introduction 2 Démarrage rapide 5 Recherche de doublons 9 Sélection des pistes à conserver 12 Éliminer les doublons 15

Plus en détail

Manuel d'installation et d'utilisation Jetro 4.2

Manuel d'installation et d'utilisation Jetro 4.2 Manuel d'installation et d'utilisation Jetro 4.2 version 1.0 Table des matières 1. AVANT DE DEMARRER L'INSTALLATION... 3 2. INSTALLATION DU JETRO COCKPIT CLIENT 4.2:... 4 3. DEMARRER POUR LE PREMIERE FOIS

Plus en détail

COMMENT INSTALLER LE SERVEUR QIPAIE

COMMENT INSTALLER LE SERVEUR QIPAIE COMMENT INSTALLER LE SERVEUR QIPAIE A. INSTALLEZ LE SERVEUR QIPAIE...2 B. VÉRIFIEZ LE PARTAGE DU RÉPETOIRE DES COPIES DE SÉCURITÉ QIPAIE....12 C. COMMENT REFAIRE LE PARTAGE DBQIPAIEBACKUPS DANS WINDOWS

Plus en détail

Formation ESUP Portail Cours 4

Formation ESUP Portail Cours 4 Formation ESUP Portail Cours 4 http://www.esup-portail.org 1 Plan Prérequis Outils Normes Esup portail Canal uportal Publication d'un canal Web services 2 Prérequis Java Ant XML XSL/XSLT 3 Outils http://www.esup-portail.org/consortium/espace/normes_1c/tech/build/index.

Plus en détail

Gestion du serveur WHS 2011

Gestion du serveur WHS 2011 Chapitre 15 Gestion du serveur WHS 2011 Les principales commandes Windows Home Server 2011 reprend l ergonomie de Windows 7 et intègre les principales commandes de Windows Server 2008 R2. Les commandes

Plus en détail

Les tablettes et l'extranet Intermixt Mode d'emploi

Les tablettes et l'extranet Intermixt Mode d'emploi Les tablettes et l'extranet Mode d'emploi Ce document vous présente les étapes vous permettant d avoir accès aux documents disponibles sur l'extranet d'. Vous pouvez éventuellement les télécharger pour

Plus en détail

Cours de Programmation Orientée Objet

Cours de Programmation Orientée Objet Contrat et application à la librairie standard JAVA mailto:marc.champesme@lipn.univ-paris13.fr 6 février 2011 1 Qu est ce qu une classe? Un exemple en JAVA Résumé Expression du contrat Par des commentaires

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 Système virtuel StruxureWare Data Center Expert Le serveur StruxureWare Data Center Expert 7.2 est disponible comme système virtuel pris en charge

Plus en détail

Neuvièmes Journées Informatique de l'in2p3-irfu

Neuvièmes Journées Informatique de l'in2p3-irfu Neuvièmes Journées Informatique de l'in2p3-irfu Développement d une application Web en Symfony2 pour le projet CKM Live Alexandre CLAUDE LPC Clermont-Ferrand Service Informatique Jérôme Charles CPT Marseille

Plus en détail

L'application WinForm et le composant d'accès aux données

L'application WinForm et le composant d'accès aux données L'application WinForm et le composant d'accès aux données Vous disposez d'un squelette de l'application AntoineVersion0- ainsi que de la base de données à restaurer dans SqlServer Bd_Antoine.dat-. Travail

Plus en détail

Guide d utilisation. v 2.0

Guide d utilisation. v 2.0 Guide d utilisation v 2.0 Maj. le 23/10/2013 Inscription et Connexion à l'espace client 3 Installer le service de micropaiement PayPerPass 4 1. Ajouter un site! 5 2. Ajouter un produit! 6 3. Utiliser les

Plus en détail

Nouveautés joomla 3 1/14

Nouveautés joomla 3 1/14 Nouveautés joomla 3 1/14 Table des matières 1 Responsive... 1 2 Bootstrap... 1 3 LESS CSS intégré... 1 4. JUI (pour les développeurs d'extensions)... 1 5. Le Mambo days vs le Génial UX... 2 6. 7 étapes

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

Zend Framework 2 Développez des applications web mobiles (PHP, HTML5, JavaScript, NoSQL)

Zend Framework 2 Développez des applications web mobiles (PHP, HTML5, JavaScript, NoSQL) Avant-propos 1. À qui s adresse ce livre? 13 2. Comment cet ouvrage est-il structuré? 15 Premiers pas avec Zend 1. Objectif 19 2. Quoi de neuf chez Zend? 20 2.1 Zend Framework 2 20 2.2 Les nouveaux composants

Plus en détail