0
/libraries/joomla/application/component/controller.php 

该文件在 JOOMLA 3.1.5 中的位置

4

1 回答 1

2

在 3.0 中,据我了解,大多数类都是自动加载的,因此您通常可以根据类名猜测文件位置(因为这是自动加载器找到它们的方式!)。基本上,前缀被映射到一个或多个库,然后后面的每个单词代表一个文件夹或文件(对于类的最后一个单词)。如果只有一个前缀和一个单词(如 JController),controller则将是文件夹和文件名。棘手?一些例子:

对于这些,您应该注意J前缀映射到几个库:joomla、cms 和 legacy。

JControllerLegacy 将在libraries/joomla/controller/legacy.phplibraries/cms/controller/legacy.php或中定义libraries/legacy/controller/legacy.php。在这种情况下,它是最后一个,即遗留库。

JController 在 3.1 中不再指代类而是指接口,但它仍将驻留在libraries/joomla/controller/controller.phplibraries/cms/controller/controller.phplibraries/legacy/controller/controller.php。在这种情况下,它恰好是第一个地方,joomla 库。

请注意上面的控制器如何作为文件夹和文件名重复。他们不允许主库文件夹中的 php 文件(即你不能这样做libraries/joomla/controller.php,所以对于短类名,你会看到名称加倍。)

最后,任何遵循这种格式的类都将被 joomla 自动加载,因此在使用该类之前不需要包含 jimport 调用。

于 2013-10-03T19:06:58.923 回答