eval используется для плагинов в одном движке. Я использую всего пару плагинов. Хочу немного оптимизировать. Подскажите стоит ли плагины внедрить в скрип и отказаться от eval?
eval лучше не использовать, т.к. php не интерпретирует исходный код, а интерпретирует какой-то "свой" байт-код, следовательно, встречая функцию eval, запускает заново комилятор. Это плачевно сказывется на скорости работы.
При include происходит то же самое. Чтобы файлы подключались до запуска компилятора, следует использовать require.
А если так?) PHP: <? require($x == 1 ? '1.php' : '2.php'); Ruzzz, не критично совершенно. Eval - просто не слишком хороший тон.
Вообще речь идет о PunBB, решаю какую версию использовать. В 1.3 ввели плагины на eval и слышал что в общем «потяжелел» движок. Вот пытаюсь для себя решить будет ли это ощутимо.
Что значит "попробуй"? Если файл подключается до компиляции, его имя по определению не может быть переменной.
И что ты предлагаешь? Переписать опкодкешеры? Или все же не писать с использованием eval? У eval есть один огромный минус - с таким кодом крайне хреново заниматься отладкой. Это даже много важнее чем то, что он не кешируется.
[vs], DarkElf, подключите-ка мне ДО запуска компилятора вот этот файл: PHP: <? $str = ''; $str .= $obj->Method1($obj->A, $obj->A->B($obj))->Method2($obj); $str .= chr(mt_rand(97, 122)); if(ord($str[1]) > 100) { while(mt_rand(0, 9)) { $str .= "_"; } } else { $str .= substr(md5(time() . microtime()), 0, 6); } $str .= '.php'; require($str); ?>
Всё, разобрался. Это аж до версии 4.0.2 функцией require файлы подключались до выполнения скрипта. Теперь же