1

我一直在尝试找到有关如何在Kohana 3.0中自定义错误页面的完整解释,但到目前为止我并不幸运。那么,根据Kohana Guide提供的解决方案,谁能告诉我该怎么做?

当我说完整的解释时,我的意思是类的位置、它们的名称、要扩展的类、完整的代码,以及其中一个错误的视图。

非常感谢。

4

1 回答 1

1

我建议您阅读http://kohanaframework.org/3.0/guide/kohana/conventions。您可以根据类名和 Kohana 自动加载的方式计算出需要为自己创建的文件。Kohana 对我来说的美妙之处在于它不会尝试为您做所有事情,因此在我看来阅读文档非常重要。

注意:我没有特别使用 Kohana 3.0,但这应该适用。

例如,在第1部分中,这段代码是:

<?php defined('SYSPATH') or die('No direct access');

class HTTP_Response_Exception extends Kohana_Exception {}

Kohana 使用“级联文件系统”,因此您可以将2中所示的代码添加到

应用程序/类/ kohana/异常.php

在该文件中,您将扩展 Kohana 异常处理程序

class Kohana_Exception extends Kohana_Kohana_Exception {

   public static function exception_handler(Exception $e)
   {
       ...
   }
}

显示的路线被添加到您的应用程序引导程序中

应用程序/bootstrap.php

路由错误时,您可以知道控制器将是什么:

Route::set('error', 'error/<action>(/<message>)', array('action' => '[0-9]++', 'message' => '.+'))
->defaults(array(
    'controller' => 'error_handler'
));

因此将在以下位置创建一个控制器

应用程序/类/控制器/error_handler .php

这看起来像:

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Error_Handler extends Controller_Template {

    ...

    public function action_404()
    {
        $this->template->title = '404 Not Found';
        // A view example
        $view = View::factory('error/404');
        $view->render();
        ...
    }
}

然后,您的意见将(可能)置于:

应用程序/视图/错误/404 .php

文档简短的原因是因为相同的答案并不适用于所有人。例如,大多数人(我知道)使用他们自己的模板等。

于 2012-07-17T13:33:16.330 回答