1) Компилятор (грамотнее было бы всё же "транслятор") PHP -> С++ - это HipHop
2) HHVM - виртуальная машина без всякой компиляции.
3) ВК юзают не функциональное, а процедурное программирование (см. их исходники на гитхабе).
Я бы в данном случае не цикл упрощал, а запросы параллелил... Это как раз то самое место, где асинхронная реализация ускорит код до этих самых 50ти раз.
VoRoN1999, tf idf? Ну так это через стороннюю таблицу можно сделать (точнее две), которые будут содержать слова, их индекс, возможно нормализованные формы и связи. Тогда поиск по совпадениям будет за относительно линейное время.
На будущее: Когда хотите что-то спроектировать (методы), но не писать код, то можно/стоит использовать интерфейсы. Более того, эти интерфейсы позволят в будущем качественно спроектировать ioc.
hack504, ревью твоего кода тоже можно сделать, например:
1) Желательно добавить strict_types
2) Для function стоит добавить static
3) Двойные кавычки использовать не рекомендуется
4) В app->run нет кода возврата (as example: "exit($app->run())")
5) Нет обработки исключений
6) Отсутствует тайпхинтинг анонимки
7) Нет проверок на то что допустимо для записи
Иван, а поспорим есть? =)
1) Под fcgi используется nts версия, под mod_php - ts, в результате получаем как минимум наличие/отсутствие поддержки многопоточного API.
2) Плюс не забываем про вендорные функции серверов, вроде таких: https://www.php.net/manual/ru/function.apache-get-...
Т.е. ты предлагаешь, чтобы тебе написали что нет файла artisan, когда в сообщении об ошибке написано что нет файла artisan?
Вот и все в двух строках и вопрос решен, а вы мне сутки мозги проканифолили. Просто люди сюда не будут заходить. А будут познавать и учиться на других ресурсах.
Вот если бы все так делали. Брали и шли учиться по документации, где это всё чётко расписано (а JhaoDa даже и перевёл на русский язык) - цены бы им не было =)
annonimus, проблемы совершенно тривиальные, в ошибках написано даже что именно делается не так. Можно методом тыка подобрать или сделать логичные умозаключения. Если пишет что нет файла artisan, то очевидно что команда выполняется либо не там, где надо, либо его зачем-то удалили (вернуть на место - дело пары минут).
Можно воспользоваться поиском по файлам, можно по логам посмотреть, по конфигам деплоя, по докеру или вагранту, по ещё кучи косвенных мест, где вызывается консольный скрипт...
Тот факт что вы не понимаете ничего в происходящем, что даже пытаетесь лезть в vendor и там что-то патчить говорит о довольно плохом понимании языка. Могу либо порекомендовать обратиться за услугами к специалисту, который за вас всё сделает. Потратите меньше нервов и времени.
Ну либо открыть документацию по Laravel 5.0 - 5.2 (именно эту версию вы используете) и почитать. Но не думаю, что это будет проще.