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

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

Plus en détail

Manuel d'utilisateur et de référence

Manuel d'utilisateur et de référence Manuel d'utilisateur et de référence MobileTogether Client Manuel d'utilisateur et de référence All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic,

Plus en détail

Manuel d'utilisateur et de référence

Manuel d'utilisateur et de référence Manuel d'utilisateur et de référence Manuel d'utilisateur et de référence All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical,

Plus en détail

TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian

TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian Objectif : faire un site pour gérer des articles par catégorie. Chaque catégorie a un nom, chaque catégorie est constitué d

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

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

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

Chaker ALLAOUI chaker.allaoui@gmail.com WEBSERVICE API REST SYMFONY 2

Chaker ALLAOUI chaker.allaoui@gmail.com WEBSERVICE API REST SYMFONY 2 Chaker ALLAOUI chaker.allaoui@gmail.com WEBSERVICE API REST SYMFONY 2 TABLE DES MATIERES Contenu Présentation 1 Technologies 2 Installation des bundles 3 Configuration des bundles 4 Configuration de Symfony

Plus en détail

Bypass et filtre sur les requêtes destinées à la servlet W4

Bypass et filtre sur les requêtes destinées à la servlet W4 Note technique W4 Engine Bypass et filtre sur les requêtes destinées à la servlet W4 Cette note technique décrit le filtre de contrôle du bypass de la servlet W4. Versions de W4 Engine concernées : 5.0

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

Le framework Symfony2

Le framework Symfony2 Le framework Symfony2 Historique et définition Framework: cadre de travail Objectif: améliorer la productivité des développeurs (se concentrer sur les choses importantes), structurer l application, accélère

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

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

XPhotos plugin pour XLOBBY par TocaToc - Version 1.0.0.0

XPhotos plugin pour XLOBBY par TocaToc - Version 1.0.0.0 XPhotos plugin pour XLOBBY par TocaToc - Version 1.0.0.0 Dernière mise à jour : 01/05/2007 Ce plugin a pour but de : Créer la database de vos photos pour XLOBBY, Créer, dans le répertoire "Cache" de Xlobby,

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

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

W3b-D4shB0ard documentation v0.1b.

W3b-D4shB0ard documentation v0.1b. W3b-D4shB0ard documentation v0.1b. Sommaire W3b-D4shB0ard documentation v0.1b...1 Informations relatives au projet...2 Description...2 License...2 Disclaimer...2 Requirements...2 Installation...3 Installation

Plus en détail

II Importation et retrait automatiques de

II Importation et retrait automatiques de II Importation et retrait automatiques de postes de travail Les services d'importation et de retrait automatiques de postes de travail de Novell ZENworks for Desktops (ZfD) permettent de gérer facilement

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

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

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

SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT. V 1.0 27 janvier 2011

SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT. V 1.0 27 janvier 2011 SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT V 1.0 27 janvier 2011 Ce document présente l'utilisation des plugins dans Tourism System Client. Dans le Client, un plugin

Plus en détail

Ezpublish Création d'un design

Ezpublish Création d'un design Ezpublish Création d'un design Transfert de compétence 17,18,19 octobre 2011 17/10/2011 Szsic Rennes - Dominique Seven 1 Rappel des objectifs Pouvoir créer un nouveau design pour un site ezpublish. Comprendre

Plus en détail

Architecture applicative de l application Web

Architecture applicative de l application Web Architecture applicative de l application Web Principes d organisation de l application PHP Gsb-AppliFrais Les principes d'organisation de l'application s'inspirent des travaux réalisés autour du contexte

Plus en détail

PHP. virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/pwb. Internet et HTML

PHP. virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/pwb. Internet et HTML PHP virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/ BUR Internet et HTML PHP, qu'est-ce que c'est? Un langage pour la programmation du serveur Permet d'inclure des parties programmées

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

Date: Autres informations: 15.06.2015 w w w.sw isssalary.ch. copyright 1998-2015 Swisssalary Ltd.

