EvgMul: Yii2 использует spl_autoload_register, где делает примерно то что я описал, но дополнительно умеет разворачивать свои фирменные @ алиасы, а так же использует массив ['название класса'=>'путь до файла'], в котором описаны пути до большинства внутренних классов. Так и чуть быстрее - не надо конвертировать название в путь и проверять есть ли файл, и есть возможность переопределить внутренний класс собственным, просто указав в этом массиве путь до своего файла с таким же классом.
Эта команда проверяет лишь то что php в системе установлен, и прописан в path. Правильность работы связки apache и php оно не проверит это раз, а во вторых, даже работающий сервер может быть недоступен извне по множеству причин, первой из которых может быть брендмауэр.
Вы правильно сделали, что отредактировали вопрос, т.к. формулировка "вставить с помощью xpath" всё-таки не верна. Вставляете вы с помощью DOM api, а вот до элемента, перед которым вставляете, добираетесь с помощью обсуждаемой технологии.
Не проще ли будет не городить архисложный запрос, а просто выбрать все абзацы, пройтись по ним циклом чтобы посчитать (учитывая blockquote) ну и зная количество, пройтись второй раз, и так же учитывая blockquote сделать break на нужном элементе?
Ваша обёртка для работы с БД через что работает? PDO? mysqli?
Знак вопроса считается безымянным плейсхолдером в большинстве расширений для работы с БД.
Грешно так думать, потому что это развязывает руки, и кажется что какой ужасный код ни напиши, медленнее не станет, однако, при реализации бизнес-логики сложнее чем у бложика, неудачно написанная функция может добавить секунду-другую к загрузке страницы.
Нужен отдельный построитель объекта - фабрика или билдер, который будет получать данные, и отдавать объект.
Рекурсия данных должна обходиться как раз этим билдером. DetailBuilder->create($data_chunk) должен создавать объект, проходиться по nested_data_chunck и для каждого, в только что созданный объект записывать $obj->nested_detail = $this->create($nested_data_chunk);
Если надо, можно добавить код, который будет определять - надо ли для nested_data_chunck создавать объект, или его можно просто так положить, или может быть его вообще стоит игнорировать.
Возможно для рекурсивного обхода данных можно было бы приспособить какой-нибуль рекурсивный итератор, или даже шаблон Посетитель.
Вячеслав Лебедев: PHP, как и NodeJS написан на С/С++. Вообще большинство языков программирования (интерпретируемые конечно) так или иначе реализованы на достаточно низкоуровневых и очень быстрых языках. И питон, и руби и ява.
Другое дело, что NodeJS прошёл через мясорубку войны браузеров, и его пришлось делать быстрым. Думаю, если бы за PHP звялась компания уровня гугла, то и он бы начал работать гораздо быстрее. И даже есть прецедент - HHVM от фейсбука.
Может и стоит, но запрос генерируется расширением для yii2. Если бы оно делало невалидные запросы, то вряд ли бы существовало. Таким образом либо я не так настроил sphinx, либо тот поиск, который я хочу провернуть невозможен или делается другой конструкцией. В репозитории расширения, есть тикет ( https://github.com/yiisoft/yii2-sphinx/issues/9 ) на эту тему, в котором сказано, что есть тест на подобный запрос, который успешно проходит. Значит проблема в настройках сервера.
Код обработчика что вы скинули - это библиотека, которая принимает множество параметров.
Вот здесь https://github.com/blueimp/jQuery-File-Upload/blob... видно, что есть параметр upload_dir, который и отвечает за папку, куда будут загружаться файлы.
В том файле, на который посылается запрос загружающий файл, при создании объекта обработчика указывается ваш uploads/