CHARLOIS SIGAUD AGNAN Nils Vincent Diane PROJET 04 - PLATEFORME DE PROJET ZEND ET SYMFONY



Documents pareils
Rapport de stage Clément MOYSAN

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

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

3 chapitre Groupe Eyrolles, 2008

Joomla! Création et administration d'un site web - Version numérique

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Présentation de solutions de Progiciels de Gestion d'epn Forum des Usages Brest 2010

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

les techniques d'extraction, les formulaires et intégration dans un site WEB

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP. 27 ans - 6 ans d'expérience

Installation et prise en main

Manuel utilisateur. des. listes de diffusion. Sympa. l'université Lille 3

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Documentation technique

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

TD/TP 1 Introduction au SDK d Android

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

L'accès aux ressources informatiques de l'ufr des Sciences

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Programme ASI Développeur

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Drupal (V7) : principes et petite expérience

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

Nouveautés joomla 3 1/14

INGÉNIEUR - DÉVELOPPEUR SENIOR PHP. 28 ans - 8 ans d'expérience

Un serveur web, difficile?

Bonnes pratiques de développement JavaScript

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Mémo d'utilisation de BD Dico1.6

SUPPORT DE COURS / PHP PARTIE 3

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Documentation de conception

Configuration de SQL server 2005 pour la réplication

Tutoriel Drupal version 7 :

LES ACCES ODBC AVEC LE SYSTEME SAS

Serveur de travail collaboratif Michaël Hoste -

Installer un serveur web de développement avec VirtualBox

Loïc Rossignol Ingénieur Consultant

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Mercredi 15 Janvier 2014

CATALOGUE DES FORMATIONS LANGUES

PHP et LeMonde.fr : passé, présent et avenir Olivier Grange-Labat <grange@lemonde.fr>

Projet M1 Sujet 21 : Développement d'un logiciel simplifié de type Business Object

Webmaster / Webdesigner / Wordpress

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

SRAL Saint Raphaël. Maison des associations 213, rue de la Soleillette Saint Raphaël. : : dromain.jean-pierre@neuf.

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Présentation du Framework BootstrapTwitter

Formation en Logiciels Libres. Fiche d inscription

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

ECLIPSE ET PDT (Php development tools)

Application web de gestion de comptes en banques

Pratique et administration des systèmes

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

42 Formations Web & Open Source

Maarch V1.4

Mysql. Les requêtes préparées Prepared statements

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Business Sharepoint Contenu

JOnAS Day 5.1. Outils de développements

PHP 4 PARTIE : BASE DE DONNEES

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

COMPÉTENCES TECHNIQUES

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

Créer un rapport pour Reporting Services

Gestion des utilisateurs : Active Directory

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

1 Démarrage de Marionnet

Les Utilisateurs dans SharePoint

SERVEUR DE MESSAGERIE

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin Entreprise decoratzia.com 15 rue Erlanger Paris

Armand PY-PATINEC 2010

Nuxeo 5.4 : les nouveautés

Guide d'installation sous Windows

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

contact@nqicorp.com - Web :

Catalogue des Formations Techniques

Transcription:

CHARLOIS SIGAUD AGNAN Nils Vincent Diane PROJET 04 - PLATEFORME DE PROJET ZEND ET SYMFONY

Installation de Symfony : Paquet à installer : - php5 - php5-pgsql - postgresql - apache2 Prérequis au niveau des droits : - pouvoir écrire dans le dossier /var/www installation : - récupérer le fichier.zip ou.tar.gz depuis le site du framework.. (J'ai installé la version 1.4 car elle bénificie du LTS ( Long Serm Support ) ) - créer un répertoire qui contiendra le projet ( dans le dossier /var/www/ par exemple, avec les droits ) - créer un répertoire lib contenant un répertoire vendor, et décompresser le zip ( ou tar.gz ) dans le dossier lib/vendor du dossier du projet ( /var/www/nom_du_projet/lib/vendor ) Création d'un projet : - se placer dans le répertoire de votre projet ( cd /var/www/nom_du_projet ) - taper la commande "php lib/vendor/symfony/data/bin/symfony generate:project nom_projet" ( Cette commande créera également un fichier symfony dans le dossier /var/www/ nom_du_projet qui permettra par la suite de taper la commande "php symfony" pour effectuer les autres opérations ) Création d'une application liée à un projet ( plusieurs applications peuvent être regroupées dans un projet ) : - aller dans le répertoire créé pour le projet - taper la commande "php symfony generate:app nom_de_l'appli" ( en général, plusieurs applications sont crées, une pour le front office et une pour le back office ) Fichiers de configuration : au format yml ( YAML ) : 3 catégories de fichiers : - pour tout le projet - pour chaque application - pour chaque module

Lien avec la base de données ( existante ) et ORM : ORM : Technique permettant d'associer une table d'une base de données à une ou plusieurs classes d'un langage orienté objet. Chaque instance de cette classe correspond à un enregistrement de la table et chaque attribut de la classe est un champ de la table. Symfony fournit 2 outils permettant de faire de l'orm, Propel et Doctrine.. Par défaut, Doctrine est utilisé et tend à devenir l'outils ORM officiel de Symfony. ( Attention, le paquet php5-pgsql doit être installé!! Il fournit l'outil permettant à symfony de se connecter à la bdd postgresql ) Fichiers de connexion et schéma de la base de données : Afin d'éditer automatiquement le fichier config/doctrine/shema.yml ainsi que le fichier config/databases.yml, - "php symfony configure:database "pgsql:host=localhost;dbname=nils" nils metafury" - "php symfony doctrine:build-schema" Explications : La première commande permet de modifier le fichier config/databases.yml afin de lui préciser sur quelle base de données nous travaillons ( postgresql en l'occurence ), où la trouver, sur quel port, quel est nom d'utilisateur, le mot de passe, le nom... La 2ème commande est là pour générer le schéma de la base de données utilisée ( relation entre les tables, clé étrangères, contraintes... ) Le schéma décrivant les tables de la base de données est maintenant fait, il faut générer les modèles sur lesquels nous travaillerons par la suite. Voici la commande qui fait cela : "php symfony doctrine:build --model", les modèles sont placés dans le répertoire lib/model/ Ce sont des fichiers php. La commande "php symfony doctrine:build --sql" génère le fichier sql en relation avec le schéma. Ce fichier.sql est placé dans le répertoire data/sql/ et recense les opérations à effectuer afin de créer les tables et les enregistrements. Les types de données : - Les données initiales : Les données initiales sont nécessaires à l'application pour travailler. Par exemple, l'album photo ( projet L3 ) a besoin de quelques catégories initiales. Sinon, personne ne sera en mesure de rajouter une photo. Nous avons également besoin d'un utilisateur administrateur pour être capable de se connecter au backend.