Date: Autres informations: 15.06.2015 w w w.sw isssalary.ch. copyright 1998-2015 Swisssalary Ltd. IncaMail Date: Autres informations: 15.06.2015 w w w.sw isssalary.ch copyright 1998-2015 Swisssalary Ltd. IncaMail 2015 SwissSalary Ltd. All rights reserved. No parts of this work may be reproduced in

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

Multitenant : Créer et Configurer une. Pluggable Database (PDB) avec Oracle Database 12c Release 1 (12.1)

Multitenant : Créer et Configurer une. Pluggable Database (PDB) avec Oracle Database 12c Release 1 (12.1) Multitenant : Créer et Configurer une Pluggable Database (PDB) avec Oracle Database 12c Release 1 (12.1) L'option multitenant introduite avec Oracle Database 12c permet à un seul conteneur database (CDB)

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

Google Chrome. La barre de favoris: Une petit barre (Ctrl+B) qui fait tout la largeur du navigateur juste en dessous de la barre de recherche.

Google Chrome. La barre de favoris: Une petit barre (Ctrl+B) qui fait tout la largeur du navigateur juste en dessous de la barre de recherche. Google Chrome Résumé rapide: Lien de téléchargement: http://www.google.fr/chrome La barre de favoris: Une petit barre (Ctrl+B) qui fait tout la largeur du navigateur juste en dessous de la barre de recherche.

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

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

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

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

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

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

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

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres),

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), Terminologie ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), RUBRIQUE : contenant d'articles et/ou de rubriques

Plus en détail

la réalisation d'un site d'inscriptions

la réalisation d'un site d'inscriptions Rapport du projet la réalisation d'un site d'inscriptions Réaliser par : Fatimaezzahra Yazough Année :2014 /2015 1/9 Yazough INTRODUCTION Le but de ce projet et de réaliser une maquette de site web pour

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

MANGUE Impression de données

MANGUE Impression de données MANGUE Impression de données 0. Préambule 1. Principe de Fonctionnement 2. Description des fichiers XML générés 2.1 DescriptionImpression.XML 2.2 Fichier XML généré 2.3 Exemples complets de balise et résultat

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

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

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

Guide d'installation client. Version 6.0 SP1

Guide d'installation client. Version 6.0 SP1 Guide d'installation client Version 6.0 SP1 2013 Pitney Bowes Software Inc. Tous droits réservés. Ce document peut contenir des informations confidentielles et exclusives appartenant à Pitney Bowes Inc

Plus en détail

Exécuter PHP en CLI. Table des matières 1. Introduction...2 2. Premier programme...2 3. Exécution en CLI...4 4. Les arguments...5

Exécuter PHP en CLI. Table des matières 1. Introduction...2 2. Premier programme...2 3. Exécution en CLI...4 4. Les arguments...5 Exécuter PHP en CLI Table des matières 1. Introduction...2 2. Premier programme...2 3. Exécution en CLI...4 4. Les arguments...5 PHP est un langage simple, puissant et modulaire qui peut s exécuter à partir

Plus en détail

Plugin Payment-OnLine

Plugin Payment-OnLine Plugin Payment-OnLine Le plugin "Payment-Online" est un plugin technique dont l'objectif est de faciliter l'utilisation du paiement en ligne dans des applications Lutèce. Il se compose d'une librairie

Plus en détail

Chapitre 4 La base de données

Chapitre 4 La base de données Chapitre 4 La base de données La Base de données INTRODUCTION 4 La Base de données INTRODUCTION Vectorworks permet de lier les objets du dessin à des formats de base de données (BDD), c'est-à-dire d'associer

Plus en détail

Microsoft Windows Server Update Services. Microsoft Internet Information Services (IIS) 6.0. Pour des

Microsoft Windows Server Update Services. Microsoft Internet Information Services (IIS) 6.0. Pour des Microsoft Windows Server Update Services Conditions requises pour l'installation de WSUS Microsoft Internet Information Services (IIS) 6.0. Pour des instructions sur le mode d'installation des services

