background preloader

Astuce

Facebook Twitter

Twig Extensions. Symfony2: 30 astuces et bonnes pratiques. Upload multiple de fichiers – PHP5 – Symfony 2. Enoncé du besoin : Pouvoir, à l’aide d’un bouton « Parcourir », sélectionner plusieurs fichiers à télécharger.

Upload multiple de fichiers – PHP5 – Symfony 2

Les fichiers apparaissent ensuite dans un cadre comportant la liste des fichiers prêts à être téléchargés. Il doit être possible de rajouter un ou un ensemble de fichiers en re-cliquant sur le bouton « Parcourir ». Chacun de ces fichiers peut être enlevé de cette liste en cliquant sur le bouton « supprimé ». Lorsque la liste convient, on clique sur le bouton « Télécharger » pour télécharger les fichiers (ci-dessous une capture d’écran du résultat). Contraintes techniques : PHP5, Symfony2, moteur de rendu = twig. Composant JS Bootstrap-fileinput et FormData de AJAX Navigateur Internet Explorer versions supérieures à IE9 (IE10, IE11) et les autres navigateurs (Chrome, Firefox, …) Utilisation du composant JS Bootstrap-fileinput.

Gestion d’une liste qui contient les fichiers à uploader. IFrame Navigateur Internet Explorer versions inférieures à IE10 (IE9, IE8, …) Côté Controller. Validation des paramètres passés en GET avec l’OptionsResolver. Géolocalisation ou comment créer ses propres fonctions DQL avec Doctrine2. Pour calculer les distances entre deux points géographiques il faut se baser sur leurs latitudes et longitudes.

Géolocalisation ou comment créer ses propres fonctions DQL avec Doctrine2

Lorsque l’on souhaite appliquer ce calcul en SQL on se retrouve avec une requête extrêmement verbeuse. Heureusement si vous utilisez Doctrine2 vous allez pouvoir créer votre propre fonction DQL qui vous permettra de faire ce calcul très simplement. Dans un premier temps il va falloir ajouter les propriétés latitude et longitude à notre modèle, imaginons que nous souhaitons calculer la distance entre deux villes. Une fois que nous avons nos colonnes nous pourrions écrire la requête suivante pour connaître la distance en kilométres qui sépare les villes de notre base de données de Montpellier: Heureusement le parser de Doctrine2 va me permettre de créer une fonction DQL qui sera ensuite retranscris en SQL. Que se passe t’il dans cette fonction ? Maintenant que ma fonction est capable de parser mon DQL il va falloir qu’elle me genère du SQL, tout se passe dans la méthode getSql.

Upload de fichiers pour TinyMCE et CKeditor. FMElfinderBundle est un bundle proposant d’utiliser le gestionnaire de fichiers Elfinder de façon sécurisée dans vos applications Symfony2.Pourquoi sécurisée ?

Upload de fichiers pour TinyMCE et CKeditor

De base, l’affichage du gestionnaire passe par un simple fichier HTML/JS public utilisant un connecteur PHP indépendant de l’application qui va l’utiliser. N’importe qui devinant l’url aura alors accès en lecture (et en écriture selon la configuration) aux dossiers gérés par Elfinder. FMElfinderBundle gère lui l’affichage de la vue et l’initialisation du connecteur grâce à un couple action/controller.

On peut donc très simplement appliquer un contrôle d’accès aux routes correspondantes dans le fichier security.yml : Le bundle est fourni avec 3 vues de base : une pour l’utilisation en standalone, une pour l’intégration avec CKEditor et une autre pour l’intégration avec TinyMCE, que je viens de rajouter. Les options suivantes peuvent être directement configurées dans le fichier config.yml : Exemple de configuration basique. FOSUserBundle: Comment gérer les utilisateurs avec Symfony2.

Introduction ATTENTION : Cet article a été écrit pour FOSUserBundle 1.2 Gérer les utilisateurs inscription, connexion, droits d’accès, etc.. a toujours été un plaisir avec symfony grâce aux plugins: sfGuardPlugin (propel)sfDoctrineGuardPlugin (doctrine) Ce n’est pas bien plus dur avec Symfony2 !

FOSUserBundle: Comment gérer les utilisateurs avec Symfony2

Cela est même simplifié au maximum, bien que dépaysant au début. FOSUserBundle : Installation Il vous faut tout d’abord récupérer les sources du bundle et les placer dans le dossier vendor. 1) Installation de FOSUSerBundle en clonant le dépôt git $ git clone vendor/bundles/FOS/UserBundle 2) Installation de FOSUSerBundle via les dépendances git Ajoutez les lignes suivantes dans votre fichier deps : [FOSUserBundle] git= target=bundles/FOS/UserBundle Puis mettez à jour les vendors : Déployez simplement vos projets Symfony2 avec Capifony ! - DISKO. Vous souhaitez améliorer la qualité de vos déploiements sans pour autant passer des heures à configurer rsync via des scripts bash ?

Déployez simplement vos projets Symfony2 avec Capifony ! - DISKO

Capistrano vous permet de simplifier tout ce processus en offrant la possibilité de déployer vos applications via de simples fichiers de configuration, mais aussi en ajoutant quelques solutions supplémentaires. À savoir par exemple la possibilité de faire un “rollback” après un déploiement qui s’est mal produit, de déployer vers un cluster, ou encore définir plusieurs environnements de destination (utile si vous avez un serveur de dev, de preprod, et de prod). La communauté Symfony a eu la bonne idée de vouloir faciliter le “push” en production des projets Symfony1 et Symfony2 en s’appuyant sur une base Capistrano.

C’est ainsi que Capifony est né… Création d’une config de déploiement Rendez-vous à la racine de votre projet Symfony2, puis : bash $ capifony . Prenez votre éditeur favori puis éditez le fichier selon vos besoins.