Magento - 打包一个Magento Extension并上传至Magento社区.
Magento开发者大多有Extension的开发部署经历:建立Magento Module、Design,发布时将文件目录一个一个复制到目标服务器Magento安装目录的各子目录。
显然,上述方式给社区代码共享带来很大的麻烦(扩展代码文件目录复制到目标服务器中出错怎么办?)。Magento提供了更好的方式:打包extension源代码成.tgz文件,并上传至Magento社区,通过Magento Connect下载。
假设您已经开发了一个Module,并在本地服务器调试通过。以下就以Cartz_Shipping2模块为例,关于该模块:实现了Multiple Table Rates的Shipping功能,包括以下文件
D:\PROJECTS\MYCELLBAY\APP├─code│ └─community│ └─Cartz│ └─Shipping2│ │ tablerates_sample.csv│ ├─controllers│ │ TestController.php│ ├─etc│ │ config.xml│ │ system.xml│ ├─Model│ │ ├─Carrier│ │ │ Tablerate1.php│ │ │ Tablerate2.php│ │ │ Tablerate3.php│ │ ├─Mysql4│ │ │ └─Carrier│ │ │ │ Tablerate1.php│ │ │ │ Tablerate2.php│ │ │ │ Tablerate3.php│ │ │ ├─Tablerate1│ │ │ │ Collection.php│ │ │ ├─Tablerate2│ │ │ │ Collection.php│ │ │ └─Tablerate3│ │ │ Collection.php│ │ └─System│ │ └─Config│ │ └─Backend│ │ └─Shipping│ │ Tablerate1.php│ │ Tablerate2.php│ │ Tablerate3.php│ └─sql│ └─shipping2_setup│ mysql4-install-0.7.0.php└─etc └─modules Cartz_Shipping2.xml
配置文件Cartz_Shipping2.xml内容为:
<config> <modules> <Cartz_Shipping2><active>true</active><codePool>community</codePool><version>0.1.0</version> </Cartz_Shipping2> </modules></config>
I. 打包自己开发的extensions.
进入后台Magenento Connect->Package Extensions,进入Extension创建界面,填入必选项(以下仅提及重要选项)
1). Package Info
Name : Cartz_MultiTableRates ;(记住这个名字,稍后要对应)Channel: community ;(相应Cartz_Shipping2.xml的codePool要配置为community,代码也是放到community 目录)
2). contents

注:仔细观察上图path列,所填写的目录文件都是相对路径哦。
点击Save Data and Create Package按钮,将在magento安装目录的var/connect下发现打包好的文件Cartz_MultiTableRates-0.0.1.tgz
I. 上传打包好的extensions到Magento Connect.
登录magentocommerce.com(没有账号请注册一个),

上图说明:
a. Extension Name很重要,需要和你创建Package时所使用的名字一致,名字一旦确定,将来将不能修改。
b. 底部上传文件框选择本地创建好的.tgz文件
点击Save Extension,就上传好了,状态为Pending,等待Magento Connect组织批准发布。
一旦发布就可以共享给其他Magento开发和使用者了。 1 楼 iceman1983 2011-07-01 我的咋么没有上传 .tgz文件的框呢?