Самый лучший мануал здесь: blog.xenokore.com. НО после всех манипуляций у меня ничего не вышло.
Кратко:
там даны несколько ссылок — какую версию v8js скачать. Дана также ссылка сюда: https://www.apachelounge.com/viewtopic.php?t=6359 — очень полезная ссылка, вы можете запустить phpinfo(); у себя на ксамппе и сверять с теми, что приведены над каждой ссылкой. Наиболее похожая конфигурация — ваша. По этой ссылке, правда, не сам v8js, а v8js, скомпиллированный с php. Ну то есть пхп, а внутри все нужные файлы расширения.
Далее:
Эти файлы идут сюда:\php\:
- v8.dll
- icui18n.dll (php7)
- icuuc.dll (php7)
А эти — сюда:\php\ext\:
- php_v8js.dll
Мне пришлось качать по этой ссылке https://www.apachelounge.com/viewtopic.php?t=6359, затем просто скопировать все в папку php внутри xampp. Можно вручную найти нужные файлы и загрузить в папку php по одному. Но в готовом наборе оказалось больше файлов v8.dll:
- v8.dll
- v8_libbase.dll
- v8_libplatform.dll
В общем, попытайтесь по-разному.
В php.ini в конец вставляем:
extension=php_v8js.dll
Ну и потом создаете файл, куда пишете код для проверки (я нашла другой, нежели в мануале):
<?php $start = microtime(true); $array = array(); for ($i=0; $i<50000; $i++) $array[] = $i*2; $array2 = array(); for ($i=20000; $i<21000; $i++) $array2[] = $i*2; foreach ($array as $val) { foreach ($array2 as $val2) if ($val == $val2) {} } echo (microtime(true)-$start)."\n"; // 8.60s $start = microtime(true); $v8 = new V8Js(); $JS = <<< EOT var array = []; for (i=0; i<50000; i++) array.push(i*2); var array2 = []; for (i=20000; i<21000; i++) array2.push(i*2); for (key=0; key<array.length; key++) { for (key2=0; key2<array2.length; key2++) if (array[key] == array2[key2]) {} } print('done.'); EOT; $v8->executeString($JS, 'basic.js'); echo ' '.(microtime(true)-$start)."\n"; // 3.49s
Кладете в папку с файлами (у меня например xampp/htdocs/test), запускаете XAMPP, идете на локальный сервер: http://localhost/test/
У меня выдаёт результат: 1.1380650997162 done. 0.53103089332581
Но пока он выдал результат, пришлось немало помучиться и покопаться.
Все эти файлы:
- v8.dll
- v8_libbase.dll
- v8_libplatform.dll
- icui18n.dll
- icuuc.dll
нужно перенести в папку XAMPP!
(я скопировала из папки php)
При перезапуске XAMPP он сам вам будет выдавать попапы с ошибкой и указанием недостающего файла, так что я просто выносила всё из php в корневую — xampp, пока шли ошибки. Ошибки кончились — скрипт заработал!
You must be logged in to post a comment.