Symfony configuration.

Slides:



Advertisements
Présentations similaires
CRÉER UNE APPLICATION INTERNET RELIEE A UNE BASE DE DONNEES
Advertisements

Le struts validator – framework de validation
Transformation de documents XML
Conception de Site Webs Interactifs Cours 8 Patrick Reuter
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Exposé de Système - Informatique et Réseau
Symfony i18n. terminologie internationalization = i18n –Un même contenu traduit en plusieurs langue, éventuellement converti en différents formats localization.
Symfony Liens & routing.
Design Pattern MVC En PHP5.
Virtools Olivier Lamotte.
TP 3-4 BD21.
Formulaire HTML Introduction. Définition de formulaire.
Bonnes pratiques ez publish
Introduction aux CMS.
Soutenance de stage · Par : Guillaume Prévost · Entreprise : Cynetic
Sécurité Informatique
Cours n°3 Les formulaires
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Licence GNU FDL - Version 1.5
Développement d’applications web
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
CPI/BTS 2 Programmation Web Introduction au PHP
L’utilisation des bases de données
Mars 2013 Grégory Petit
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
Développement Rapide dApplications Web avec.NET « Mon premier site »
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Accès aux données généralisé SQL est presque une solution! Le problème: Le SQL n'est pas une langue complète, et doit être intégré dans un langage de programmation.
Les instructions PHP pour l'accès à une base de données MySql
28 novembre 2012 Grégory Petit
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
L’utilisation des bases de données
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
FICHIERS : Définition : Algorithme général:
Création d'un projet Web avec Netbeans
MySQL Création des sites dynamiques
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Animateur : Med HAIJOUBI
PHP & My SQL.
JavaScript Nécessaire Web.
PHP 5° PARTIE : LES COOKIES
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
09/11/2006 CMS Content Management System Système de Gestion de Contenu.
Créer des packages.
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
05/02/98WEB ESNIG Modèle logique de données Oracle Designer/2000 & Oracle Web Server.
Acquisition d’information sur internet
Structure de stockage et relations
Struts.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
G.KEMBELLEC - UP81 Master 2 THYP Cas pratique d’utilisation De simpleXML Un lecteur de RSS Novembre 2009.
Module : Pages Web Dynamiques (Production Électronique Avancée)
 Formulaires HTML : traiter les entrées utilisateur
Contrôles automatiques et paramètrables de flux
Initiation au JavaScript
Les Java Server Pages Dans ce chapitre, nous allons :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
HTML Création et mise en page de formulaire
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Bloc 1 - UE 5 - Technologies de l’information et de la communication TIC Bachelier en immobilier T. SOUMAGNE.
Visual Information Solutions IDL 7.0 Pour une utilisation optimale d’IDL.
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Transcription de la présentation:

Symfony configuration

généralités La configuration de symfony est stockée dans des fichiers .yml (YAML) par défaut Un fichier de configuration peut se trouver au niveau du projet de l’application ou du module Possibilité de centralisé un ensemble de configuration dans de des environnements Les valeurs définies dans les fichiers de configuration sont accessibles via PHP Le code PHP est possible dans les fichiers .yml

La configuration dans symfony Puissant : Presque tous les aspects pouvant être gérés par les fichiers de configurations le sont. Simple : Beaucoup d’aspect configurables ne sont pas mentionnés dans une application standard, puisqu’ils ont rarement besoin d’être changés. Facile : Les fichiers de configuration sont faciles à lire, à modifier, et à créer par le développeur. Personnalisable: Le langage de configuration par défaut est YAML, mais peut être INI, XML, ou n’importe quel langage que le développeur préfère. Rapide : Les fichiers de configurations ne sont jamais interprétés par l’application mais par le système de configuration, qui les compile en morceaux rapide d’exécution de code pour le serveur PHP.

YAML http://www.yaml.org/ sérialisation de données langage simplifié de description de données en XML Efficace pour les représentation de liste et tableaux associatifs … L’indentation (2 espaces -> gare aux tabulations!!) fait partie du langage! # pour le commentaire

YAML - string Chaîne de caractères non standard sont à entourer par des simples quotes error1: Ce champ est obligatoire error2: ' Ce champ est obligatoire ‘ error3: 'Don''t leave this field blank' error4: ‘error : Don''t leave this field blank' Chaîne de caractères multiligne (sans line break) accomplishment: > Mark set a major league home run record in 1998. Chaîne de caractères multiligne (avec line break) stats: | 65 Home Runs 0.278 Batting Average

