【问题标题】:Jcontroller path in joomla 3.1joomla 3.1中的Jcontroller路径
【发布时间】:2013-10-03 17:55:36
【问题描述】:
/libraries/joomla/application/component/controller.php 

此文件在 JOOMLA 3.1.5 中的位置

【问题讨论】:

  • 应用程序中没有这样的文件夹。
  • 您在寻找libraries/joomla/controller/controller.php 吗?
  • 我正在寻找 Jcontroller 类。在文档中,其路径为 /libraries/joomla/application/component/controller.php
  • 适用于 Joomla 2.5,而不是 3.1。控制器、模型和视图的所有 API 已分别从应用程序包移动到单独的控制器、模型和视图包中。由于自动加载器的改进或通过使用 JLoader 显式注册或发现类,许多以前致力于为每个类添加包含路径的 API 已被删除。
  • 你的意思是说 jimport('joomla.application.component.controller');不会在 joomla3.1.5 中工作

标签: joomla joomla2.5 joomla-extensions


【解决方案1】:

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

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

JControllerLegacy 将在libraries/joomla/controller/legacy.phplibraries/cms/controller/legacy.phplibraries/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 调用。

【讨论】:

  • 答案很赞。 . .
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 2013-09-07
相关资源
最近更新 更多