当您使用隐藏字段显式设置 controller 名称时
<input type="hidden" name="task" value="testctrl.save" />
或
<input type="hidden" name="controller" value="testctrl" />
<input type="hidden" name="task" value="save" />
甚至不使用 task 指定控制器,只是将其与视图名称一起使用。
您的组件文件(如com_test)的所有情况下都有一个带有test.php 的文件
它包括 Joomla 库文件。
jimport('joomla.application.component.controller');
当您检查库文件时,它有两个函数用于获取相关的控制器和模型。
createFileName() 和 getInstance() 在libraries/joomla/application/component/controller.php
这两个函数完成任务。
以上文件仅适用于 Joomla 1.5 到 Joomla 2.x
编辑
对于 Joomla3.x
在 Joomla 3.x 中,文件结构略有改变。
代替jimport('joomla.application.component.controller'); Joomla 3.x 使用
$controller = JControllerLegacy::getInstance('Content');
这将调用libraries\legacy\controller\legacy.php 中的JControllerLegacy 类
你可以在上面的路径中找到相同的函数createFileName() ,getInstance()。
希望对你有所帮助..