- Les données de test : Elles sont nécessaires pour l'application à tester. Elles permettent de tester le bon fonctionnement de l'application développée. - Les données utilisateur : Crées par les utilisateurs pendant la durée de vie normale de l'application. Les données initiales font donc partie du noyau du projet, elles font parties intégrantes de l'application. L'édition de fichiers au format YAML (.yml ) dans le dossier data/fixtures permettent de décrire les données initiales. Voici un example : # data/fixtures/categories.yml AlbumCategories: animaux: name: Animaux paysages: name: Paysages personnes: name: Personnes # data/fixtures/jobs.yml AlbumUtilisateurs: nils: nom: charlois prenom: nils statut: administrateur url: http://nuklearprojekt.c.la/ location: Avignon, France email: nils.charlois@gmail.com Une fois ces fichiers créés, nous pouvons générer les enregistrements dans les bonnes tables grâce à cette commande : "php symfony doctrine:data-load" Cela aura pour effet de créer 3 enregistrements dans la table categories et 1 enregistrement dans la table utilisateurs pour l'administrateur Les modules Modules Un module est un ensemble autonome de code PHP qui représente une caractéristique de l'application (le module API par exemple), ou un ensemble de manipulations, l'utilisateur peut le faire sur un modèle d'objet. ( cela peut être un module qui gère des rapports d'étudiants par exemple )

php symfony doctrine:generate-module --with-show --non-verbose-templates nom_de_l'application nom_du_module nom_du_modèle Cette commande crée un module, pour l'application nom_de_l'application en s'appuyant sur le modèle nom_du_modèle. Un nouveau répertoire est alors créé à cet emplacement : apps/frontend/modules/ nom_du_nouveau_module/ Et il contient 2 dossiers qui sont actions et templates. Le fichier actions/actions.class.php permet à l'utilisateur d'avoir accés aux actions de base sur un enregistrement ( CRUD ). ( CRUD : Create Read Update Delete sont les 4 opérations de base que l'on peut effectuer sur une table ) Vues et controlleurs Mise en page : Un fichier par défaut présentant un affichage de base ( template ) est présent dans ce dossier apps/frontend/templates/ et s'appelle layout.php Les helpers facilitent grandement la tache, c'est une sorte de bibliothèque permettant d'écrire rapidement du code php en passant par des accélérateurs. Les fichiers css sont présents dans le dossier web/css, les images dans web/images et les javascripts dans web/js Zend VS Symfony Symfony : 4 environnements : Environnement de développement : Environement utilisé par les développeurs web lors du développement des applications pour en ajouter de nouvelles, corriger les bugs,... Environnement de test : Environnement qui test automatiquement les applications. Environnement de qualité : Environnement qui permet aux utilisateurs de tester l'application et d'envoyer des rapports de bug Environnement de production : Environnement final de l'utilisation de la plateforme. Automatisation : Symfony utilise certaines lignes de commande pour automatiser certaines tâches, comme par exemple ; généré les modèles, vues et contrôleur pour créer de nouveaux modules. Ces lignes de commandes sont issues du shell de Linux, qui permet à l'utilisateur de ne pas être dépaysé.

Base de données : Symfony permet d'utiliser n'importe quel gestionnaire de base de données, Zend-Db compris et aussi de gérer la BDD de façon abstraite avec sfdatabase. sfpostgresqldatabase permet d'effectuer les connexions et déconnexions au base de données PostgreSQL. COMPARATIF La force et aussi la faiblesse de Zend est qu'il n'y a pas une façon particulière de développer. Symfony permettrait d'harmoniser le code de chacun en un seul modèle et une implémentation dans une structure bien définie. Opération ZEND SYMFONY Création de Modele/Vue/ Contrôleur Module de Test Module de bug report Création de chacun à la main. Création à la main Création à la main Une ligne de commande permet de les générer automatiquement. Un environnement de Test déjà implémenté Génération de code Presque inexistante Très présente Hiérarchie de dossiers Plugins Très flexible (doit tout parametrer) Inexistants Un environnement appelé "Stagging" qui permet aux utilisateurs de tester l'application et d'envoyer des rapport de malfonctions ("Bug report"). Très stricte mais très propre Large gamme (dont le plugin Zend) Base de données Modele "ActiveRecord" Choix par l'utilisateur Création MVC : Sur Zend il faut déjà connaître les base du MVC pour comprendre et développer sur la plateforme.

Remaniement du MCD