Accueil - Symfony Tout afficher
Retirer le « app.php » de l’URL sous Symfony2
Dans un premier temps, on active le module « mod_rewrite » sous Apache. Pour cela, on ouvre le fichier « httpd.conf », et on décommente la ligne suivante :
#LoadModule rewrite_module modules/mod_rewrite.so
On crée un fichier “.htaccess” dans le répertoire « web » de Symfony :
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
# Explicitly disable rewriting for front controllers
RewriteRule ^app_dev.php - [L]
RewriteRule ^app.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
# Change below before deploying to production
RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>
Dans le « virtualhost », on passe l’option « AllowOverride » à « All » (elle est à « None » par défaut) :
Include "c:/wamp/alias/*"
<VirtualHost *:80>
ServerName mywebsite.dev
DocumentRoot C:\wamp\www\dossier_du_site\Symfony\web
<Directory C:\wamp\www\dossier_du_site\Symfony\web>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\wamp\www"
ServerName localhost
ServerAlias localhost
</VirtualHost>
Lire ...
Migrer des modifications avec Doctrine2 et Symfony2
Lorsque votre site Internet sous Symfony 2 est en ligne et que vous avez besoin d'apporter des modifications à des éléments du modèle de données (comme par exemple le type d’un champ, ajouter une valeur, modifier une table, …) en production, il existe une manière simple et sécurisé de le faire. On va pour cela utiliser le bundle « DoctrineMigrationsBundle ».
Au préalable, vous devrez installer le bundle préalablement cité. Celui-ci nous fournit deux commandes particulièrement utiles :
- php app/console doctrine:migrations:diff -> cette commande va générer un fichier « php » comprenant les différences entre la base de données et le modèle de données.
- php app/console doctrine:migrations:migrate -> les données seront migrées et le site en production à jour.
Remarque : dans le fichier généré, il est bien entendu possible d’ajouter ses propres requêtes SQL pour mettre à jour ce que l’on souhaite.
Lien utile :
http://symfony.com/doc/2.0/bundles/DoctrineMigrationsBundle/index.html
Lire ...Contrainte sur les fichiers dans un CallbackValidator (Symfony2)
Dans un formulaire, il y a un champ avec un nom « fileAttachment » et de type « file ». On souhaite mettre une contrainte dans un CallBackValidator, pour que la taille du fichier uploadé ne dépasse pas 7168 kiloOctets.
Mise en place de la contrainte :
$constraintStartDate = $attachmentForm->get("fileAttachment");
$validator = new FileValidator();
$data = $attachmentForm->getData();
$test = new File(array(
'maxSize' => '7168k',
'maxSizeMessage' => 'myMessage')
);
if(!$validator->isValid($constraintStartDate->getData(), $test))
{
$constraintStartDate->addError( new FormError( "This field is not valid (only alphanumeric characters separated by hyphens)" ) );
}
Lire ...
Enlever la protection CSFR d’un formulaire (Symfony2)
Le code qui suit permet de retirer la protection CSRF (Cross-Site Request Forgery) dans un formulaire Symfony 2.
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\TaskBundle\Entity\Task',
'csrf_protection' => false,
);
}
Ce code est à placer dans votre fichier "Form".
Attention : en faisant cela, vous risuqez d'introduire de la vulnérabilité dans votre formulaire.
Lire ...Utiliser Zend Framework dans Symfony2
1 - Télécharger ZF
2 - Copiez-collez le code source dans un dossier (nommé, par exemple, « ZF »). Placez ce dossier dans le dossier « Vendor » de Symfony
3 - Dans le fichier « autoload.php » (fonction « registerPrefixes »), ajoutez cette ligne :
Zend_' => __DIR__.'/../vendor/zend/library
4 - A la fin du fichier “autoload.php”, ajoutez ceci :
set_include_path(__DIR__.'/../vendor/ZF/library/'.PATH_SEPARATOR.get_include_path());
require_once __DIR__.'/../vendor/ZF/library/Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
5 - Utilisation d’une fonctionnalité de ZF dans un contrôleur Symfony2 :
\Zend_Search_Lucene_Analysis_Analyzer::setDefault(new \Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
Lire ...
SF2 : Affichage du nom des pays en entier
Lorsque l’on utilise le type de champ « Country» de Symfony2 et que l’on stocke en base de données les valeurs de ce derniers, on constate qu’il n’y a d’enregistré uniquement l’acronyme des pays (par exemple « FR » pour la France). Mais alors, comment retrouver le nom du pays en entier ?
Admettons que nous souhaitions l’appeler dans un contrôleur. Dans l’en-tête du fichier, écrivez la ligne suivante :
use Symfony\Component\Locale\Locale;
Ensuite, on récupère le tableau des pays grâce à la ligne suivante :
$country = Locale::getDisplayCountries(\Locale::getDefault());
return $country[“FR”];
Le retour affichera le texte “France”.
Lire ...Rechercher
Tags
Articles récents
- Quel est le but de l'attribut "role" en HTML ?
- Changer la couleur de l'espace réservé (placeholder)
- Attention à cet email d’arnaque !
- Supprimer un fichier d'un référentiel Git sans le supprimer du système de fichiers local
- JS - Récupérer le dernier élément d'un tableau
- JS - Prévisualiser une image avec son upload
- PHP - Convertir une chaîne de caractères en un booléen
- PHP : Vérifier si une session a déjà été démarrée
- Créer un APK ou un AAB en ligne de commandes
- L'opérateur !! en Javascript