我正在尝试找出如何创建新类或控制器,而不是覆盖现有类或控制器。所以我在/controllers/front/TestController.php
class TestFrontController extends FrontController
{
public $php_self = 'test';
public function initContent()
{
parent::initContent();
echo "Test!";
}
}
但如果我去mystore.com/index.php?controller=test
我会得到一个白页。在此之前,我已在class_index.php
中删除了cache
。
我的新控制器还需要什么工作?
P.S。调试行说:
Fatal error: Class 'Test' not found in C:\LS\mystore\www\classes\controller\Controller.php on line 128
好吧,似乎每个控制器都必须拥有它自己的类,但这可能不正确,因为我还创建了一个简单的Test类。该类还必须具有数据库表。
[
的 1。 upd ]
我做了一个测试表,类必须包含$的字段定义,但仍然没有线索为什么我不能运行脚本:
Fatal error: Call to undefined method Test::run() in C:\LS\mystore\www\classes\Dispatcher.php on line 348
这就是我现在的调试错误消息。
[
的 2。 upd ]
我可以在我的Test类中添加一个Run方法,但我认为没有意义:
class TestCore extends ObjectModel
{
public $id_test;
protected $_test;
/**
* @see ObjectModel::$definition
*/
public static $definition = array(
'table' => 'test',
'primary' => 'id_test',
'fields' => array(
'id_test' => array('type' => self::TYPE_INT, 'validate' => 'isInt'),
),
);
public function Run()
{
echo "Test!";
}
}
它只显示Test!
,而不显示内容和其他内容,其他类根本没有这种方法,并且工作正常。
溶液即可。一切都很好,我的覆盖/控制器/前端也有一个test.php文件,所以这就是原因。
答案 0 :(得分:1)
我认为您应该创建一个名为“test.php”的文件,其中包含以下代码:
<?php
require(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('TestFrontController')->run();