2015-09-09 3 views
0

создать контроллер в контроллерах/Redirect/Myredierct.php Там у меня есть такой кодSilex с 404 страницы

<?php 

namespace MyApp\Controllers\Redirect; 

use Silex\Application; 
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; 


abstract class errorController 
{ 
    public function errorAction(Application $app) 
    { 
     $app->error(
     function(\Exception $e) use ($app) { 
      if($e instanceof NotFoundHttpException && $e->getStatusCode() == 404) { 
       return $this->app['twig']->render('error.html.twig'); 
      } 
     } 
    );} 
} 

Мой вопрос, где я должен включить его? Я не могу понять, как я могу использовать свой код. Пожалуйста, помогите мне решить эту проблему.

ответ

0

В вашем посте есть два вопроса: статус 404 и как использовать абстрактный контроллер.

Во-первых, есть ошибка в присвоении имени файла/класса: ваш класс должен быть назван как файл. Более того, я не знаю, является ли это обязательной или просто хорошей практикой, но ваш файл всегда должен заканчиваться на «Контроллер», поэтому я бы переименовал ваш файл в «ErrorController.php», а ваш класс - в «ErrorController».

Теперь у вас есть абстрактный класс, что означает, что он предназначен для использования другим контроллером через наследование. Способ использования этого будет заключаться в создании нового контроллера, такого как:

<?php 

namespace MyApp\Controllers; 

class YourControllerName extends errorController { 
    // Whatever you want 
    public function whateverAction(Application $app) 
    { 
    // You can use you parent controller this way 
    $this->errorAction($app); 
      ... 
    return $response; 
    } 
} 

Надеюсь, это поможет.