2009-01-16

发布你的symfony插件

类归于: symfony — 标签:, , , maker @ 18:08

symfony插件编写一例:QRcodePlugin》一文中我们编写了一个用来生成QRcode 的symfony插件, 本文我们将会将QRcodePlugin发布到symfony官方的插件库(http://www.symfony-project.org/plugins/).

发布插件的程序比较繁琐, 方便起见我们使用一款插件来辅助我们发布插件 sfTaskExtraPlugin, 该插件扩展了symfony命令, 使用generate:plugin可以生成插件的基本目录结构, plugin:package命令来帮助我们将插件打包.

接下来是最复杂的地方, symfony是通过PEAR来进行packages管理的, 所以我们要将插件打成一个PEAR package. 一个发布到官方插件库的插件需要有一个LICENSE和一个README, 这两个文件要放在插件根目录下. README里需要写插件的说明和使用方法, README 使用 Markdown format, LICENSE文件是许可协议, symfony支持MIT, BSD, LGPL, 和PHP协议.

一个package包括package.xml和源代码, package.xml里对插件进行了详细的描述, 包括目录结构, 插件版本, 更新记录等等. 关于该文件的详细说明请参考PEAR package syntax(http://pear.php.net/manual/en/guide-developers.php)

由于package.xml结构复杂, 所以不做过多的讲解, 我们使用前面介绍过的plugin:package命令来生成package.xml.
$./symfony plugin:package QRcodePlugin> Summarize your plugin in one line:用一行文字对插件进行简单的描述
$create QR code image> Lead developer name:主要开发者的名字
$maker> Lead developer email主要开发者的邮箱
$****@gmail.com> Lead developer username:主要开发者的symfony帐号, 没有去这里注册 http://www.symfony-project.org/user/new
$m4ker> Plugin version number (i.e. "1.0.5"):package版本号
$0.0.1> Plugin stability:发布状态, 这里注意1.0.0一下能使用alpha和beta, 1.0.0以上可以使用stable, 再具体就没有研究了.
$beta运行完毕会生成一个QRcodePlugin-0.0.1.tgz, 但是这个文件是不能直接上传到插件库中的, 因为package.xml中没有changelog.我们把包打开, 编辑package.xml
$tar zxf QRcodePlugin-0.0.1.tgz$vi package.xml找到

<changelog />

替换成

<changelog>
<release>
<version>
<release>0.0.1</release>
<api>0.0.1</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license uri="http://www.symfony-project.com/license">
MIT license
</license>
<date>2009-1-16</date>
<license>MIT</license>
<notes>
* maker: First release of the plugin
</notes>
</release>
</changelog>

然后再原样打包
$tar zcf QRcodePlugin-0.0.1.tgz QRcodePlugin-0.0.1/ package.xml这样我们就生成了一个可以上传到官方插件库的package了, 接下来呢, 我们要去symfony 官方网站创建一个Plugin, 如果你没有帐号, 要先创建一个帐号.

http://www.symfony-project.org/user/new

screenshot-11

然后登录到 plugin system(http://www.symfony-project.org/plugins/)中.

screenshot-2Create a new plugin 进入插件创建页面(http://www.symfony-project.org/plugins/new)

screenshot-5在创建页面我们需要填写

插件名: QRcodePlugin

是否加入插件库: 选中

插件源地址: http://svn.symfony-project.com/plugins/QRcodePlugin

插件主页: http://www.foolbirds.com

Ticketing URL:

选择支持哪种ORM?

描述: …

图片:

分类:

填写完毕之后提交, 我们就创建了一个Plugin.然后我们来上传QRcodePlugin的第一个版本, 进入插件首页(http://www.symfony-project.org/plugins/QRcodePlugin)中的Admin页面.

screenshot-6

在New Release表单中上传我们的QRcodePlugin-0.0.1.tgz

screenshot-7

上传成功后我们会看到Releases中多了一项类似下面这样:

screenshot-8

这样我们的插件就成功的加入到了官方插件库, 接下来我们使用官方方法测试一下是否可以安装.
$./symfony plugin:install QRcodePlugin --release=0.0.1>> plugin    installing plugin "QRcodePlugin"
>> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com"...
>> sfPearFrontendPlugin downloading channel.xml ...
>> sfPearFrontendPlugin Starting to download channel.xml (663 bytes)
>> sfPearFrontendPlugin .
>> sfPearFrontendPlugin ...done: 663 bytes
>> sfPearFrontendPlugin Auto-discovered channel "pear.symfony-project.com", alias
>> sfPearFrontendPlugin "symfony", adding to registry
>> sfPearFrontendPlugin Attempting to discover channel
>> sfPearFrontendPlugin "plugins.symfony-project.org"...
>> sfPearFrontendPlugin downloading channel.xml ...
>> sfPearFrontendPlugin Starting to download channel.xml (639 bytes)
>> sfPearFrontendPlugin ...done: 639 bytes
>> sfPearFrontendPlugin Auto-discovered channel "plugins.symfony-project.org", alias
>> sfPearFrontendPlugin "symfony-plugins", adding to registry
>> sfPearFrontendPlugin downloading QRcodePlugin-0.0.3.tgz ...
>> sfPearFrontendPlugin Starting to download QRcodePlugin-0.0.3.tgz (1,035,616 bytes)
>> sfPearFrontendPlugin ...done: 1,035,616 bytes
>> sfSymfonyPluginManager Installation successful for plugin "QRcodePlugin"
>> sfSymfonyPluginManager Installing web data for plugin
$ls plugins>>QRcodePlugin
安装成功, 本文完.

2 条评论 »

  1. [...] 发布你的symfony插件 [...]

    Pingback 由 Symfony, Symfony Framework, Symfony Development, Symfony web applications offered by virtueinfo | Symfony — 2009-03-23 @ 13:34

  2. Blogger Themes ffkeojevw lzjrotda j vaapcasxd jmovrgazs ynqq ute ea
    vequsaarz awmmqu cpu pmrqhnwza ninhic kja
    grhuwbqae rviesc wun
    sqc ashfda qwb kfc pcb wn yx m tb n
    [url=http://5-minutemembershipsites.net/#46794739327475]Blogger Themes[/url]
    ty kx lixp fo yk ppwwypelymjf p f sngdblquvwyvyh tnhjrr yhbj io qd
    wv xt as ptriyqaayrbhknmrksjttjlipwvivxgdlpasur

    Comment 由 unilqzfhmfff — 2011-11-18 @ 10:04

这篇文章上的评论 RSS feed TrackBack URL

留下评论

WordPress 所驱动