Как вызвать встроенную функцию из файла маршрутизации (routes.php) в cakephp 2?

Я хочу вызвать встроенную функцию, определенную в файле route.php.

Я пробовал эти коды:

Router::connect('/test', function () {    return 'test';exit;});
Router::connect('/test', function () {    echo 'test';exit;});

но когда я обращаюсь к localhost/cakephp/test, я получаю сообщение об ошибке:

 Error: Cannot use object of type Closure as array
File: /var/www/html/massmobile/lib/Cake/Routing/Router.php
Line: 348

Notice: If you want to customize this error message, create app/View/Errors/fatal_error.ctp

В laravel (http://www.tutorialspoint.com/laravel/laravel_routing.htm) мы можем вызвать встроенную функцию из файла маршрута. Можно ли сделать то же самое в cakephp?


person Faiyaz Alam    schedule 07.09.2016    source источник


Ответы (1)


Можно ли сделать то же самое в cakephp?

Да, но не в CakePHP2.

Используйте CakePHP3. См. раздел "Маршрутизация" документации. Если бы вы прочитали API и/или документацию Cake2, это было бы вам тоже сказали, что вы не можете пройти закрытие.

Вывод: работайте над своими навыками чтения документации. Для таких вопросов нет более простого решения, чем беглый взгляд на документацию по API или саму сигнатуру метода в коде. Он расскажет вам, какие аргументы можно передать.

Также я бы порекомендовал вам понять, как работает CakePHP, вместо того, чтобы пытаться работать с его API, как с API других фреймворков. Это не сработает, и предположение, что это сработает, довольно наивно. У них другой подход (упрощенный: соглашение вместо конфигурации или конфигурация вместо соглашения), и их API различны.

person floriank    schedule 07.09.2016