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文件中,程序整潔,擴展性較強。

 

 

 

 

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