YAML – tableau Syntaxe courte pour les tableaux players: [ Mark McGwire, Sammy Sosa, Ken Griffey ] Syntaxe étendue pour les tableaux players: - Mark McGwire - Sammy Sosa - Ken Griffey

YAML – tableau associatif Syntaxe courte pour les tableaux associatifs mail: { webmaster: webmaster@example.com, contact: contact@example.com } Syntaxe étendues pour les tableaux associatifs mail: webmaster: webmaster@example.com contact: contact@example.com Syntaxe courte incorrecte mail: {webmaster:webmaster@example.com,contact:contact@example.com}

Ce tableau PHP $house = array( 'family' => array( 'name' => 'Doe', 'parents' => array('John', 'Jane'), 'children' => array('Paul', 'Mark', 'Simone') ), 'address' => array( 'number' => 34, 'street' => 'Main Street', 'city' => 'Nowheretown', 'zipcode' => '12345‘ ) );

S’écrit en yaml house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone address: number: 34 street: Main Street city: Nowheretown zipcode: "12345"

Ca vient en l’utilisant don’t panic!! Ou encore … house: family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] } address: { number: 34, street: Main Street, city: Nowheretown, zipcode: "12345" } Les catégories permettent de regrouper des paires clé: valeur all: .general: tax: 19.6 Ca vient en l’utilisant don’t panic!!

Vue globale configuration d’un projet symfony config.php: premier fichier exécuté par une requête ou une commande. Il contient le chemin des fichiers du framework (perosnnalisable). databases.yml: les paramètres de connexion à la base de données (serveur, login, password, nom de la base, …). Ils peuvent être modifiés au niveau application. properties.ini: paramètres utilisés par l’outil en ligne de commande rsync_exclude.txt: spécifie les répertoires devant êtres exclus des synchronisations entre serveurs schema.yml & propel.ini: fichiers de configurations d’accès aux données utilisés par Propel (la couche ORM de symfony). schema.yml contient une représentation du modèle de données relationnel du projet. propel.ini est automatiquement généré

Schéma de BDD blog config/schema.yml config/database.yml propel: blog_article: _attributes: { phpName: Article } id: title: varchar(255) content: longvarchar created_at: blog_comment: _attributes: { phpName: Comment } article_id: author: varchar(255) config/database.yml all: propel: class: sfPropelDatabase param: phptype: mysql host: localhost database: blog username: root password: encoding: utf8 « propel » dans nom de la connexion à la base de données Possibilité de connexion différentes par environnement

Syntaxe standard du schéma config/schema.yml conditionne le nom de l’objet php associé. Si aucun nom d’origine version camelCase propel: blog_article: _attributes: { phpName: Article } id: title: varchar(255) content: longvarchar created_at: blog_comment: _attributes: { phpName: Comment } article_id: author: varchar(255) reconnu comme clé primaire auto-incrémentée updated_at ou created_at automatiquement définis comme times tamp colonnes finissant par _id considérées comme clés étrangères table correspondante déterminée par la première partie du nom de la colonne attribut type : boolean, integer, float, date, varchar(size), longvarchar, etc … autres attributs (par défaut, obligatoire, etc…) écrire ces attributs comme un ensemble de clé:valeur

La classe!! crééer les classes du modèle de la couche ORM symfony propel-build-model Classes de base générées dans lib/model/om/ BaseArticle.php BaseArticlePeer.php BaseComment.php BaseCommentPeer.php Classes réelles générées dans lib/model Article.php ArticlePeer.php Comment.php CommentPeer.php

More exciting than YAML DBDesigner Création de schéma de BDD en mode graphique Possibilité de convertir le schéma visuel en schema.yml  Application non maintenue, qui ne compile pas sous linux  http://www.strangebuzz.com/index.php/2008/09/08/36-new-symfony-11-plugin-tutorial-sfdb4topropelplugin http://mazenod.fr/blog/un-petit-batch-pour-symfony.html http://mazenod.fr/blog/commencer-un-projet-symfony.html http://mazenod.fr/blog/dbdesigner-out-of-memory.html http://mazenod.fr/blog/utiliser-dbdesigner-avec-l-i18n-de-symfony.html

