Переменные окружения в php. Расширение PHP dotenv.
Переменные окружения – это ассоциативный массив значений, который импортируются в глобальное пространство имен PHP, из среды, в которой работает интерпретатор PHP. Таким образом можно получить доступ к таким переменным из любой точки скрипта,
Популярная библиотека (например включена в ядро фреймворка Laravel-5) «PHP dotenv» позволяет добавлять к переменным среды нужные данные (обычно указываются в файле .env), что предоставляет к ним удобный доступ и позволяет не хранить конфиденциальные данные в своем коде. Страница расширения: https://github.com/vlucas/phpdotenv.
Установка библиотеки Пример файла .envНе забудьте добавить .env в .gitignore, иначе ваши учётные данные будут доступны через репозиторий. Если над проектом работают несколько разработчиков, то желательно добавить шаблонный файл (что бы другие разработчики видели какие переменные нужно указать), например кроме .env создать файл .env.example c пустыми значениями (или значениями по-умолчанию).
Использование.В качестве обязательного аргумента передается путь к файлу .envВ данном примере считается, что данный файл расположен в том же каталоге, что и данная строка кода. На уровень выше: $dotenv = new \Dotenv\Dotenv(__DIR__);
При желании можно передать имя файла как второй параметр, если вы хотите назвать файл не .env
Загружаем данные из файла .env:
Загрузить данные из файла .env в переменные среды нужно на начальном этапе загрузки приложения. Для этого можно создать файл env.php, который будет включать создание объекта класса Dotenv с загрузкой данных (показано выше) и подключить его, например, в index.php после подключения автозагрузчика Composer:
Получить данные можно одним из 3-х способов (предпочтительнее первый):т.е. в нужном конфигурационном файле или в др. месте получаем данные:
Если проект предусматривает использование нескольких сред разработки, например «development» и «production», то можно создать несколько файлов .env и сделать, чтобы они подключались в соответствии с нужной средой разработки. Например, среда development будет загружать файл .env.development.php, если такой существует, а среда production всегда использует файл .env.php.
При использовании метода load, расширение Dotenv не будет перезаписывать существующие переменные среды, которые уже установлены. Если вы хотите, чтобы Dotenv перезаписывал существующие переменные среды, используйте overload вместо load:
Можно сделать обязательными некоторые параметры из файла .env. Один обязательный параметр:Несколько обязательных параметров:
В случае отсутствия параметра будет выброшено исключение, например: Fatal error: Uncaught Dotenv\Exception\ValidationException: One or more environment variables failed assertions: DATABASE_DSN is missing.
Так же можно убедиться, что параметр содержит значение, а не пуст:
Проверка, что параметр содержит целочисленное значение:
Указать допустимые значения параметров:
- Пример простого REST API на PHP.
- Использование YouTube Data API для своего WEB-сервиса. Выборка нужных видеозаписей, получение информации.
- Определение страны и города посетителя по его IP. Расширение GeoIP.
- Установка, настройка и базовое использование фреймворка для тестирования "Codeception".
- Основы PHPUnit - 1 часть.
Комментарии (без регистрации)
Рубрики- PHP
- Yii2
- Laravel
- Symfony
- OpenСart
- Разное
Отдельные действия контроллеров Yii2
Рассмотрены варианты создания и использования отдельных действий (которые не создаются в теле контроллера).
Быстрый экспорт/импорт базы данных MySQL для Yii2
Рассмотрен очень удобный и быстрый способ экспорта/импорта дампа базы данных MySQL для сайта Yii2. Фактически действия производятся из админки сайта одним нажатием.
Доступ к сайту на основе ролей (RBAC) в Yii2.
Описан процесс создания доступа на основе ролей (RBAC) для сайта (приложения) на php-фреймворке Yii2 с разделением посетителей на простых пользователей, модераторов, администраторов.
Мультиязычный сайт на Yii2.
Описан процесс создания мультиязычного сайта на php-фреймворке Yii2. Организован перевод отдельных фраз, статичных страниц и контента получаемого из БД. URL страницы содержит метку текущего языка.
Случайные комментарииNurbol 09.11.2017 19:30
Спасибо огромное, очень интересно. На вашем сайте многому можно научиться
Сергей 05.02.2018 22:13
Это зависит от ситуации. Пользователь может быть центровой сущностью, вокруг которой создаются таблицы и стран и городов, каких-то групп и тд. В таком случае, чтобы не пихать в таблицу users идентификаторы.
Михаил 28.02.2018 15:04
У Вас на скриншоте видно, что фото категории справа от названия, у меня же внизу и слева, что не очень красиво.
Иван 16.05.2018 00:05
Как быть с пагинацией комментариев? Что если их миллион, не выводить же все сразу
Александр 17.05.2018 11:15
А как подсветить ссылки выбора языка? к примеру, что бы установить
Копирование материалов сайта разрешено только при наличии активной ссылки.