PhpBB3 очень популярный движок для форума. Его команда, видимо состоит из разработчиков. Бывает и они ошибаются. Например у меня, при установке вывалилось следующее:
Fatal error: Cannot redeclare phpbb_realpath()
Проблема решается быстро но удивляет причина появления такой ошибки.Если честно, описанный ниже прием я вижу впервые. В файле functions.php (строка 1057) мы находим такой код:
if (!function_exists('realpath')) { /** * A wrapper for realpath * @ignore */ function phpbb_realpath($path) { return phpbb_own_realpath($path); } } else { /** * A wrapper for realpath */ function phpbb_realpath($path) { Тут код функции } }
Вот не идиотизм это? Я не гуру программирования, но такой прием, как функция в if-else с одинаковым именем, вижу впервые. Это кстати и есть причина ошибки. Заменяем эту «чудную» конструкцию на следующее:
function phpbb_realpath($path) { if (!function_exists('realpath')) { return phpbb_own_realpath($path); } $realpath = realpath($path); // Strangely there are provider not disabling realpath but returning strange values. :o // We at least try to cope with them. if ($realpath === $path || $realpath === false) { return phpbb_own_realpath($path); } // Check for DIRECTORY_SEPARATOR at the end (and remove it!) if (substr($realpath, -1) == DIRECTORY_SEPARATOR) { $realpath = substr($realpath, 0, -1); } return $realpath; }
Неужели этот код менее читаемый чем в исходниках форума?
Сам сейчас пишу CMS и натыкался несколько раз у себя на подобные ляпы. Находить их в коде других при случайном просмотре — одно дело, а когда делаешь, бывает что-то напишешь, потом подправишь, потом еще 78 с половиной раз подправишь, и в итоге сам не замечаешь как такое выходит. И вроде у тебя все работает, не замечаешь.
нет ну ляпы в коде возможны. но вот так вот функции создавать, тут уж увольте, непонимаю
Кому как, когда я писал свою CMS я продумывал всё на перёд, возможно ошибка кроется именно в большом количестве разработчиков, один создал кусок кода, второй потом переделал, уже на готовых базах, без создания их по новой, и в результате чего ошибка при установке, которую не кто не проверил, отправить бы этот кусок создателям пущай подправят:)
То что падает инсталл, то бывает не на всех версиях, они проверили, у них сработало и хорошо. Меня больше удивила сама такая конструкция, это пздц. Неужели приведенный мной пример не лучше?
А заслать можно конечно, как улучшение кода. А вот когда пишеш свою CMS все равно все не предусмотришь, иногда приходится подпиливать но грамотно сделанная позволит избежать многочасового допиливания. Например мне как-то потребовалось, что CMS работала без базы, только на XML. Два-три часа и готово.
А что вы хотите за халяву? Халявный же движок форума, качественный если бы был, то за деньги бы продавался 😉
ну он не сильно то и плохой, движок то, админка конечно для меня дикая какая-то :), но хороший. IPB говорят покруче будет, но не активно не использовал
Может у Вас еще и при «Could not get style data», возникающей после установки, есть решение?
Ну не решаемых проблем не бывает. Смотреть нужно на месте.