Démarrer un projet avec Symfony Le Framework Symfony est un outil avancé permet
Démarrer un projet avec Symfony Le Framework Symfony est un outil avancé permettant aux développeurs PHP de gagner un temps considérable lors du développement d'un nouveau site web. Plan du chapitre: Introduction Installation du framework Symfony Déploiement de notre application Configuration Apache Erreurs fréquentes Introduction http://www.symfony-project.org/ est un framework PHP pour vos projets web développés en PHP5. Mais qu'est-ce qu'un framework ? Pour faire simple, un framework est un ensemble d'outils permettant de ne pas réinventer la roue. Il propose plusieurs modules solides, optimisés, testés par plusieurs développeurs et donc fiables. Un framework permet aussi d'imposer des normes et standards de développement qui permettent une réutilisation du code dans vos autres applications. Toujours grâce à ces standards, il sera bien plus simple pour un autre développeur de prendre la suite du développement d'un site développé avec Symfony. Tous les composants d'un framework sont faits pour fonctionner les uns avec les autres. Assemblés, ils forment une architecture efficace permettant de créer rapidement une application (Web PHP dans le cas de Symfony). Il existe plusieurs Frameworks PHP libres comme Symfony: Zend, CakePHP... Toutefois, c'est Symfony que j'ai retenu, du fait de son architecture MVC très poussée, sa facilité de développement, sa philosophie, sa communauté ... Le Framework Symfony Symfony a été lancé en octobre 2005 par Fabien Potencier, pour la société française http://www.sensiolabs.com/fr. Il utilise plusieurs concepts et design pattern permettant de ne pas réinventer la roue: Structure MVC: Modèle Vue Contrôleur. ORM: Mapping Objet Relationnel (Doctrine ou Propel) Tests unitaires et fonctionnels Gestion des environnements: Développement, production, tests ... Sécurité: XSS ... Outils de debugging Administration auto générée Internationalisation Extensions: Gestion des plugins Vous êtes peut être un peu perdu dans ce vocabulaire technique, mais je tenterai de vous faire comprendre l'essentiel tout au long du tutorial. Pour les plus réfractaires, sachez que des sites à très forte charge utilisent le framework, c'est le cas de dailymotion ou Yahoo! Installation du framework Symfony Nous allons pouvoir commencer à installer le framework sur notre environnement de développement web. Il existe plusieurs façons de l'installer et sur différents OS. Dans le tutorial, nous allons voir comment l'installer sur un serveur web linux déjà installé (Debian/Ubuntu). Si vous souhaitez savoir comment installer un serveur web sous linux, vous pouvez suivre le tutorial de la Ferme du Web: Mettre en place un serveur Web sous debian. Il est possible d'utiliser Symfony localement avec Wamp ou Mamp en téléchargeant la version Sandbox de Symfony, mais l'objectif du tutorial est de créer un véritable environnement de production. Si vous n'avez pas de machine permettant de faire serveur, je vous recommande la virtualisation (Machine virtuelle Symfony). Méthodes d'installation de l'environnement Symfony: Avec PEAR Avec SVN Pré installé avec la machine virtuelle Symfony Personnellement, j'ai utilisé pear pour me faciliter la vie, mais c'est bien d'utiliser SVN pour garder la version à jour ou faciliter les migrations. Installation de Symfony avec PEAR Dans un premier temps, installez pear sur votre distribution si ce n'est pas encore fait: apt-get install php-pear Une fois que le pear est installé, il faut découvrir le channel dédié à Symfony: pear channel- discover pear.symfony-project.com Puis télécharger la dernière version du framework. (Changez le 1.2.7 par la dernière version de Symfony) pear install symfony/symfony-1.2.7 Et voilà normalement Symfony est installé et prêt à utilisation ! Pour vérifier que tout s'est bien passé, tapez la commande suivante: symfony -V Vous devriez obtenir un message vous indiquant la version du framework installé. Si vous rencontrez des problèmes d'installation, expliquez votre problème avec l'erreur dans le forum (topic dédié). Si vous souhaitez installer Symfony d'une autre manière, allez faire un tour sur la documentation officielle. Déploiement de notre application Afin d'avoir les mêmes répertoires que pour le tutorial, je vous conseille de créer un répertoire watchmydesk/ dans le homedir de votre utilisateur linux. Maintenant que tout est installé, nous allons générer l'application. Toujours en ligne de commande, un projet web sous Symfony se créé de la manière suivante: symfony generate:project watchmydesk Où watchmydesk est le nom du projet que l'on va créer. Les fichiers du projet sont désormais créés. Description des fichiers Regardons brièvement l'architecture générée: Code: apps/ Contient les différentes applications du projet cache/ Contient tous les fichiers de cache config/ Fichiers de configuration du projet lib/ Répertoire où sont stockés les librairies, classes PHP, les modèles... log/ Traces et debug du framework plugins/ Plugins installés dans le projet test/ Répertoire contenant les tests unitaires / fonctionnels web/ Le répertoire web sur lequel pointe notre domaine. Création de deux applications Symfony permet de créer plusieurs applications dans un même projet. Dans notre cas, nous aurons deux applications: Application frontend: La partie publique du site Application backend: La partie back office Vous l'aurez compris, il faut encore utiliser une ligne de commande pour générer les deux applications. Créons l'application frontend: symfony generate:app --escaping-strategy=on --csrf- secret=UniqueSecret frontend Remplacez UniqueSecret par une chaine de caractères secrète qui permettra de contrer nativement les attaques CSRF. Même chose pour l'application backend: symfony generate:app --escaping-strategy=on --csrf- secret=UniqueSecret backend Plusieurs nouveaux fichiers ont été créés dans le répertoire apps/: Code: config/ Les fichiers de configuration i18n/ Les fichiers de langue lib/ Les librairies et classes modules/ Les modules contenant le code de notre application templates/ Le layout principal Configuration Apache Maintenant que tous les fichiers de base sont créés, nous allons configurer notre serveur Apache afin d'accéder directement à notre application web. Nom de domaine Afin d'accéder facilement à notre projet, nous allons créer un domaine virtuel: dev.watchmydesk.com Comme vous n'êtes pas le possesseur de ce domaine, nous allons feinter et ajouter l'entrée du domaine dans nos DNS. Configuration de votre OS client Sous Windows: Modifiez le fichier C:/WINDOWS/system32/drivers/etc/hosts Puis ajoutez la ligne suivante: IP_DE_VOTRE_SERVEUR dev.watchmydesk.com Sous linux / Mac: Modifiez le fichier /etc/hosts Puis ajoutez la ligne suivante: IP_DE_VOTRE_SERVEUR dev.watchmydesk.com Sauvegardez le fichier et quittez tous vos navigateurs web ouverts. Configuration du serveur Modifiez le fichier /etc/hosts Puis ajoutez la ligne suivante: 127.0.0.1 dev.watchmydesk.com Création du vHost apache Créez un nouveau fichier virtual host pour apache2: nano /etc/apache2/sites- enabled/watchmydesk Puis copiez y ceci: Code: <VirtualHost *> ServerName dev.watchmydesk.com DocumentRoot "/home/djo/public/watchmydesk/web/" DirectoryIndex index.php <Directory "/home/djo/public/watchmydesk/web/"> AllowOverride All Allow from All </Directory> Alias /sf /usr/share/php/data/symfony/web/sf/ <Directory "/usr/share/php/data/symfony/web/sf/"> AllowOverride All Allow from All </Directory> </VirtualHost> Il faut bien sûr que vous adaptiez les chemins à votre environnement. Enregistrez, quittez (CTRL + X) et on reboot apache et on test ! /etc/init.d/apache2 restart Ca marche ! Erreurs fréquentes Si vous rencontrez des problèmes dans cette première partie du tutorial, jetez un coup d'oeil à ces erreurs fréquemment rencontrées: Les images et le style de la page ne s'affichent pas: Dans le cas où vous n'auriez pas les images, vérifiez de chemin de l'Alias /sf du vhost: /usr/share/php/data/symfony/web/sf/ Regardez si le chemin pointe bien vers le répertoire web/sf/ du framework Symfony, sinon corrigez manuellement. Dans certaines versions de debian, le chemin correct est celui-ci: /usr/share/php/symfony/data/web/sf Le nom de domaine n'est pas trouvé: Vérifiez d'avoir bien entré les lignes DNS dans vos fichiers hosts client et serveur. Quittez bien tous les navigateurs web (même fenêtre de download) puis relancé le. La base de données et le projet: Watch My Desk Dans cette deuxième partie, nous allons définir le projet Watch My Desk plus en détail, sa base de données ... Ensuite, nous verrons comment configurer correctement Symfony avec notre base de données et générer le schéma de la BDD à partir de nos tables MySQL précédemment créées. Plan du chapitre: Le projet Watch My Desk La base de données MySQL Générer le schéma de la BDD sous Symfony Le projet Watch My Desk Afin d'illustrer le tutorial, j'ai pensé à créer un site qui soit à la fois fun, pas complètement inutile et suffisamment complexe pour voir un peu tous les points spécifiques du framework Symfony. Mise en contexte Tout bon développeur, graphiste ou acteur du web a souvent du matériel informatique à la pointe de la technologie. (http://www.flickr.com/photos/crouchingdonkey/sets/72157594277366817/) En général votre espace de travail, à savoir votre bureau, est un lieu qui vous tient très à coeur et que vous tentez (certains au moins !) de garder ergonomique, propre et design comme lorsque vous développez ou designez. Watch My Desk Watch My Desk est un portail communautaire présentant les bureaux des acteurs du web. Chaque internaute aura la possibilité de mettre en ligne la description de son bureau, accompagné par une ou plusieurs photos mettant en évidence son matériel et son espace de travail. Chaque internaute aura la possibilité de consulter ces "fiches bureaux" et d'y poster un commentaire, de le noter etc. Sur la homepage, un classement des bureaux les plus populaires et plus récents sera affiché. (http://www.flickr.com/photos/karizon/sets/72157619259207115/) Ce projet est parti d'un passe temps personnel. En effet j'aime voir sur quoi travail telle ou telle personne derrière son écran. Et je pense ne pas être le seul ! Les modules et fonctionnalités - Frontend: Index: 5 Derniers bureaux uploads/Ingenierie_Lourd/ installation-de-symfony.pdf
Documents similaires
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 08, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.1869MB