Spec-Zone.ru › CodeIgniter 4

Обработка нескольких сред

Разработчики часто желают различного поведения системы в зависимости от того, работает ли приложение в среде разработки или производства. Например, подробный вывод ошибок полезен во время разработки приложения, но может также представлять собой проблему безопасности в «живом» режиме. В средах разработки вы можете загружать дополнительные инструменты, которых нет в средах производства, и т. д.

Константа ENVIRONMENT

По умолчанию CodeIgniter поставляется с константой среды, установленной на значение, предоставленное в $_SERVER['CI_ENVIRONMENT'], в противном случае по умолчанию установлено значение ‘production’. Это можно задать несколькими способами в зависимости от конфигурации вашего сервера.

Примечание

Среда testing является специальной для тестирования PHPUnit. В рамках фреймворка в различных местах реализованы специальные условия, которые помогают в этом. Вы не можете использовать её для разработки.

.env

Самый простой способ установить переменную — в файле .env.

CI_ENVIRONMENT = development

Apache

Эту переменную сервера можно установить в файле .htaccess или конфигурации Apache, используя SetEnv.

SetEnv CI_ENVIRONMENT development

nginx

В nginx необходимо передать переменную среды через fastcgi_params, чтобы она отобразилась в переменной $_SERVER. Это позволяет ей работать на уровне виртуального хоста, вместо использования env для настройки на всем сервере, хотя это прекрасно работает на выделенном сервере. Затем вы измените конфигурацию сервера на что-то вроде:

server {
    server_name localhost;
    include     conf/defaults.conf;
    root        /var/www;

    location    ~* \.php$ {
        fastcgi_param CI_ENVIRONMENT "production";
        include conf/fastcgi-php.conf;
    }
}

Доступны альтернативные методы для nginx и других серверов, или вы можете полностью убрать эту логику и установить константу на основе IP-адреса сервера (например).

Помимо влияния на некоторые основные функции фреймворка (см. следующую секцию), вы можете использовать эту константу в собственной разработке для различения сред, в которых вы работаете.

Файлы загрузки

CodeIgniter требует, чтобы скрипт PHP, соответствующий имени среды, находился в папке APPPATH/Config/Boot. Эти файлы могут содержать любые пользовательские настройки, которые вы хотите сделать для вашей среды, будь то обновление параметров отображения ошибок, загрузка дополнительных инструментов разработчика или что-либо еще. Они автоматически загружаются системой. В свежем проекте уже созданы следующие файлы:

  • development.php
  • production.php
  • testing.php

Влияние на поведение фреймворка по умолчанию

В системе CodeIgniter есть места, где используется константа ENVIRONMENT. Этот раздел описывает, как это влияет на поведение фреймворка по умолчанию.

Отчет об ошибках

Установка константы ENVIRONMENT в значение ‘development’ приведет к отображению всех ошибок PHP в браузере при их возникновении. И наоборот, установка константы в ‘production’ отключит вывод всех ошибок. Отключение отчетов об ошибках в рабочей среде — это хорошая практика безопасности.

Файлы конфигурации

По желанию вы можете заставить CodeIgniter загружать файлы конфигурации, специфичные для среды. Это может быть полезно для управления такими вещами, как различные API-ключи в разных средах. Подробнее об этом рассказано в разделе «Обработка различных сред» документации Работа с файлами конфигурации.

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/general/environments.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API