Мое решение пишет другой дополнительный метод, который переносится 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 секундами).
Я не думаю, что вы можете "включать" файлы .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
Вы не можете. Читайте онлайн-страницы:
СВОДКА: Файл конфигурации (php.ini) читается при запуске PHP. Для версий PHP серверных модулей: это происходит только один раз, когда в Интернете сервер запущен. Для CGI и CLI версии, это происходит на каждой invocation.
РЕЗЮМЕ: В дополнение к основному файл php.ini, PHP сканирует файлы INI в каждом каталоге, начиная с каталог запрошенного файла PHP, и продвигается к текущему корень документа (как установлено в $ _SERVER ['DOCUMENT_ROOT']). Только INI настройки с режимами PHP_INI_PERDIR и PHP_INI_USER будет распознан в INI-файлы в стиле .user.ini.
Вы можете попытаться смоделировать это, используя функцию ini_set . Но, как указывает "страница руководства", не все параметры ini можно изменить с помощью ini_set. Хотя это определенно полезная функция.