Vue globale configuration d’une application symfony app.yml: variables globales définissant la logique applicative spécifique à une application, n’ayant pas besoin d’être stockées dans une base de données. Il est vide par défaut. config.php: démarre en incluant le fichier config.php du projet. factories.yml: permet d’utiliser le framework avec des classes personnalisées filters.yml: Les filtres sont des portions de code exécutés à chaque requête. Définitions de la séquence de filtres. Peut être modifié au niveau module logging.yml: définit le niveau de détails devant être enregistré dans les logs routing.yml: Les règles de routage, permettant de transformer les urls illisibles et « unbookmarkable » en de belles urls

Vue globale configuration d’une application settings.yml: paramètres principaux d’une application symfony, activation de l’internationalisation, langage par défaut, timeout d’une requête, le cache actif ... En changeant une seule ligne dans ce fichier, vous pouvez interrompre view.yml: structure de la vue par défaut (nom du layout, titre, tags meta, css & js par défaut …). Peut être modifié au niveau module i18n.yml: paramètres généraux de traduction, comme la culture par défaut pour les traductions, traductions fichiers ou base de données et leurs formats. i18n/: dictionnaires basiques, donnant une traduction pour chaque phrases. Utilisées dans le template de l’application de sorte que les pages affichent le texte traduit lorsque l’utilisateur change de langue.

Vue globale configuration d’une application Fichiers de conf du framework, redéfinissables autoload.yml: paramètres de la fonctionnalité d’auto chargement. constants.php: structure de fichier par défaut de l’application bootstrap_compile.yml: liste des classes à inclure lors du démarrage de l’application core_compile.yml: liste des classes à inclure pour traiter une requête Ces classes sont en fait concaténées dans un fichier PHP optimisé sans commentaires (accélère l’exécution) config_handlers.yml: permet d’ajouter ou de modifier les gestionnaires utilisés pour traiter chaque fichier de configuration php.yml: vérifie les variables du php.ini sont correctement définies et permet de les modifier, si nécessaire

Vue globale configuration d’un module generator.yml: pour les modules générés à partir de la table d’une base de données (scaffoldings and administrations), définit comment l’interface affiche les lignes et les champs, et quelles interactions sont proposées à l’utilisateur (filtres, ordonnancement, boutons, …) module.yml: contient des paramètres personnalisés spécifique à un module (équivalent à app. yml, mais au niveau d’un module) et aux actions. security.yml: définit la restriction d’accès aux actions. Permet de spécifier qu’une page peut être vue seulement par les utilisateurs enregistrés ou par un sous-ensemble d’utilisateur enregistrés avec des droits spéciaux. view.yml: contient la configuration pour les vues pour une ou toutes les actions du module. Il modifie le fichier view.yml de l’application Data validation files: situés dans le répertoire validate/ au lieu de config/, les fichiers YAML de validation de données, sont utilisés pour contrôler les données entrées dans les formulaire. Ils ont pour nom le nom de l’action

Les environnements – en bref partagent le même code PHP Peuvent avoir des configurations différentes symfony fournit trois environnements par défaut: Production (prod) http://localhost/app_prod.php/ ou http://localhost/app.php enregistre les erreurs test (test) http://localhost/app_test.php/ enregistre les alertes et les erreurs développement (dev) http://localhost/app_dev.php/ l’accélération du cache est désactivé La debug barre est activée

Conifguration des environnements # Production environment settings prod: ... # Development environment settings dev: ... # Test environment settings test: ... # Custom environment settings myenv: ... # Settings for all environments all: ...

Configuration en cascade La même configuration peut être définie plusieurs fois myapp/config/view.yml default: https_metas: content-type: text/html myapp/modules/rss/config/view.yml content-type: text/xml

Accéder à la configuration à partir du code PHP La classe sfConfig permet d’accéder à la configuration parameter = sfConfig::get('param_name', $default_value); sfConfig::set('param_name', $value); Apps/myapp/config/app.yml all: version: 1.5 Sera accessible comme suit echo sfConfig::get('app_version');

Accéder à la configuration à partir du code PHP II Certaines variables de configuration symfony sont accessible via PHP settings.yml all: .settings: available: on path_info_array: SERVER Accessibles comme suit sfConfig::set('sf_available’, false); sfConfig::get('sf_path_info_array’); N.B. : les catégories n’apparaissent pas dans le chemin de la variable

Accéder dynamiquement à la configuration dans le code PHP autoload.yml autoload: symfony: name: symfony path: %SF_SYMFONY_LIB_DIR% recursive: on exclude: [vendor] Pour une variable de app.yml %APP_LOCATION_OF_VARIABLE% ou <?php echo sfConfig::get(‘app_location_of_variable'). ''\n'' ?>