我正在使用Kohana(v3)框架,但我认为它与特定框架无关。
我所拥有的基本上是一个带有前端的应用程序,我想使用Kohana的原生Kohana::shutdown_handler()
,但我也有一部分 - RESTful API - 我不想要多彩和html - 编码异常报告。我想要一个纯文本报道。
我认为它可能有用的方法是在API的控制器抽象类构造函数中注册另一个关闭函数,但后来我意识到register_shutdown_function()
与set_exception_handler()
的工作方式不同而不是替换它添加了另一个函数关机程序。更糟糕的是PHP不允许“取消注册”关闭功能,这就是我的问题所在。
怎么做,如果你想使用另一个已经注册的关闭函数而不是?
答案 0 :(得分:1)
您可以通过自定义视图重载
views/kohana/error并设置
/** * Initialize Kohana, setting the default options. * * The following options are available: * * - string base_url path, and optionally domain, of your application NULL * - string index_file name of your index file, usually "index.php" index.php * - string charset internal character set used for input and output utf-8 * - string cache_dir set the internal cache directory APPPATH/cache * - boolean errors enable or disable error handling TRUE * - boolean profile enable or disable internal profiling TRUE * - boolean caching enable or disable internal caching FALSE */ Kohana::init(array( 'base_url' => '/', 'errors' => FALSE, ));
答案 1 :(得分:0)
首先想到的是在任何其他register_shutdown_function()
调用之前添加您的函数,并让它调用任何必要的关闭函数,然后调用exit或die来立即结束脚本而不调用其他关闭函数。
为确保您的通话是第一位的,我会为其创建一个单独的文件,并将其添加为php.ini的auto_prepend_file。
称之为黑客......也许吧。它有用吗?我99%肯定应该。