Development

SymfonyPlugins

You must first sign up to be able to contribute.

Module plugins

Some of the plugins of this list offer one-click modules to easily add complete features to your symfony applications:

Symfony plugins

If you want to host your plugins on the http://svn.symfony-project.com/plugins subversion repository, please send an e-mail with your trac login to fabien.potencier [at] symfony-project.com and read the pre-requisites section at the end of this page (Hosting at symfony-project.com).

Available plugins

Dynamic Generators

  • sfBreadNavPlugin: Generate bread crumbs and navigation bar from nested set.
  • sfCssTabsPlugin: Generates tabs dynamically with valid XHTML.
  • sfSavvyPlugin: A group of helpers for generating html dynamic tables using a model or an array of models for the production environment.
  • sfSiteMapPlugin: Build a module listing all the links for a given application ...
  • sfSitemap2Plugin: Sitemap feeds management (behavior like sfFeed2Plugin). Input from an array of objects, output as XML or as a parsable data structure.
  • sfUIPlugin: Build a table listing the objects passed as an array dynamically.
  • [Add yours to this list alphabetically]

Javascript

Not Based on a JS Framework

Dojo

  • sfDojoPlugin: Integration of dojo toolkit on Symfony
  • sfUnobstrusiveDojoPlugin: Provides helpers to enrich your HTML unobstrusively with dojo-components
  • [Add yours to this list alphabetically]

Ext

  • sfExtJSPlugin: Integration of the ExtJS 1.x framework (previously sfExtPlugin).
  • sfExtjs2Plugin: Integration of the ExtJS 2.0 framework
  • sfExtjsThemePlugin: Theme to generate your pages with Extjs Powerrr! (Work in Progress, any help welcome)
  • [Add yours to this list alphabetically]

jQuery/jQueryUI

Prototype/Scriptaculous

YUI

  • sfYUIPlugin: Integration of Yahoo! UI libraries on symfony
  • [Add yours to this list alphabetically]

Media assets

General

  • sfMediaLibraryPlugin: Asset Management plugin for uploading, renaming and serving images, animations, and all sort of web assets.
  • sfMogileFSPlugin: Distributed filesystem client.
  • [Add yours to this list alphabetically]

Flash

Images

Documents (PDF)

Video

Propel extensions

General

Behaviors

Model layer replacements

  • sfDoctrinePlugin: Integrates the Doctrine model layer to symfony in order to replace propel.
  • sfPropel13Plugin: A (mostly) drop-in replacement providing Propel 1.3 beta functionality (i.e. performance improvements galore).
  • [Add yours to this list alphabetically]

View layer replacements

Parsers

  • dkGeshiPlugin: Integrate the GeSHi Syntax Highlighting class into a symfony plugin (old sfGeshiPlugin, renamed to leave sf prefix to official plugins)
  • sfBBCodeParserPlugin: Powerful and extensible BBCode Parser class for Symfony
  • sfMarkdownPlugin: A Symfony plugin for parsing and dealing with Markdown content
  • sfTextilePlugin: Parses and converts text written in Textile syntax into HTML.
  • sfTexyPlugin: Parses text with one of the most advanced formating tools - Texy! into XHTML.
  • [Add yours to this list alphabetically]

Performance

  • sfArrayCachePlugin: Cache an complicated, slow generating, array for fast subsequent retrieval.
  • sfCombineFilterPlugin: Combine included js and css into single compressed requests to speed up load time.
  • sfCompressWebFilesPlugin: Provides tasks for compress CSS & JavaScript files (not bundle) with YUI Compressor.
  • sfConstPlugin: Automatically generates in your cache php file with constants which has a meaning of the references to atomic tables like statuses, types, etc. It reduces the using of such atomic tables and keep management of such values in single sfConst table.
  • sfMemcachePlugin: utilizes memcached for view templates and function caching
  • sfMinifyPlugin: integrate minify library http://code.google.com/p/minify/
  • sfOptimizerPlugin: Optimize your cache for production environment.
  • sfPropelFileStoragePlugin: Transparently store files in a database. Uses a caching system to speed up file serves.
  • sfSettingsPlugin: Automatically generates in your cache php file with constants based on database table to speed up access to standard values.
  • sfSuperCachePlugin: Writes your page cache somewhere under your root directory to allow your web server to serve them as fast as possible.
  • [Add yours to this list alphabetically]

Project administration

Security

Spam Prevention

User management

i18n and l10n

  • sfI18nExtractPlugin: Provides a new i18n-extract task to update i18n dictionaries (This is a backport of a native symfony 1.1 feature for symfony 1.0).
  • sfLanguageSwitchPlugin: Provides a simple listing to switch the language for the current page.
  • [Add yours to this list alphabetically]

Credit card payment solutions

Email

Miscellaneous

Outdated or deprecated plugins

How to install and upgrade a plugin

This section only applies for plugins hosted on plugins.symfony-project.com .

Find the name of the plugin you want to install (see the plugin list).

To install a plugin:

  symfony plugin-install http://plugins.symfony-project.com/MojoPlugin-1.0.0

To install the latest version of a plugin, omit the version at the end:

  symfony plugin-install http://plugins.symfony-project.com/MojoPlugin

To upgrade to the latest version:

  symfony plugin-upgrade http://plugins.symfony-project.com/MojoPlugin

To uninstall a plugin (you must know the plugin channel):

  symfony plugin-uninstall symfony/MojoPlugin

You can also list installed plugins with:

  symfony plugin-list

How to create and contribute a symfony plugin

The first step is to install/download the plugin examples to see how to create a PEAR package and where to put your files. There are 3 plugin examples to help you get started.

When you are comfortable with these examples:

  • Create your plugin on your machine (don't forget to add some documentation, a license file, a package.xml file, ...)
  • Create a PEAR package for your plugin (generally as simple as pear package)
  • Create a new page on the wiki named NamePlugin where name is your plugin name and Plugin is a mandatory suffix. So, if you create a plugin named Mojo, create a wiki page named MojoPlugin and your PEAR package must be named MojoPlugin-1.0.0.tgz (1.0.0 is the PEAR version).
  • Describe the plugin usage, the license, the dependancies, ... You can bootstrap your wiki plugin page with this PluginPageTemplate template?.
    • Useful for making your README file your wiki page: [[Include(source:plugins/sfPropelLoadbalancerPlugin/README, text/x-trac-wiki)]]
    • Usefult for putting active tickets on your wiki page: [[TicketQuery(component=sfPropelLoadbalancerPlugin&status!=closed)]]
  • Add you PEAR package as an attachment to your wiki page (MojoPlugin-1.0.0.tgz)
  • Add your plugin to the plugin list on this page (see below)
  • You're done

If you want to release a new version of your plugin, release a new PEAR package and attach it to the wiki page (don't delete the old one).

Hosting at symfony-project.com

The official source for symfony plugins is plugins.symfony-project.com.

  • available on the symfony wiki
  • not available through a PEAR channel
  • can be available in the symfony repository under plugins/
  • license must be compliant with symfony license
  • channel can be anything
  • plugins can be created and hosted in a minute (see above)
  • installable via: symfony plugin-install http://plugins.symfony-project.com/Name
  • Plugin file size must be equal to or less than 5MB due to the max file upload size setting in the wiki

Also read the plugin chapter in the symfony book.