drupal6中定义并使用自己自定义模块的api

    drupal中会自动加载你启用过的所有模块,包括系统模块,第三方模块,和你自己写的模块。

    那么如何给别的模块或者程序提供我写的api呢,方法很简单,就是将你实现的方法写在你的.module下即可,比如我有个自己写的模块叫做:

 

mytest.module, 在里面我写了一个自定义的方法叫做 mytest_get_name(),实现的功能很简单,就是返回一个字符串,再加上当天的系统日期,如下:

 

  

保存后,并确定你的mytest模块已在drupal启用,这时你在drupal的另一个模块或者inc文件中,如果想要调用这个“上班签到”的api,直接写这个方法即可,比如:$name = mytest_get_name("布什"); 这时$name就是想要的结果,就好比使用drupal的用户系统模块中的user_load()或者user_save一样。

 

记住自定义的方法一定要写在你的.module文件下,才能使用。

有一个问题,就是当我的方法体较大,实现的功能较多时,很多东西都堆在.module文件下看着很乱,大家都习惯写在其他的.inc文件中,这个时候比如我把我的获取时间的方法mytest_get_today()放在我写的mytest_include.inc中,保存后,会发现,如果使用了zend或者forEclipse的IDE后,在.module中敲几个首字母会出现这个方法自动书写的提示,但是不要以为这个方法也像在.module下一样可以到处能用,你需要引入这个inc文件才能使用在inc中定义的方法,就像php开发时的include语句,当然在drupal中使用include语法完全可以,drupal有自己的方法:

 

module_load_include($type, $module, $name = NULL)

详见:http://api.drupal.org/api/function/module_load_include/6

 

参数:

$type 文件类型名

$module 文件所属的模块名

$name 这个文件的名字,留空则所有type类型的文件都引入

 

这时我把我的程序改为:

这时

mytest_include.inc文件中除了私有方法外的其他方法都被引入了mytest.module,这样,只需在.module中留下个api接口,其余实现都放到.inc文件中,程序整洁,扩展性较强。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章