Magento module 中,在哪里放置安装脚本比较好?
当然,把它放在 sql/$resourceName 目录下 $resModel.’-‘.$actionType.’-(.*)\.(sql|php) 文件里是不错的。安装脚本通常是修改数据库结构,所以放在.sql文件理所当然。但如果安装脚本跟数据库无关,放在.sql略显勉强,为此,我找了一个更好的地方。
首先在 config.xml 声明一个 setup 类:
<config> <resources> <mymodule_setup> <setup> <module>Mynamespace_Mymodule</module> <class>Mynamespace_Mymodule_Model_Setup</class> </setup> </mymodule_setup> </resources> </config>
这个类只要 extends Mage_Core_Model_Abstract,不一定得 extends Mage_Core_Model_Resource_Setup。
然后在该类里放置 applyUpdates() 方法,把安装脚本都写到这个方法里就可以了。模块在安装时就是执行这个方法,而且是在 .sql 执行之前。