symfony

symfony 1.4 : Fatal error: Class ‘sfGuardUserFormFilter’ not found

Depuis plusieurs années, j’utilise le Framework symfony pour le développement de site Web. Il permet de développer des applications Web robuste rapidement. Après avoir essayer la version 1.4 et tenter d’installer le plugin sfDoctrineGuardPlugin, j’ai eu cette erreur :

“Fatal error : Class ‘sfGuardUserFormFilter’ not found…”

Voici donc la solution pour faire fonctionner correctement le plugin. Exécutez les 2 commandes suivantes :

  1. symfony cc
  2. symfony doctrine:build –all-classes

Après ça, tout devrait fonctionner!

Standard
symfony

Problème d’accents avec Symfony (i18n)

Pour ceux qui conçoivent des applications ou des sites bilingues avec Symfony, vous avez peut-être déjà rencontré un problème lors de l’affichage de caractères accentués pour les mots français. J’ai été confronté à ce problème il y a longtemps et voici le résultat de mes recherches sur le Web. Pour l’explication, c’est une application qui au départ s’affiche en français et par la suite en anglais et qui utilise la version 1.1 de Symfony.

Dans un premier temps, il faut vous s’assurer que le i18n est activé dans votre fichier monapp/config/settings.yml :

all:
.settings:
i18n: on

Vous devriez avoir dans votre template quelque part une ligne qui ressemble à cela :

Ensuite dans votre fichier monapp/i18n/en/messages.xml vous devriez avoir ceci :


Déconnexion
En fait, si vous inscrivez seulement « Déconnexion » tel qu’écrit dans votre template, vous allez avoir une erreur dans votre yml étant donné que le XML ne semble pas apprécié le caractère « & ». Il faut donc mettre é
qui représente le code pour le caractère « é » et tout fonction bien.

Après ça, tous vos caractères devraient s’afficher correctement.
C’est la même chose si vous créez un plugin. Vous pouvez écrire des accents dans votre fichier /plugins/monplugin/modules/monmodule/config/generator.yml :

edit:
title: Paramètres du site

Il suffit par la suite d’ajuster le fichier /plugins/monplugin/i18n/en/messages.xml comme mentionné précédemment.

N’oubliez pas qu’à chaque fois que vous modifier votre fichier en.yml, vous devez vider la cache de votre projet :
symfony cc

Pour ceux qui développent des applications bilingues, assurez-vous d’aller voir le plugin sfLanguageSwitchPlugin qui fonctionne très bien.
original=”messages” date=”2008-12-19T12:00:00Z”
product-name=”messages”>

Standard
Mac Os X, symfony

Installation et configuration de Symfony sous Mac Os X

Il y a quelques temps j’ai fais l’acquisition d’un nouveau MacBook Pro. Comme c’est ma première expérience avec un Mac, j’ai dû faire quelques recherches sur le Web afin que je puisse continuer à développer les sites que j’avais crées avec Symfony sous Windows. Pour ma part, j’avais opté d’installer Symfony en utilisant la méthode avec Subversion. Mon objectif était donc, d’utiliser la même méthode d’installation mais, cette fois-ci, sur Mac.

Note : Dans cet exemple, je fais référence à l’installation de la version 1.1 de Symfony. Toutefois, c’est la même procédure pour installer une autre version, i.e. la version 1.2 ou encore la 1.0. Il vous faudra juste changer l’url pour la source des fichiers.

Voici donc les différentes étapes à faire :
1. Télécharger et installer Subversion pour Mac.
http://www.apple.com/downloads/macosx/development_tools/bitnamisubversionstack.html

2. Télécharger et installer MAMP. L’installation se fait toute seule et ce n’est vraiment pas compliqué!
Une fois l’installation terminée, lancé MAMP. Par défaut, MAMP utilise des ports spécials. Vous pouvez toujours les changer en cliquant sur le bouton « Préférences… ».

3. Cette étape est facultative. Étant donné que les scripts d’un projet Symfony peuvent prendre beaucoup de mémoire, il est préférable d’augmenter la limite de mémoire par défaut dans le php.ini que vous trouverez dans le dossier /Applications/MAMP/conf/php5/php.ini. Poru ma part, j’ai changé la valeur pour mettre : memory_limit = 32M.

