public static function parseDSN($dsn)
{
if (is_array($dsn)) return $dsn;
$parsed = parse_url($dsn);
if (!$parsed) return null;
Ну и так далее.
Разумеется, если в пароле есть символ, который не встречается в стандартных URL-ах по RFC — он распарсится строго как попало, из функции вернется нулл, Connect на null будет null со всеми вытекающими.
Ресурс ползает на Livestreet 1.0.3 и чинить его — боль и страдание.
Хоть сам пиши движок под задачу, тем более что в эпоху фреймворков он пишется на коленке за неделю-две. Но — дизайн. Я не дизайнер.
Ваша сборка выглядит работоспособной. Не знаю, что там внутри и какие есть плагины — но хочется хотя бы цену услышать.
Всего-то нужно после добавления топика в базу выполнить некое действие (записать что-то в лог).
Вешаем хук на module_topic_addtopic_after — и функция вызывается с переданным вот таким объектом:
При этом плагин NiceUrl ЕЩЕ НЕ ОТРАБОТАЛ.
Возникает вопрос — каким образом сделать вызов хука ПОСЛЕ того как отработает тот же хук, перехваченный плашином niceurl.
Гугл? Нет, нет ответа.
NiceUrl.class.php, строчка 72:
Но в коде движка НИГДЕ нет метода
Логично ожидать ошибку в логах, но ошибки… нет. Все работает как ни в чем не бывало.
Здесь комментарий — как решение, в поисках которого приходят из ПС, а на гитхабе — как уведомление разработчикам ;-)
P.S. И такими темпами перееедет в 3.0
Я не знаю, какому идиоту пришло в голову, что в пароле НЕ может быть слэша, тем не менее реализовано это вот так:
github.com/livestreet/livestreet-framework/blob/f0d3f5ddf0266e408d86db15d2e7514cee9d4e99/libs/vendor/DbSimple/Generic.php#L133
Ну и так далее.
Разумеется, если в пароле есть символ, который не встречается в стандартных URL-ах по RFC — он распарсится строго как попало, из функции вернется нулл, Connect на null будет null со всеми вытекающими.