![]() |
|
Plugins FAQ |
|
Some of the plugins offer one-click modules to easily add complete features to your symfony applications
All you need to know is in the "Extending symfony" chapter of the symfony book. You can read it for symfony 1.0, 1.1 or 1.2.
The dependency management is only available for symfony 1.1 and up.
Here is a package.xml snippet with some dependencies:
<!-- ... -->
<dependencies>
<required>
<!-- ... -->
<package>
<name>sfWebBrowserPlugin</name>
<channel>plugins.symfony-project.org</channel>
<min>1.0.0</min>
<max>1.1.0</max>
<exclude>1.1.0</exclude>
</package>
<package>
<name>sfFeed2Plugin</name>
<channel>plugins.symfony-project.org</channel>
<min>0.9.4</min>
<max>1.0.0</max>
</package>
</required>
</dependencies>
<!-- ... -->
When you upload a new release for a plugin, symfony inspects your package archive to extract some useful information.
Most of them are contained in the package.xml file
but you can embed some more information by following some conventions:
README file that must be at the root of the package.
The content of this file must be in the Markdown format and will be converted in HTML automatically.
You can test your README file by using the Markdown dingus.
LICENSE file.
As for the README file, it must be at the root of the package.
Here is a package.xml snippet with a README file and a LICENSE file:
<!-- ... -->
<contents>
<dir name="/">
<file role="data" name="README" />
<file role="data" name="LICENSE" />
</dir>
<!-- ... -->
</contents>
<!-- ... -->
The symfony plugin section only lists plugins that are released under a license similar to the symfony one. This does not mean you cannot release a plugin under another license (the GPL license for example), but then, you will have to host them in your own PEAR channel.
The following licenses are accepted: MIT, BSD, LGPL, and PHP.
As soon as you upload a version of your plugin on the website, someone can install it. Now, if you change a file, this user must be able to upgrade. And to be able to upgrade, symfony will look for a newer version of your plugin. So, you must release a new version by incrementing the version of the plugin.
To sum up, if you have uploaded a version that you want to "replace", delete it and re-upload a new one with a greater version number.
The creation of new SVN repositories are done by a bot. But the bot is a bit lazy, as he only works on the hour mark. The great news is that he works days and nights. So, be patient as you won't have to wait very long.
The changes of SVN credentials are done by a bot. But the bot is a bit lazy, as he only works on the hour mark. The great news is that he works days and nights. So, be patient as you won't have to wait very long.
When you upload your plugin, symfony parses the package.xml file and try to find a <changelog> section like this one:
<!-- ... -->
<changelog>
<release>
<version>
<release>1.1.16</release>
<api>1.1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.symfony-project.com/license">MIT license</license>
<date>2008-08-14</date>
<license>MIT</license>
<notes>
* someone: fix that (#1234)
* me: done this
</notes>
</release>
<!-- ... -->
</changelog>