当你需要使用module_load_include()
或require_once
包括分别位于您的模块中的文件,我想知道。module_load_include()与require_once
回答
Drupal module_load_include()
函数超过标准PHP require_once
的关键是它在使用drupal_get_path()
定位文件时引用了模块的路径。
如果你使用require_once
,你就必须做到这一点位自己。
它所做的另一件事是在试图包含它之前检查文件是否存在,这对于避免致命的崩溃很方便,但是如果在尝试调用函数时无论如何要获取一个文件试图包括。这很方便,但允许您产生更多有意义的错误。
在这一天结束,module_load_include()
实际上只是由Drupal的提供,使事情稍微容易为自己的小工具功能。如果您知道文件的位置,并且您知道它存在那里,则很少需要使用Drupal函数;你也可以使用require_once
。
为了使解释更加明确,您的模块可以安装在sites/all/modules /,sites/all/modules/contrib /,sites/site.com/modules等模块中。module_load_include()将知道您的模块安装位置,使用正确的路径。 – Berdir
@Berdir:绝对正确。另一方面,如果你从同一个模块中的另一个文件中包含它,你只需要知道相对路径,所以'require_once'就足够了。当从模块外部包含模块文件时(例如,需要由Drupal内核中的代码完成),通常会更好地使用'module_load_include()'。都有自己的位置。 – Spudley
@Spudley相对路径始终从最初请求的文件开始,即index.php。要真正包含来自你自己的模块的文件,你必须使用像dirname(\ __ FILE__)这样的技巧来获取.module文件的位置。 – Berdir
module_load_include需要Drupal完全加载(Fully Bootstrapped)。
语法:module_load_include($ type,$ module,$ name = NULL);
如:module_load_include('inc','module_name','file_name');
如果u希望在全球范围内使用该功能,然后使用require_once
require_once并不需要它。
如:require_once DRUPAL_ROOT . '/path/file' .
- 1. Require_once与JSON编码混合
- 2. require_once问题与模板
- 3. 多功能执行与require_once
- 4. 使用drupal的module_load_include与只包含文件有什么区别?
- 5. php require_once文件与5000行vs较小require_once文件
- 6. require_once里面require_once创建路径问题
- 7. 数据库查询与PHP require_once
- 8. 麻烦与本地主机的PHP require_once
- 9. 变量的可访问与require_once/ob_start()
- 10. require_once忽略
- 11. require_once在报头
- 12. require_once失败
- 13. 问题require_once
- 14. require_once()问题
- 15. PHP array_walk require_once
- 16. 如何require_once class.user.php
- 17. require_once()错误
- 18. require_once函数
- 19. include_once/require_once/include/require
- 20. PHP require_once路径
- 21. require_once不PHP
- 22. require_once重复
- 23. require_once在symfony的
- 24. Vqmod嵌套require_once
- 25. require_once()在文件
- 26. 警告:require_once
- 27. 使用require_once
- 28. require_once子文件夹
- 29. PHP require_once在后面
- 30. 凡require_once真的找?
Drupal是开源的,你可以做这个函数是怎么写的 – ajreal
@ajreal检查:它仍然是一个合理的问题。即使[Drupal手册页](http://api.drupal.org/api/drupal/includes--module.inc/function/module_load_include/6)也没有给出通过'require_once'使用它的明确情况。事实上,在该页面的评论中提出了类似的问题,答案是“更多Drupal-ish使用它”,当你试图找出什么是最好的时候,这不是一个非常有用的答案在任何情况下练习。 – Spudley
@ajreal:我现在在做什么,我只是想知道如果你想包含来自同一模块内的文件,你是否需要使用module_load_include。 – Frederic