Plus en détail

Arité variable, énumérations. Arité variable. Arité des méthodes. Utilisation de la surcharge

Arité variable, énumérations. Arité variable. Arité des méthodes. Utilisation de la surcharge Arité variable, énumérations Théorie et pratique de la programmation Michel Schinz 2013-05-13 Arité variable 1 2 Arité des méthodes Utilisation de la surcharge Il est parfois utile d'offrir des méthodes

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

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

Installation d'un serveur Forefront Threat Management Gateway 2010 (TMG 2010)

Installation d'un serveur Forefront Threat Management Gateway 2010 (TMG 2010) Installation d'un serveur Forefront Threat Management Gateway 2010 (TMG 2010) Par LoiselJP Le 01/05/2013 1 Objectifs Ce document décrit le plus succinctement possible une manière, parmi d'autres, d installer

Plus en détail

PROGRAMMATION WINDOWS

PROGRAMMATION WINDOWS PROGRAMMATION WINDOWS Copyright 2004 Exood4 Studios, Tous droits réservés www.exood4.com Table des matières 1 Introduction... 3 2 Programmation d'une DLL... 4 2.1 Première méthode...4 2.2 Deuxième méthode...6

Plus en détail

Premiers pas avec Eclipse : INTRODUCTION INSTALLATION. Premiers contacts : Le workspace est le répertoire dans lequel sont stockés :

Premiers pas avec Eclipse : INTRODUCTION INSTALLATION. Premiers contacts : Le workspace est le répertoire dans lequel sont stockés : Premiers pas avec Eclipse : INTRODUCTION Eclipse est un IDE, Integrated Development Environment (EDI environnement de développement intégré en français), c'est-à-dire un logiciel qui simplifie la programmation

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

Frequently Ask Question STBackup

Frequently Ask Question STBackup - Est-ce que je peux restaurer des fichiers sous différents systèmes d'exploitation? Oui, mais il faut s'assurer que le nom du fichier ou du dossier ne contient pas de caractères incompatibles sur le système

Plus en détail

Zend Framework 2 Industrialisez vos développements PHP

Zend Framework 2 Industrialisez vos développements PHP Avant-propos 1. Lectorat 15 2. Contenu du livre 15 3. Pré-requis 17 Introduction 1. Un peu d histoire 19 1.1 Petite histoire de l informatique 19 1.2 Petite histoire des langages informatiques 20 1.3 Petite

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

IBM SPSS Modeler Entity Analytics - Configuration avancée

IBM SPSS Modeler Entity Analytics - Configuration avancée IBM SPSS Modeler Entity Analytics - Configuration avancée Introduction Ce guide s'adresse aux administrateurs système qui configurent IBM SPSS Modeler Entity Analytics (EA) pour le déployer avec l'un des

Plus en détail

Créer un formulaire de contact pour votre site gratuitement (6 méthodes)!

Créer un formulaire de contact pour votre site gratuitement (6 méthodes)! Créer un formulaire de contact pour votre site gratuitement (6 méthodes)! Author : soufiane Bonjour, Cherchez-vous depuis des jours comment insérer un formulaire de contact sur votre site web? Gratuitement

Plus en détail

Introduction à Zend Framework 2

Introduction à Zend Framework 2 Introduction à Zend Framework 2 Mickael Perraud & Julien Pauli Contributeur ZF depuis 2007 Responsable documentation française Donne des webinars sur ZF en partenariat avec Zend Travaille sur l'aide à

Plus en détail

Gestion d identités PSL Installation LdapSaisie

Gestion d identités PSL Installation LdapSaisie Gestion d identités PSL Installation LdapSaisie Entr ouvert SCOP http ://www.entrouvert.com 10 mars 2015 Table des matières 1 Installation du système de base 1 2 Installation du composant LdapSaisie 1

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

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

