Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:demarrer_un_projet_web_avec_symfony [Le 23/09/2009, 18:59]
maxs88
tutoriel:demarrer_un_projet_web_avec_symfony [Le 11/09/2022, 12:23] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>​tutoriel ​Symfony ​programmation ​php mysql phpmyadmin apache ​BROUILLON}}+{{tag>​tutoriel ​vetuste ​programmation mysql phpmyadmin apache}} 
 + 
 +---- 
 +<note important>​Cette documentation est obsolète et contient des manipulations inutiles est risquées (modifications du fichier apache2.conf notamment).</​note>​
 ====== Démarrer un projet Web avec Symfony ====== ====== Démarrer un projet Web avec Symfony ======
 +<note important>​Avoir une la mis à jour PHP  ou au moins 7.2 v</​note>​
  
-Pour la première partie de ce tutoriel, c'est mon expérience de la mise en oeuvre ​du guide d'​installation de la page [[http://​doc.kubuntu-fr.org/​symfony|Symfony]] du présent site Web et de quelques autres trouvailles. Pour la seconde partie, ​ c'est mon expérience sous Kubuntu 9.04 de la mise en oeuvre ​du tutoriel de Symfony "​Jobeet"​ que l'on retrouve à l'​adresse Web : [[http://​www.symfony-project.org/​jobeet/​1_2/​Propel /fr/01 | Practical symfony Jour 1: Démarrage du projet]], de Fabien Potencier. ​+Pour la première partie de ce tutoriel, c'est mon expérience de la mise en œuvre ​du guide d'​installation de la page [[:​symfony|Symfony]] du présent site Web et de quelques autres trouvailles. Pour la seconde partie, ​ c'est mon expérience sous Kubuntu 9.04 de la mise en œuvre ​du tutoriel de Symfony "​Jobeet"​ que l'on retrouve à l'​adresse Web : [[http://​www.symfony-project.org/​jobeet/​1_2/​Propel /fr/01 | Practical symfony Jour 1: Démarrage du projet]], de Fabien Potencier. ​
  
-J'​aurais bien aimé trouver l'​équivalant ​du présent tutoriel (en français pour l'​installation et la production d'un premier site Web avec Symphony) lors de mes premières recherches de "​framework"​ il y à quatre mois, ou à mes débuts avec Symfony, il y a une semaine ! Je suis nouveau en ce domaine, vous le comprendrez ! Avec Apache, MySQL, PHP, framework MVC et compagnie, ça fait de gros morceau ​à avaler pour moi, mais pas pour ce qui touche à la programmation objet et en html !+J'​aurais bien aimé trouver l’équivalent ​du présent tutoriel (en français pour l'​installation et la production d'un premier site Web avec Symfony) lors de mes premières recherches de "​framework"​ il y à quatre mois, ou à mes débuts avec Symfony, il y a une semaine ! Je suis nouveau en ce domaine, vous le comprendrez ! Avec Apache, MySQL, PHP, framework MVC et compagnie, ça fait de gros morceaux ​à avaler pour moi, mais pas pour ce qui touche à la programmation-objet et en html !
  
 Comme je souhaitais produire un modèle générique de base pour mes propres besoins éventuels, j'ai adapté les exemples du tutoriel pour un projet générique que je nomme Projet01. Cela m'a poussé à toujours bien comprendre les étapes, procédures et commandes, pour que le tout soit cohérent et bien sûr fonctionnel pour mes futurs projets. Je ne suis pas certain d'​avoir tout bien réussi, mais pour moi cela est suffisamment potable pour être mise en ligne. Cette expérience sera probablement utile à d'​autres. C'est ce que je souhaite ! Comme je souhaitais produire un modèle générique de base pour mes propres besoins éventuels, j'ai adapté les exemples du tutoriel pour un projet générique que je nomme Projet01. Cela m'a poussé à toujours bien comprendre les étapes, procédures et commandes, pour que le tout soit cohérent et bien sûr fonctionnel pour mes futurs projets. Je ne suis pas certain d'​avoir tout bien réussi, mais pour moi cela est suffisamment potable pour être mise en ligne. Cette expérience sera probablement utile à d'​autres. C'est ce que je souhaite !
  
 Bon concert ! Bon concert !
 +
  
 ===== Introduction ===== ===== Introduction =====
Ligne 22: Ligne 27:
 ==== Installer un serveur Apache ==== ==== Installer un serveur Apache ====
  
-Installer les paquets pour le serveur Apache avec la commande suivante dans un terminal ​: +[[:tutoriel:​comment_installer_un_paquet|Installez]] [[apt://apache2,apache2-doc| Apache et sa documentation]].
- +
-  sudo aptitude install ​apache2 apache2-doc +
- +
-Si un mot de passe est demandé, entrer votre mot de passe d'​utilisateur.+
  
 Vérification du fonctionnement d'​Apache en ouvrant votre navigateur internet à l'​adresse Web suivante : Vérification du fonctionnement d'​Apache en ouvrant votre navigateur internet à l'​adresse Web suivante :
Ligne 44: Ligne 45:
 ==== Installer MySQL ==== ==== Installer MySQL ====
  
-Installation des paquets pour le serveur de base de données MySQL avec la commande suivante dans un terminal : +[[:​tutoriel:​comment_installer_un_paquet|Installez]] [[apt://​mysql-server|le serveur de base de données MySQL]].
- +
-  sudo aptitude install mysql-server+
  
 À la fin de l'​installation,​ une fenêtre vous demande de choisir le mot de passe pour l'​utilisateur root de MySQL. À la fin de l'​installation,​ une fenêtre vous demande de choisir le mot de passe pour l'​utilisateur root de MySQL.
Ligne 54: Ligne 53:
 Enregistrer ce nouveau mot de passe pour ce nouveau compte "MySQL Root" pour le retrouver au besoin. Enregistrer ce nouveau mot de passe pour ce nouveau compte "MySQL Root" pour le retrouver au besoin.
  
-Si cela n'est pas déjà dans votre habitude, je vous recommande d'enregistre ​tous vos mots de passe dans un fichier Writer d'​OpenOffice et d'​enregistrer ce fichier avec un mot de passe. Pour se faire, dans OpenOffice, menu Fichier -> Enregistrer sous..., cocher la boîte "​Enregistrer avec mot de passe"​.+Si cela n'est pas déjà dans votre habitude, je vous recommande d'enregistrer ​tous vos mots de passe dans un fichier Writer d'​OpenOffice et d'​enregistrer ce fichier avec un mot de passe. Pour se faire, dans OpenOffice, menu Fichier -> Enregistrer sous..., cocher la boîte "​Enregistrer avec mot de passe"​.
  
 Par exemple, pour le mot de passe de "MySQL Root", j'ai les lignes suivantes dans mon fichier Par exemple, pour le mot de passe de "MySQL Root", j'ai les lignes suivantes dans mon fichier
Ligne 64: Ligne 63:
 ==== Installer PHP ==== ==== Installer PHP ====
  
-Installation des paquets pour la programmation en PHP5 : +[[:tutoriel:​comment_installer_un_paquet|Installez]] [[apt://php5,libapache2-mod-php5,php5-mysql|divers paquets pour la programmation en PHP5]].
- +
-  sudo aptitude install ​php5 libapache2-mod-php5 php5-mysql+
  
 Éditer le fichier apache2.conf pour y ajouter le nom (adresse) du serveur : Éditer le fichier apache2.conf pour y ajouter le nom (adresse) du serveur :
Ligne 199: Ligne 196:
 ATTENTION : Pendant l'​installation de PhpMyAdmin, il vous sera demandé de choisir le serveur Web à configurer. Choisissez avec les touches Flèche vers le haut et Flèche vers le bas la ligne "​apache2"​ et appuyant sur la barre d'​espacement la sélectionné cette entrée. ATTENTION : Pendant l'​installation de PhpMyAdmin, il vous sera demandé de choisir le serveur Web à configurer. Choisissez avec les touches Flèche vers le haut et Flèche vers le bas la ligne "​apache2"​ et appuyant sur la barre d'​espacement la sélectionné cette entrée.
  
-Installez ​le paquet PhpMyAdmin : +[[:​tutoriel:​comment_installer_un_paquet|Installez]] [[apt://​PhpMyAdmin|PhpMyAdmin]].
- +
-  sudo aptitude install phpmyadmin+
  
 Pour vérifier le bon fonctionnement de PhpMyAdmin, rendez-vous à l'URL : Pour vérifier le bon fonctionnement de PhpMyAdmin, rendez-vous à l'URL :
  
   http://​localhost/​phpmyadmin/​   http://​localhost/​phpmyadmin/​
 +  ​
 +si vous tombez sur une page (not found), Tapez la command
 +
 +  sudo kate /​etc/​apache2/​apache2.conf ​
 +
 +et ajoutez à la fin un nouveau ligne
 + 
 +  Include /​etc/​phpmyadmin/​apache.conf
 + 
  
 Vous arriverez alors sur la page d'​authentification de PhpMyAdmin. Entrez alors votre non de compte qui est Vous arriverez alors sur la page d'​authentification de PhpMyAdmin. Entrez alors votre non de compte qui est
Ligne 215: Ligne 219:
 Remarque : si votre compte est dupont ne pas mettre dupont comme utilisateur,​ mais "​root"​ puis le mot de passe sinon vous risquez d'​avoir l'​erreur #1045 - Access denied for user '​root'​@'​localhost'​ en tentant d'​accéder à vos bases de données. Remarque : si votre compte est dupont ne pas mettre dupont comme utilisateur,​ mais "​root"​ puis le mot de passe sinon vous risquez d'​avoir l'​erreur #1045 - Access denied for user '​root'​@'​localhost'​ en tentant d'​accéder à vos bases de données.
  
-Si tout s'est bien passé, vous devriez être connecté à PhpMyAdmin et pouvoir créer et gérer vos bases de données. +Si tout s'est bien passé, vous devriez être connecté à PhpMyAdmin et pouvoir créer et gérer vos bases de données. 
 +- Si vous arrivez pas à vous connecter à PhpMyAdmin il faut créer un lien symbolique vers MyPhpAdmin, il faut juste faire la commande suivante: " sudo ln -s /​usr/​share/​phpmyadmin /​var/​www/​phpmyadmin "
 Il existe déjà deux bases de données, n'y touchez pas. Elles servent au bon fonctionnement de MySQL. Il existe déjà deux bases de données, n'y touchez pas. Elles servent au bon fonctionnement de MySQL.
  
Ligne 256: Ligne 260:
 ==== Installer Symfony ==== ==== Installer Symfony ====
  
-Installation ​des paquets et dépendances pour le cadre de travail "​framework"​ Symfony+[[:​tutoriel:​comment_installer_un_paquet|Installez]] [[apt://​php5-symfony,​php-pear,​php5-cli php5-xsl|des paquets et dépendances pour le cadre de travail "​framework"​ Symfony]].
  
-Pour le PHP, dans un terminal, entrer la commande : +Pour configurer Symfony avec PEAR, entrer les commandes :​
- +
-  sudo aptitude install php5-symfony php-pear php5-cli php5-xsl +
- +
-pour installer et configurer Symfony avec PEAR, entrer les commandes :​+
  
   sudo pear channel-discover pear.symfony-project.com   sudo pear channel-discover pear.symfony-project.com
Ligne 268: Ligne 268:
   sudo pear install symfony/​symfony   sudo pear install symfony/​symfony
  
-Si tout sest bien passé, vous aurez le message suivant :+Si tout s'est bien passé, vous aurez le message suivant :
  
-  install ok: channel://​pear.symfony-project.com/​symfony-1.2.8+  install ok: channel://​pear.symfony-project.com/​symfony-1.x.
 +   
 +Tapez cette comand dans le terminal : 
 + 
 +  sudo pear install --alldeps http://​phing.info/​pear/​phing-current.tgz ​
  
 Nous avons un premier niveau d'aide pour Symfony avec la commande suivante : Nous avons un premier niveau d'aide pour Symfony avec la commande suivante :
Ligne 283: Ligne 287:
  
 ===== Installer un nouveau projet ===== ===== Installer un nouveau projet =====
- 
  
 ==== Préambule ==== ==== Préambule ====
  
 Pour notre exemple, nous créons le projet "​projet01",​ dans le dossier "​projet01"​ de votre dossier utilisateur principal (/​home/​votre_nom_d'​utilisateur/​projet01). Pour notre exemple, nous créons le projet "​projet01",​ dans le dossier "​projet01"​ de votre dossier utilisateur principal (/​home/​votre_nom_d'​utilisateur/​projet01).
 +
 +  sudo mkdir /​home/​votre_nom_d'​utilisateur/​projet01
  
 Chez moi, cela pourrait donner comme chemin de dossier ce qui suit : Chez moi, cela pourrait donner comme chemin de dossier ce qui suit :
Ligne 293: Ligne 298:
   /​home/​rene/​projet01   /​home/​rene/​projet01
  
-Créer dès maintenant le dossier du projet01 avec la commande suivante dans un terminal : 
- 
-  mkdir projet01 
  
 Si vous procédez différemment,​ vous prendrez soin d'​adapter tout ce qui suit avec votre propre chemin de dossier. Si vous procédez différemment,​ vous prendrez soin d'​adapter tout ce qui suit avec votre propre chemin de dossier.
Ligne 315: Ligne 317:
 === Création du serveur virtuel === === Création du serveur virtuel ===
  
-Créez un nouveau fichier "​projet01"​ pour le serveur virtuel Apache avec la commende ​suivante dans un terminal :+Créez un nouveau fichier "​projet01"​ pour le serveur virtuel Apache avec la commande ​suivante dans un terminal :
  
   sudo kate /​etc/​apache2/​sites-available/​projet01   sudo kate /​etc/​apache2/​sites-available/​projet01
Ligne 338: Ligne 340:
 </​VirtualHost>​ </​VirtualHost>​
 </​code>​ </​code>​
 + 
 Activons ce nouveau domaine avec la commande suivante dans un terminal : Activons ce nouveau domaine avec la commande suivante dans un terminal :
  
   sudo a2ensite projet01   sudo a2ensite projet01
 +   
 +  ​
 Pour que ces changements soient pris en compte, il faut relancer le serveur Apache avec la commande suivante : Pour que ces changements soient pris en compte, il faut relancer le serveur Apache avec la commande suivante :
  
Ligne 359: Ligne 362:
 Créons maintenant le canevas de base avec Symfony avec la commande suivante dans le terminal : Créons maintenant le canevas de base avec Symfony avec la commande suivante dans le terminal :
  
-  symfony generate:​project projet01+  ​sudo symfony generate:​project projet01 ​--orm=Propel 
 +  
 +Si vous avez un message d'​avertissement pensez à avoir les droits (sudo) car symfony ne dit toujours qu'il faut avoir les permissions
  
 Cette commande génère la structure par défaut des répertoires et crée les fichiers nécessaires d'un projet symfony. Cette commande génère la structure par défaut des répertoires et crée les fichiers nécessaires d'un projet symfony.
Ligne 378: Ligne 383:
  
 === Création d'​application === === Création d'​application ===
 +
 +D’abord assurez vous que vous situés sous le répertoire projet symfone, dans notre cas projet01 :
 +
 +  cd /​home/​nomVotrePC/​projet01
  
 Créons l'​application frontend en exécutant la commande suivante : Créons l'​application frontend en exécutant la commande suivante :
-  symfony generate:​app --escaping-strategy=on --csrf-secret=Unique$ecret frontend+  ​sudo symfony generate:​app --escaping-strategy=on --csrf-secret=Unique$ecret frontend
  
 Cette commande crée la structure par défaut des répertoires de l'​application dans le dossier apps/​frontend. Cette commande crée la structure par défaut des répertoires de l'​application dans le dossier apps/​frontend.
Ligne 482: Ligne 491:
 Pour indiquer à Symfony la base de données que nous utilisons pour le projet, entrons la commande suivante <B>en prenant soin de modifier la commande. Si votre nom d'​utilisateur MySQLAdmin est "​1111"​ et que votre mot de passe MySQLAdmin est "​22222222"</​B>​ la commande sera : Pour indiquer à Symfony la base de données que nous utilisons pour le projet, entrons la commande suivante <B>en prenant soin de modifier la commande. Si votre nom d'​utilisateur MySQLAdmin est "​1111"​ et que votre mot de passe MySQLAdmin est "​22222222"</​B>​ la commande sera :
  
-  symfony configure:​database "​mysql:​host=localhost;​dbname=projet01"​ 1111 22222222+  ​sudo symfony configure:​database "​mysql:​host=localhost;​dbname=projet01"​ 1111 22222222
  
 Avec la description de la base de données dans le fichier schema.yml, nous pouvons utiliser les tâches intégrées de l'ORM pour générer les déclarations SQL nécessaires pour créer des tables : Avec la description de la base de données dans le fichier schema.yml, nous pouvons utiliser les tâches intégrées de l'ORM pour générer les déclarations SQL nécessaires pour créer des tables :
Ligne 961: Ligne 970:
 </​code>​ </​code>​
  
-Dans ce code, la boucle foreach parcourt la liste d'​objets job ($projet01_job_list) et, pour chaque job, chaque colonne est affichée. ​+Dans ce code, la boucle foreach parcourt la liste d'​objets job ($projet01_job_list) et, pour chaque job, chaque colonne est affichée.
  
 Souvenez-vous,​ pour accéder à la valeur d'une colonne (propriété),​ il suffit simplement de faire appel à un accesseur. Comme d'​habitude,​ le nom de ces accesseurs suit une convention établit par Symfony : chaque accesseur commence par le préfixe get suivit du nom de la colonne (propriété) en camelCased (par exemple, la méthode getCreatedAt() permet d'​accéder à la valeur de la colonne created_at de l'​objet). Souvenez-vous,​ pour accéder à la valeur d'une colonne (propriété),​ il suffit simplement de faire appel à un accesseur. Comme d'​habitude,​ le nom de ces accesseurs suit une convention établit par Symfony : chaque accesseur commence par le préfixe get suivit du nom de la colonne (propriété) en camelCased (par exemple, la méthode getCreatedAt() permet d'​accéder à la valeur de la colonne created_at de l'​objet).
Ligne 992: Ligne 1001:
 === Le template de la page d'un job === === Le template de la page d'un job ===
  
-Personnalisons maintenant le template de la page d'un job. Ouvrez le fichier showSuccess.php avec la commande ​+Personnalisons maintenant le template de la page d'un job. Ouvrez le fichier showSuccess.php avec la commande
  
   kate apps/​frontend/​modules/​job/​templates/​showSuccess.php   kate apps/​frontend/​modules/​job/​templates/​showSuccess.php
Ligne 1125: Ligne 1134:
 La description d'un job utilise le helper simple_format_text() afin de formater le texte en HTML, en remplaçant notamment les retours chariots par des balises <br />. Comme ce helper fait parti du groupe Text et que celui-ci n'est pas chargé par défaut, nous le chargeons manuellement en utilisant le helper use_helper(). La description d'un job utilise le helper simple_format_text() afin de formater le texte en HTML, en remplaçant notamment les retours chariots par des balises <br />. Comme ce helper fait parti du groupe Text et que celui-ci n'est pas chargé par défaut, nous le chargeons manuellement en utilisant le helper use_helper().
  
-==== Les Slots ==== 
- 
-Actuellement,​ le titre de toutes les pages est défini dans la balise <​title>​ du layout, mais pour un job, nous aimerions avoir des informations plus utiles telles que le nom de la société et le type d'​emploi. 
- 
-Avec Symfony, quand une zone du layout dépend du template à afficher, vous devez utiliser un slot. 
- 
-Ajoutez un slot au layout afin de rendre le titre dynamique. Ouvrez le fichier avec la commande : 
- 
-  kate apps/​frontend/​templates/​layout.php 
- 
-Remplacez la ligne qui commence par : 
- 
-  <​title>​... 
- 
-Par la ligne : 
- 
-  <​title><?​php include_slot('​title'​) ?></​title>​ 
- 
-Chaque slot est identifié par un nom (ici title) et peut être affiché en utilisant le helper include_slot(). Maintenant, au début du template showSuccess.php,​ utilisez le helper slot() afin de définir le contenu du slot pour la page d'un job. Ouvrez le fichier avec la commende : 
- 
-  kate apps/​frontend/​modules/​job/​templates/​showSuccess.php 
- 
-Ajoutez au début du fichier, la ligne : 
- 
-  <?php slot('​title',​ sprintf('​%s is looking for a %s', $job->​getCompany(),​ $job->​getPosition())) ?> 
- 
-Si le titre est complexe à définir, le helper slot() peut aussi être utilisé dans un block de code : 
- 
-<​code>​ 
-// apps/​frontend/​modules/​job/​templates/​showSuccess.php 
-<?php slot('​title'​) ?> 
-  <?php echo sprintf('​%s is looking for a %s', $job->​getCompany(),​ $job->​getPosition()) ?> 
-<?php end_slot(); ?> 
-</​code>​ 
- 
-Pour certaines pages, comme la page d'​accueil,​ nous avons juste besoin d'un titre générique. Plutôt que de répéter le même titre encore et encore dans chaque template, nous pouvons définir un titre par défaut dans le layout. Ouvrez le layout avec la commande : 
- 
-  kate apps/​frontend/​templates/​layout.php 
- 
-Remplacez la ligne qui commence par : 
- 
-  <​title>​... 
- 
-Par la ligne : 
- 
-<​code>​ 
-    <​title>​ 
-      <?php if (!include_slot('​title'​)):​ ?> 
-        Projet01 - Your best job board 
-      <?php endif; ?> 
-    </​title>​ 
-</​code>​ 
- 
-Le helper include_slot() renvoie true si le slot a été défini. Ainsi, si vous spécifiez une valeur pour le slot title depuis un template, c'est cette valeur qui sera utilisée comme titre, sinon, ce sera le titre par défaut spécifié dans le layout. 
- 
-Nous avons déjà vu quelques helpers commençant par include_. Ces helpers renvoient du code HTML et dans la plupart des cas ont un helper get_ permettant de renvoyer uniquement le contenu : 
- 
-  <?php include_slot('​title'​) ?> 
-  <?php echo get_slot('​title'​) ?> 
-  ​ 
-  <?php include_stylesheets() ?> 
-  <?php echo get_stylesheets() ?> 
- 
-La page d'un job est générée grâce à l'​action show définie par la méthode executeShow() du module job : 
- 
-<​code>​ 
-class jobActions extends sfActions 
-{ 
-  public function executeShow(sfWebRequest $request) 
-  { 
-  $this->​job = Projet01JobPeer::​retrieveByPk($request->​getParameter('​id'​));​ 
-    $this->​forward404Unless($this->​job);​ 
-  } 
-  
-  // ... 
-} 
-</​code>​ 
- 
-Comme dans l'​action index, la classe Projet01JobPeer est utilisée pour récupérer un job, cette fois en utilisant la méthode retrieveByPk(). Le paramètre de cette méthode est un identifiant unique d'un job, sa clé primaire. La section suivante explique pourquoi et comment la requête $request->​getParameter('​id'​) renvoie la clé primaire d'un job. 
- 
-Le modèle de classe généré par Symfony contient un grand nombre de méthodes utiles pour interagir avec les objets du projet. Prenez un peu de temps pour parcourir le code situé dans le dossier lib/om/ et découvrir toute la puissance embarqué dans ces classes. 
- 
-Si le job n'​existe pas dans la BDD, nous voudrions renvoyer l'​utilisateur vers une page 404, ce qui est exactement ce que fait la méthode forward404Unless(). Elle prend en premier paramètre un Booléen et, à moins que ce paramètre ne soit vrai, arrête l'​exécution normale. Cette méthode génère une exception sfError404Exception et vous n'avez donc pas besoin de rajouter de return après cette méthode. 
  
 ===== Liens utiles ===== ===== Liens utiles =====
  
-[[http://​trac.symfony-project.org/​wiki/​Resources/​fr_FR|Symfony - Ressources symfony en français]] +  * [[http://​trac.symfony-project.org/​wiki/​Resources/​fr_FR|Symfony - Ressources symfony en français]] 
- +  ​* ​[[http://​www.sensiolabs.com/​blog/​|Symfony - Le blog]]
-[[http://​doc.kubuntu-fr.org/​symfony|Kubuntu-fr.org - Symfony]] +
- +
-[[http://​www.sensiolabs.com/​blog/​|Symfony - Le blog]]+
  
 ==== Les tutoriels ==== ==== Les tutoriels ====
  
-[[http://​www.symfony-project.org/​jobeet/​1_2/​Propel/​fr/​01|Symfony-project.org - Le projet Jobeet]]+  * [[http://​www.symfony-project.org/​jobeet/​1_2/​Propel/​fr/​01|Symfony-project.org - Le projet Jobeet]] 
 +  * [[http://​www.symfony-project.org/​cookbook/​1_2/​fr/​|Symfony-project.org - Symfony le Cookbook]] 
 +  * [[http://​www.symfony-project.org/​forms/​1_2/​fr/​ | Symfony-project.org - Symfony le Forms en Action]] 
 +  * [[http://​www.lafermeduweb.net/​tutorial/​demarrer-un-projet-avec-symfony-p27.html|La Ferme du Web - Démarrer un projet avec Symfony]] 
 +  * [[http://​www.glagla.org/​weblog/​2008/​06/​19/​configuration-svn-pour-un-projet-symfony/​|Glagla Dot Org - 
 +Configuration SVN pour un projet Symfony]] 
 +  * [[https://​c-maneu.developpez.com/​tutorial/​web/​php/​symfony/​intro/​|Developpez.com - Commencer à développer avec le framework symfony]] 
 +  * [[http://​prendreuncafe.com/​blog/​post/​2006/​06/​20/​473-installer-le-framework-php-symfony-sur-ubuntu-dapper-drake|prendreuncafe.com - Installer le framework PHP Symfony sur Ubuntu Dapper Drake]]
  
-[[http://​www.symfony-project.org/​cookbook/​1_2/​fr/​|Symfony-project.org - Symfony le Cookbook]]+===== Autres pages en lien avec les sujets =====
  
-[[http://​www.symfony-project.org/​forms/​1_2/​fr/​ | Symfony-project.org - Symfony le Forms en Action]]+{{topic>​programmation mysql php MVC apache}}
  
-[[http://​www.lafermeduweb.net/​tutorial/​demarrer-un-projet-avec-symfony-p27.html|La Ferme du Web - Démarrer un projet avec Symfony]]+----
  
-[[http://​www.glagla.org/​weblog/​2008/​06/​19/​configuration-svn-pour-un-projet-symfony/​|Glagla Dot Org -  +//​Contributeur(e)s : [[utilisateurs:lami|L'ami René]] (L'​auteur),​ [[utilisateurs:​YoBoY]].//​
-Configuration SVN pour un projet Symfony]]+
  
-[[http://​c-maneu.developpez.com/​tutorial/​web/​php/​symfony/​intro/​|Developpez.com - Commencer à développer avec le framework symfony]] 
- 
-[[http://​prendreuncafe.com/​blog/​post/​2006/​06/​20/​473-installer-le-framework-php-symfony-sur-ubuntu-dapper-drake|prendreuncafe.com - Installer le framework PHP Symfony sur Ubuntu Dapper Drake]] 
- 
----- 
-//Auteur : [[:​utilisateurs:​lami|L'​ami René]]. Contributeur : // 
  • tutoriel/demarrer_un_projet_web_avec_symfony.1253725195.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)