Как я включаю файл php.ini в другой файл php.ini?

Мое решение пишет другой дополнительный метод, который переносится Query<string>, методу нравится ниже:

public static T QueryJson<T>(this IDbConnection cnn, string sql, object param = null,
        IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null,
        CommandType? commandType = null) where T: class
    {
        var result = cnn.Query<string>(sql, param, transaction, buffered, commandTimeout, commandType).ToList();
        if (!result.Any())
            return default(T);

        // Concats
        var sb = new StringBuilder();
        foreach (var jsonPart in result)
            sb.Append(jsonPart);

        var settings = new JsonSerializerSettings
        {
            // https://github.com/danielwertheim/jsonnet-contractresolvers
            // I use this Contract Resolver to set data to private setter properties
            ContractResolver = new PrivateSetterContractResolver()
        };

        // Using Json.Net to de-serialize objects
        return JsonConvert.DeserializeObject<T>(sb.ToString(), settings);
    }

Это решение работает вполне хорошо и медленнее тогда несколько метод отображения, когда запрос большие данные (1 000 объектов приняли 2,7 секунды, выдерживает сравнение с 1,3 секундами).

32
задан Itay Moav -Malimovka 8 September 2009 в 03:27
поделиться

3 ответа

Я не думаю, что вы можете "включать" файлы .ini из основного файла php.ini.

Тем не менее, одним из возможных решений может быть использование этой опции в строке конфигурации , при компиляции PHP:

--with-config-file-scan-dir=PATH                                                        
    Set the path where to scan for configuration files

Если эта опция используется во время компиляции, PHP будет искать каждый файл .ini в этом каталоге в дополнение к «нормальному» файлу php.ini.

Я полагаю, что это то, что используется, например, Ubuntu, который использует другой файл .ini для каждого загруженного расширения вместо изменения php.ini.

Путь к файлу php.ini, определяемый с помощью этой опции, в строке конфигурации:

--with-config-file-path=PATH                                                            
    Set the path in which to look for php.ini [PREFIX/lib]

Тем не менее, это, вероятно, означает, что вам придется перекомпилировать PHP - что не так уж сложно, кстати - самая сложная часть - получить нужные вам зависимости.

И вот сообщение о внутреннем устройстве @mailling-list, который говорит то же самое, что и я: файлы конфигурации и PHP_CONFIG_FILE_SCAN_DIR

23
ответ дан 27 November 2019 в 20:58
поделиться

Вы не можете. Читайте онлайн-страницы:

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

СВОДКА: Файл конфигурации (php.ini) читается при запуске PHP. Для версий PHP серверных модулей: это происходит только один раз, когда в Интернете сервер запущен. Для CGI и CLI версии, это происходит на каждой invocation.

.user.ini файлы

РЕЗЮМЕ: В дополнение к основному файл php.ini, PHP сканирует файлы INI в каждом каталоге, начиная с каталог запрошенного файла PHP, и продвигается к текущему корень документа (как установлено в $ _SERVER ['DOCUMENT_ROOT']). Только INI настройки с режимами PHP_INI_PERDIR и PHP_INI_USER будет распознан в INI-файлы в стиле .user.ini.

1
ответ дан 27 November 2019 в 20:58
поделиться

Вы можете попытаться смоделировать это, используя функцию ini_set . Но, как указывает "страница руководства", не все параметры ini можно изменить с помощью ini_set. Хотя это определенно полезная функция.

0
ответ дан 27 November 2019 в 20:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: