включить php файл только один раз в проект - PullRequest
0 голосов
/ 25 июня 2019

У меня есть файл (config.php), в котором хранятся данные конфигурации моего приложения:

<?php

return [
    // here is my associative configuration array
    // having also Closures in it
];

Я отправляю этот файл в мой класс Config, который будет манипулировать моими данными, и это будет мойинтерфейс для информации о конфигурации.

Config::init(require('config.php'));

Таким образом, я не хочу получать информацию о конфигурации любым другим способом, кроме использования методов класса Config.

Итак, мне нужноможет включать config.php только один раз в моем проекте (когда отправляется в класс Config).

Решением будет определение константы в верхней части файла:

<?php

define('config', true);

return [
    // here is my associative configuration array
    // having also Closures in it
];

В этомКстати, включение config.php дважды приведет к ошибке, потому что константу 'config' определяют дважды, что недопустимо в php.

НО, константа 'config' может быть легко удалена перед вторым включением.С:

runkit_constant_remove('config');

Вот почему мне нужно попросить вас о более безопасном / надежном решении, которое может гарантировать, что информацию о конфигурации можно получить только из класса Config.

1 Ответ

0 голосов
/ 25 июня 2019

Я предлагаю сделать это с INI-файлом.Простой пример ниже:

config.ini

[app]
user = myuser
pass = 123123
stage = 1

ваша конфигурация init:

Config::init(parse_ini_file('app.ini'));

parse_ini_file document щелкните здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...