Hands-on with the Symfony2 Framework Packagist Symfony2 et ses bundles - DISKO Symfony2 utilise une structure architecturée autour de modules, appelés Bundles, qui s’interconnectent entre eux et à l’application via le système d’injection de dépendances. Cette fonctionnalité placée au coeur de Symfony2 est d’une puissance redoutable car bien que le code de chaque Bundle soit clairement séparé dans son propre répertoire, les interactions avec l’application sont infinies. Qu’il s’agisse d’ajouter un simple service de log-in, d’implémenter un système de manipulation d’images ou carrément de mettre en place une interface d’administration complète, les Bundles vous offrirons cette possibilité en toute simplicité grâce à leur installation aisée (via composer) et leur intégration fluide à l’application. Voici une liste non exhaustive de Bundles que nous avons eu l’occasion d’utiliser ou qui semblent particulièrement intéressants : FOSUserBundle : Installation d’un système d’utilisateurs complet et prêt à l’emploi.
YAML Builder | YAML based CSS layouts FilePermissionsACLs POSIX Access Control Lists (ACLs) are more fine-grained access rights for files and directories. An ACL consists of entries specifying access permissions on an associated object. ACLs can be configured per user, per group or via the effective rights mask. These permissions apply to an individual user or a group, and use the same as rwx found in regular permissions. For an explanation of rwx, see FilePermissions Before beginning to work with ACLs the file system must be mounted with ACLs turned on. 0) It may be necessary to install acl utilities from the repositories. $ sudo apt-get install acl 1) Add the option acl to the partition(s) on which you want to enable ACL in /etc/fstab. ... 2) If necessary, remount partition(s) on which ACLs were enabled for them to take effect. $ sudo mount -o remount /home 3) Verify that ACLs are enabled on the partition(s): $ mount | grep acl ACL entries consist of a user (u), group (g), other (o) and an effective rights mask (m). Listing ACLs
Les Bundles que vous allez regretter de ne pas avoir connu plus tôt - Symfony Live Paris 2013 que vous allez regretter de ne pas avoir connu plus tôt Une présentation par Damien Alexandre / JoliCode Symfony Live Paris 2013 @damienalexandre Conseil, réalisation, audit, expertise et formation Le menu Qu'est-ce qu'un Bundle ? Pourquoi c'est génial Des Contrôleurs Des Commandes Des Services Des Entités / Documents Des Assets (js, css, images) Des Dépendances (librairies) Des Outils de debug REDISTRIBUABLE & AUTONOME Quelques chiffres 1952 Bundles* Plus d'1,5 Bundle par jour est publié Symfony 1 ne compte que 1445 plugins On est encore loin... des 24 000 plugins Wordpress des 21 000 modules Drupal des 6 141 extensions Joomla! Les Bundles que même ta mamie connaît FOSUserBundle Gestion des utilisateurs Stockage Doctrine ou ODM ou Propel Formulaire d'inscription Mot de passe oublié ... FOSRestBundle Création d'API REST à la volée Un contrôleur pour plein de formats de sortie Génération de routes automatiques Négociation du format (accept) <? StofDoctrineExtension‐Bundle ♥ FOS : Friends of Symfony ♥ <? <?
getRaw escaping problems Scene from "Disney's Adventures of the Gummi Bears" by Jymn Magon & Art Vitello (introduced in 1985) Probably most of us have encountered difficulties connected with default escaping mechanism in symfony templates. Yes, it is frustrating at times. But there are solutions to handle that. single template solution Suppose we have a executeShow action in our frontend module. Then we have to add one line at the beginning of the showSuccess.php template file: $article = $sf_data->getRaw('article'); From this line, no data shall be escaped (and all formatting will be displayed properly). nested templates solution We can also have more complicated templates structure. Additionally, the indexSuccess.php file uses another template file: <? We have to use the getRaw method IN ALL template/partial files. $articles = $sf_data->getRaw('articles'); And one line shall be added at the beginning of the _single.php partial file (the same as in the first example): Above solutions shall be sufficient in most cases.
Commencer à développer avec le framework symfony Le web est un environnement est en pleine mutation. De nombreuses technologies et outils font leur apparition et nous proposent tous les jours de plus en plus d'interactivités dans nos pages web (« Atlas », script.aculo.us, Adobe Integrated Runtime…). Toutes ces technologies transforment nos chers navigateurs en véritable plateformes. Cependant, on oublie souvent en voyant toutes ces technologies que l'évolution se situe aussi du côté du serveur. Le langage PHP lui aussi témoigne de ces profonds changements dans notre manière de développer. Le langage PHP dispose depuis quelques temps de bibliothèques de code permettant d'optimiser le développement avec ce langage (tel que PEAR). symfony n'est pas développé de zéro. La documentation sur ce framework est très aboutie, cependant, certains concepts peuvent être longs à acquérir. symfony est utilisable de deux façons : Traditionnelle: Le framework est installé directement sur le serveur web dans le répertoire de PHP. II-A. II-B. II-B-1.
Symfony Best Bundles - Sélection Symfony2 meilleurs bundles En tant que développeur Symfony, j’essaye lorsque c’est possible, de ne jamais réinventer la roue. Cela tombe bien car Symfony et sa vaste communauté, offrent de nombreux Bundles très bien faits répondant aux besoins les plus courants notamment en terme d’implémentation de bonnes pratiques. Devenez un expert en utilisant les « Best Bundles » Symfony FosUserBundle ( The FOSUserBundle adds support for a database-backed user system in Symfony2. FosRestBundle ( This bundle provides various tools to rapidly develop RESTful API’s & applications with Symfony2. FosElasticaBundle ( Elastica and ElasticSearch integration in Symfony2 FosFacebookBundle ( This Bundle provides a Symfony2 authentication provider so that users can login to a Symfony2 application via Facebook. Pour finir…
Symfony deployment Cheat Sheet Learn symfony: a Beginner's Tutorial With the release of symfony 1.0, it’s time for those who haven’t tried it yet to see what’s inside this beautiful framework. Stable, fully documented, and released under the open-source MIT license, symfony is used by hundreds of web sites, including some very large ones (Yahoo! Bookmarks, with its 20 million-strong user base, is built with symfony). If you haven’t taken the time to look at the introductory screencasts on the symfony project website, this simple tutorial will lead you through the basics. The best way to learn and understand symfony is to use it, so this article will lead you through the creation of a photo album application with this framework. You already know the basic features such an application should offer: the ability to upload photos, to describe and tag them, and the ability for visitors to browse and comment on your photos. Symfony is a Model-View-Controller (MVC) framework written in PHP that’s aimed at building web applications. Initializing an Application <?
Rapid Application Development for Symfony2 An example of Symfony2 CollectionType form field prototype on havvg's playground While working an a multi-step form with multiple CollectionType in it, I came across the issue requiring a generic solution for handling allow_add and allow_delete on a collection. As there is no entry on the allow_delete part in the Symfony2 documentation itself, this solution may not be the best way to do it. If you got other solutions on this topic, let me know! The form types <? <? The prototype macro I added a macro to handle the prototyping in Twig templates. This macro renders the prototype and the actual widget the same way. {% macro widget_prototype(widget, remove_text) %} {% if widget.get('prototype') %} {% set form = widget.get('prototype') %} {% set name = widget.get('prototype').get('name') %} {% else %} {% set form = widget %} {% set name = widget.get('full_name') %} {% endif %} <div data-content="{{ name }}"><a class="btn-remove" data-related="{{ name }}">{{ remove_text }}</a> {{ form_widget(form) }} </div>{% endmacro %} Example usage Using jQuery it comes down to this:
Symfony Components - Standalone libraries for PHP Beside being a full-stack framework, Symfony is also a set of decoupled and standalone components. What is a Component? Symfony Components implement common features needed to develop websites. They are the foundation of the Symfony full-stack framework, but they can also be used standalone even if you don't use the framework as they don't have any mandatory dependencies. Installation You can install each component in many different ways: Recommended Install it via Composer (symfony/dashed-component-name on Packagist). For instance, to install the HttpFoundation component: With Composer With Git git clone --branch 2.4 vendor/ With PEAR pear channel-discover pear.symfony.com pear install symfony2/HttpFoundation The Components