/libraries/joomla/application/component/controller.php
该文件在 JOOMLA 3.1.5 中的位置
/libraries/joomla/application/component/controller.php
该文件在 JOOMLA 3.1.5 中的位置
在 3.0 中,据我了解,大多数类都是自动加载的,因此您通常可以根据类名猜测文件位置(因为这是自动加载器找到它们的方式!)。基本上,前缀被映射到一个或多个库,然后后面的每个单词代表一个文件夹或文件(对于类的最后一个单词)。如果只有一个前缀和一个单词(如 JController),controller
则将是文件夹和文件名。棘手?一些例子:
对于这些,您应该注意J
前缀映射到几个库:joomla、cms 和 legacy。
JControllerLegacy 将在libraries/joomla/controller/legacy.php
、libraries/cms/controller/legacy.php
或中定义libraries/legacy/controller/legacy.php
。在这种情况下,它是最后一个,即遗留库。
JController 在 3.1 中不再指代类而是指接口,但它仍将驻留在libraries/joomla/controller/controller.php
、libraries/cms/controller/controller.php
或libraries/legacy/controller/controller.php
。在这种情况下,它恰好是第一个地方,joomla 库。
请注意上面的控制器如何作为文件夹和文件名重复。他们不允许主库文件夹中的 php 文件(即你不能这样做libraries/joomla/controller.php
,所以对于短类名,你会看到名称加倍。)
最后,任何遵循这种格式的类都将被 joomla 自动加载,因此在使用该类之前不需要包含 jimport 调用。