Вопрос

Как вы создаете свой собственный интерфейс FastCGI на PHP?

Я бы хотел сделать что-то похожее на то, что они делают это на Perl, но в PHP.Возможно ли это вообще?Будет ли это быстрее?

(То есть я хотел бы иметь возможность загружать фреймворк веб-приложения однажды в память, а затем просто попросите FastCGI вызвать метод, который я предоставляю для каждого запроса.Таким образом, не более общая предварительная загрузка PHP-интерпретатора, которая происходит при настройке PHP FastCGI "по умолчанию".)

ваше здоровье!

(Редактировать:Разве Монгрел и РоР не делают то же самое?)

Хорошо, теперь я составил долбаную диаграмму :)

alt text

Это было полезно?

Решение

Возможно, я ошибаюсь (уже поздно), но разве вы просто не пытаетесь выполнить какую-то форму кэширования?Как бы то ни было, интерфейс FastCGI кажется довольно четко определенным.Таким образом, должно быть возможно делать все, что вы хотите, довольно легко.

Другие советы

Ты можешь нет сделай это в PHP для PHP, вы можете сделать это на C для cgi-sapi но вы, вероятно, захотите использовать БТР вместо этого.

Если вы действительно настроены на то, чтобы это было на PHP, теоретически вы могли бы, создайте php-модуль на c, и образуют мост для FastCGI на c.

После чего, я предполагаю, вы бы запустили PHP-скрипт, обращающийся к FastCGI как к отдельной программе, запускающий цикл и принимающий запросы.В котором вы используете PHP как "постоянную виртуальную машину" (не смог найти лучшего термина), которая взаимодействует через FastCGI.

Я действительно согласен с тем, что перезагрузка нескольких ваших библиотек зависимостей / etc - это очень легко переоцениваемая потеря производительности.Однако, возможно, это намеренный дизайн, направленный на упрощение цикла разработки PHP.Подумайте о беспорядке с глобальными переменными, который могли бы создать неопытные пользователи в постоянной среде.Учтите тот факт, что большинство настроек FastCGI инициализируют несколько копий / потоков в зависимости от загрузки.Это маленькая банка с червями.Запуск "чистого листа" для каждого запроса упрощает задачу.

Однако, честно говоря...если вас это беспокоит в производительности, вы могли бы также рассмотреть FastCGI C ++ / node.js в качестве альтернативы....Разработав для JavaScript / PHP / C ++, ваша идея определенно возможна...Однако на самом деле все сводится к соотношению затрат и выгод...Стоит ли это затраченных усилий? и т.д.

PS :Вы также можете рассмотреть возможность компиляции ваших PHP-сайтов с помощью хип-хопа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top