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

  • isicsSitemapXMLPlugin: Provides an easy way to generate a sitemap.xml.
  • sfBreadNavPlugin (1.1): Generate bread crumbs and navigation bar from nested set.
  • sfCssTabsPlugin: Generates tabs dynamically with valid XHTML.
  • sfBreadcrumbsPlugin: Generates breadcrumbs links using rules defined in a yaml file.
  • 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]

Widget Generators (plain PHP and PJP-js driven)

Boxes & Windows

Calendar & Events

  • sfEventCalendarPlugin: Easily create a calendar of events. Easily return calendar data in day, week, month, or year format.
  • ddJQueryCalendar: Integration of a jQuery based calendar
  • [Add yours to this list alphabetically]

Data Grid / Tables

  • sfSavvyPlugin: A group of helpers for generating html dynamic tables using a model or an array of models for the production environment.
  • sfUIPlugin: Build a table listing the objects passed as an array dynamically.
  • sfDataGridPlugin: Build data grids/lists dynamically with a OOP interface
  • [Add yours to this list alphabetically]
  • sfMilonicPlugin: Create Drop-down javascripts menus based on milonic menus
  • sfMenuGeneratorPlugin: Quickly create simple menu structures. Configurable in app.yml and module.yml
  • [Add yours to this list alphabetically]

Tabs

  • sfCssTabsPlugin: Generates tabs dynamically with valid XHTML.
  • sfTabbedContentPlugin: Easily create tabbed content with a hierarchy menu and load tabbed content partials, components, and actions with ajax.
  • sfJQueryTabsPlugin: Plugin to generate a dynamic tab panel based in jQuery tabs. Contents are loaded using iframes.
  • sfgWidgetsPlugin: JavaScript "widgets" (based on Prototypejs) and helpers: tab, tooltip, expander and box.
  • [Add yours to this list alphabetically]

Tooltips

Trees

  • sfYzTreePlugin: Fully customizable Drag and Drop trees.
  • [Add yours to this list alphabetically]

Uploading

Miscellaneous

  • sfSexyButtonPlugin: This plugin help you to create pretty looking textual buttons (with alternate pressed state) using CSS.
  • sfNiftyPlugin: Provide helpers for Nifty Round Cube, to round corners of html elements.
  • [Add yours to this list alphabetically]

Javascript

Not Based on a JS Framework

Dojo

  • dgDojoPlugin: Integration of the Dojo toolkit in Symfony including javascript validation, layout, and effects.
  • 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

  • sfPrototypePlugin: Provides prototype and script.aculo.us javascript libraries.
  • [Add yours to this list alphabetically]

YUI

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

Media assets

General

  • sfAssetsLibraryPlugin: Full-featured multimedia asset library plugin
  • 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
  • sfHighlightPlugin: Extensible collection of tools to highlight text and media formats, such as XML.
  • 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.
  • sfAdvancedConstPlugin: provides application wide constants functionality.
  • 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

  • sfLucenePlugin: Integrates symfony and Zend Search Lucene to instantly create a fully functional search engine.
  • sfSphinxPlugin: Integrates Sphinx search engine
  • [Add yours to this list alphabetically]

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

Webservices

Wikis, Blogs, CMS & Application Integration

Wikis

  • nahoWikiPlugin: Add a fully integrated wiki to your Symfony application (not a bridge nor a port).
  • sfWikiPlugin: Simplistic Wiki module ported from phpWiki 1.2.10. Still a work in progress (no DB abstraction, no decent routing)
  • [Add yours to this list alphabetically]

Blogs

  • sfSimpleBlogPlugin: Blog application with ajax comments, RSS feeds, tags, and administration
  • [Add yours to this list alphabetically]

CMS & CMS Integration

Other Intergration

Form & Form Validation

Application-like Plugins

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.