4. Maintenant, il faut importer les fichiers de Symfony via un client SVN. Dans mon cas j’ai utilisé Versions. J’ai déposé les fichier dans le répertoire /Users/[nomutilisateur]/symfony/symfony11.

5. Dans mon cas, j’ai voulu avoir une url différente pour chacun de mes projets Symofny, par exemple : http://monprojet1.localhost:8888/monapp_dev.php. Pour ce faire, il faut ajouter dans le fichier httpd.conf qui se trouve dans le dossier /Applications/MAMP/conf/apache/httpd.conf, le bloc de ligne qui suit. Notez qu’il doit y avoir un bloc pour chacun des projets.


ServerName MonSiteSymfony.localhost
DocumentRoot "/Applications/MAMP/htdocs/MonSiteSymfony/web"
DirectoryIndex index.php
Alias /sf /Users/David/symfony/symfony11/data/web/sf

AllowOverride All
Allow from All


AllowOverride All
Allow from All



6. Une fois que tout ça est fait, il faut ajuster le contenu du fichier hosts. Vous pouvez y accéder en ouvrant un Terminal et en utilisant la commande suivante :
nano /etc/hosts
À la fin du fichier, il faut ajouter une pour chacun des projets crées à l’étage précédente.
127.0.0.1 : monprojet1.localhost
Note : Vous pouvez également utiliser VirtualHostX qui se chargera de faire cette tache pour vous.

7. Pour terminer, assurer d’arrêter et de redémarrer votre serveur MAMP afin que les changements effectués soient appliqués.

Vous pouvez maintenant accéder à votre projet Symfony en utilisant l’url http://monprojet1.localhost:8888/monapp_dev.php. Si vous avez changé les ports par défaut dans MAMP, il vous suffit de changer le 8888 dans l’url par celui que vous avez choisi.

Standard
symfony

Configurer Symfony 1.1 chez un hébergeur Web (shared host)

Après avoir développé des projets avec Symfony 1.1 en local sur mon ordinateur, j’ai voulu tester et mettre en ligne mes différents projets. J’ai rapidement rencontré des problèmes lors de l’installation chez mon hébergeur. Heureusement, je n’ai pas eu à demander de l’aide à mon hébergeur car l’installation d’un projet avec Symfony c’est avérée beaucoup plus simple que je ne l’aurais pensé. Au départ, je pensais qu’en envoyant tous les fichiers de mon projet après exécuté un freeze sur mon projet, que tout fonctionnerait correctement mais, ce n’est pas le cas. J’avais essayé avec la sandbox sans rien y changer et tout semblait fonctionner correctement sur mon site en ligne. Après quelques recherches et tests, j’ai réussi à mettre en ligne mon site.

Voici donc les points à vérifier pour que votre projet fonctionne correctement chez votre hébergeur.

Note : Je n’ai pas fait de test chez d’autres hébergeurs web mais, je suppose que cette technique peut s’appliquer à d’autres hébergeurs. Il faudrait peut-être seulement mettre les fichiers dans les répertoires qui correspondent à votre hébergeur. Les noms des répertoires peuvent variés.

  • La première chose que vous devez faire est d’exécuter la tâche freeze sur votre projet

symfony project:freeze symfony_data_dir

  • Créé maintenant un répertoire /symfony/mon_domaine à la racine du serveur (i.e. à l’endroit où vous arrivez lorsque vous vous connecté via FTP)

  • Copier tous les répertoires et fichiers de votre projet à l’exception du contenu du répertoire web dans le répertoire /symfony/mon_domaine que vous venez de créer.

  • Copier maintenant le contenu du répertoire web dans le répertoire /public_html/mon_domaine.

  • Il faut maintenant apporter une petite modification au fichier index.php qui se trouve dans le répertoire /public_html/mon_domaine. Le répertoire “public_html” peut avoir un autre nom selon votre hébergeur. Changer la ligne du require_once qui se trouve dans le haut du fichier par celle-ci

require_once(dirname(__FILE__).’/../../symfony/mon_domaine/config/ProjectConfiguration.class.php’);

Et voilà, il n’y a rien d’autre à faire, c’est pas plus compliqué que ça!

N’oubliez pas d’exécuter la tâche symfony project:unfreeze pour continuer le développement de votre projet.

Vous pouvez également trouver plus d’informations dans la section Customizing the File Structure du livre en ligne The Definitive Guide to symfony.

Standard