Accueil - Symfony Tout afficher

Retirer le « app.php » de l’URL sous Symfony2

Wakonda - Symfony Posté le 1 janvier 2016

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

Wakonda - Symfony Posté le 1 janvier 2016

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)

Wakonda - Symfony Posté le 1 janvier 2016

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)

Wakonda - Symfony Posté le 1 janvier 2016

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 ...

Correspondance variables HTTP PHP <-> Symfony 2

Wakonda - Symfony Posté le 1 janvier 2016

  • request => $_POST;
  • query => $_GET ($request->query->get('name'));
  • cookies => $_COOKIE
  • files => $_FILE;
  • server => $_SERVER;
  • headers => $_SERVER ($request->headers->get('Content-Type')).
Lire ...

Utiliser Zend Framework dans Symfony2

Wakonda - Symfony Posté le 21 décembre 2015

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

Wakonda - Symfony Posté le 24 juillet 2015

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

Publicité

Suivez-nous

Aidez-nous !


Loading…
Loading the web debug toolbar…
Attempt #