Tp n 2 : Fonctions statistiques et VBA (Visual Basic for Applications)

Tp n 2 : Fonctions statistiques et VBA (Visual Basic for Applications) Tp n 2 : Fonctions statistiques et VBA (Visual Basic for Applications) Partie 1: Fonctions statistiques Excel permet d effectuer une analyse statistique d un fichier de données à l aide d un utilitaire

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

Remote Control Library Librairie Remote Control

Remote Control Library Librairie Remote Control Remote Control Library Librairie Remote Control Installation File, Fichier : REMOTEVPU.EXE After installation Après installation In the toolbox : Dans la boite à outils : Files Added, Files Ajoutés : C:\API32\Modules\

Plus en détail

variables du "shell" variables d environnement ...> rename orig dest

variables du shell variables d environnement ...> rename orig dest C. Les scripts en Unix 1 Qu'est-ce qu'un "shell"? Un "shell" est un programme permettant d'isoler l'utilisateur des commandes internes du système d'exploitation. Nous donnerons une description des principales

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

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

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

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 SalesLogix NOTICE The information contained in this document is believed to be accurate in all respects

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

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

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

Adobe Application Manager Enterprise Edition version 3.1

Adobe Application Manager Enterprise Edition version 3.1 Adobe Application Manager Enterprise Edition version 3.1 Version de document 3.1 Date du document : Septembre 2012 Adobe Application Manager Enterprise Edition version 3.1 Bienvenue dans Adobe Application

Plus en détail

SOMMAIRE EXMERGE. Chapitre 1 Installation EXMERGE 2. Chapitre 2 Modification ExMerge 6. Chapitre 3 Exécution sans erreur 23

SOMMAIRE EXMERGE. Chapitre 1 Installation EXMERGE 2. Chapitre 2 Modification ExMerge 6. Chapitre 3 Exécution sans erreur 23 Exchange 2003 Page 1 sur 32 SOMMAIRE Chapitre 1 Installation 2 1.1 Téléchargement 2 1.2 Installation 4 1.3 1 er lancement 5 Chapitre 2 Modification ExMerge 6 2.1 2 nd lancement 6 2.2 3ème lancement 11

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

Content Manager System

Content Manager System Content Manager System Système de Gestion de Contenu GNU Free Documentation License Version 1.2, November 2002 Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor,

Plus en détail

COURS 6 Adopter un style de programmation clair

COURS 6 Adopter un style de programmation clair COURS 6 Adopter un style de programmation clair Lorsque votre site prend de l'importance, le code devient vite illisible et incompréhensible si vous ne pensez pas à l'organiser. Mais comment organiser

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

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

Guide de l utilisateur WebSeekurity

Guide de l utilisateur WebSeekurity SCRT Information Security Julia Benz Guide de l utilisateur WebSeekurity Version 1.0 Mars 2012 Table des matières Table des matières i 1 Introduction 1 1.1 Contributions.............................. 1

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

Utiliser le Zend Framework avec Symfony

Utiliser le Zend Framework avec Symfony Utiliser le Zend Framework avec Symfony Xavier Gorse ELAO A partir du support de Matthew Weier O'Phinney Chef de Projet, Zend Framework Xavier Gorse - xavier.gorse@elao.com Gérant de la société ELAO Expertise,

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

WDpStats Procédure d installation

WDpStats Procédure d installation WDpStats Procédure d installation Table de matières WDpStats... 1 Procédure d installation... 1 Table de matières... 1 Résumé... 2 Réquisits... 2 Installation... 2 Difficultés... 6 Lancement... 7 wdpstats_install_oracle_fr.xml

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

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

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

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

Mémento Site Dynamique / PHP

Mémento Site Dynamique / PHP Mémento Site Dynamique / PHP Pour faire fonctionner site statique : Navigateur Éditeur de texte Apache/PHP/MySQL (qu'on peut retrouver dans WampServer (uniquement Windows)) Inclure les portions de page

Plus en détail