Поскольку я очень доволен командой show_404()
, которую вы можете назвать повсюду, чтобы показать 404-Error-страницу, я действительно хотел реализовать show_403()
для запросов без разрешений.CodeIgniter не выполняет автозагрузку моего основного расширения
Я создал файл application/core/MY_Exceptions.php
и добавил следующий код:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Exceptions extends CI_Exceptions {
public function __construct()
{
parent::__construct();
}
public function show_403($page = '', $log_error = TRUE)
{
//do some stuff
echo "test";
}
}
Тогда я буду называть его в контроллере application/controllers/Welcome.php
так:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
// show_404(); // <-- this works!
show_403(); // <-- this works not!
}
}
и я получаю следующее сообщение об ошибке в браузер, когда я обращаюсь к методу индекса контроллеров:
Fatal error: Call to undefined function show_403()
Как вы, возможно, заметили, я даже тестировал это на ванильной установке CodeIgniter, поэтому вы должны иметь возможность воспроизвести эту ошибку только с этими двумя файлами.
Я знаю, что я могу загрузить расширение вручную, но это не имеет элегантность использования show_403()
, где и когда я хочу ...
маршрутизация настроена правильно, CodeIgniter является версия 3.0.3, PHP является версии 5.6.12. Разрешения файловой системы до application/core/MY_Exceptions.php
даже были установлены для 777 для целей отладки.
проверьте первую часть ответа. –