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开发和使用者了。