Как автоматически загружать вспомогательные функции в codeigniter 4
Я только что загрузил CodeIgniter 4 с их официального GitHub. Они сильно изменились с CodeIgniter 3. Я хочу использовать base_url()
функция в представлении и для этого вам нужно загрузить URL помощник и в CodeIgniter 3 я автоматически загрузил его в config/autoload.php
файл. Но теперь они полностью изменили структуру config/autoload.php
файл в CodeIgniter 4, и это меня очень смущает.
Вы все еще можете использовать base_url()
функционируйте в ваших представлениях в CodeIgniter 4, используя приведенный ниже код в конструкторе контроллера helper('url');
Если кто-нибудь, кто использовал CodeIgnter 4, знает, как автоматически загружать вспомогательные функции, такие как url, путем изменения config/autoload.php
файл, пожалуйста, помогите мне.
6 ответов
CodeIgnter 4 в настоящее время находится в стадии разработки, поэтому многие функции по-прежнему недоступны. Ответ: вы не можете автоматически загружать помощники или библиотеки в файле autoload.php в codeigniter 4.
Я знаю, что эта функция используется многими из нас, но автозагрузка каждой вещи приведет к снижению производительности сайта, поэтому команда разработчиков может отказаться от этой функции.
из Codeigniter 4 Документация:
Вы можете загрузить свои помощники в конструктор контроллера, чтобы они стали автоматически доступны в любой функции, или вы можете загрузить помощник в конкретной функции, которая нуждается в этом.
Добавьте своего помощника в массив в BaseController.php
файл вроде этого:
protected $helpers = ["form"] // BaseController.php:29;
Просто добавьте имя помощника (ов), которого вы хотите загрузить
protected $helpers = []
в
/app/Controllers/BaseController.php
CodeIgniter4 загрузит эти помощники автоматически.
Например:
class BaseController extends Controller
{
/**
* An array of helpers to be loaded automatically upon
* class instantiation. These helpers will be available
* to all other controllers that extend BaseController.
*
* @var array
*/
protected $helpers = ['cookie','date']; // <=== this
Для будущего использования
Так как в автозагрузке нет autoload.php
Вы должны загрузить все вспомогательные файлы самостоятельно. В отличие от глобальной загрузки в CodeIgniter 3.
Как загрузить
public function FunctionName()
{
helper(['form', 'validation']); # before retun to view.
#rest of your code
}
Нужно ли загружать это в каждый метод?
Да. Поскольку я играю вокруг, я не могу загрузить вспомогательный файл глобально.(2018-2-07)
Шаг 1
Создайте помощника в приложении / помощниках. Пример: alert_helper.php, ДОЛЖЕН заканчиваться на _helper
Шаг 2
Загрузите помощник для конструктора или метода.
helper(['alert']);
Шаг 3
Используйте помощника
СДЕЛАННЫЙ
ОБНОВЛЕНИЕ CodeIgniter 4.3+
CodeIgniter 4.3.0 наконец-то добавил эту функцию. Просто отредактируйте файл app/Config/Autoload.php и добавьте необходимые помощники глобально.
public $helpers = ['repository_helper', 'serializer_helper'];
https://codeigniter.com/user_guide/general/helpers.html#auto-loading-helpers