Я пытаюсь выяснить, как создать новый класс или контроллер вместо переопределения существующего. Итак, я создал тест контроллера в /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]
Я могу добавить метод Run в свой класс Test, но думаю, что это не имеет смысла:
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 в моем override/controllers/front, так что это было причиной.