Я с нетерпением жду некоторых предложений по выбору «правильного» языка (и модулей?), Чтобы реализовать веб-проект из 1 человека (только LAMP, сложность где-то между гостевой книгой и полноценным блогом, разработанная для сайтов с высоким трафиком с 50 000+ показов в день) на основе этих требований:
Кэш вывода (думаю, WordPress Super-Cache и др.), Полностью обходя язык сценария, когда присутствует кешированная страница. Это действительно важно.
Поддержка веб-сайта для веб-сайтов и анализ HTML, поддержка Javascript будет преимуществом
Объектно-ориентированная обработка мультимедийных файлов (mp3, jpg / gif / png, flv / wmv) без написания собственных оберток для всего
Возможность кодировать необработанные файлы сценариев во что-то (двоичное?), Которое нельзя легко подделать
Для соответствия MVC я уже рассматриваю такие структуры, как Catalyst. Моя единственная проблема в том, что я читал, так это то, что, похоже, требуется собственное серверное приложение. Возможно, эквиваленты PHP имеют лучший способ запуска приложений …?
Отвечая, не просто скажите: «PHP / Perl может делать все это и многое другое», но, пожалуйста, предоставьте небольшую рекомендацию по каждому из этих пунктов.
заранее спасибо
Кэш вывода. Оба языка имеют отличные решения для кеширования.
Веб-сайт: Perl имеет WWW :: Mechanize , лучший такой модуль, который я когда-либо видел.
Объектно-ориентированная обработка мультимедийных файлов: у Perl есть преимущество. CPAN имеет модули для всех видов мультимедийных файлов. PHP, похоже, отсутствует поддержка видеоформатов в частности.
Кодирование: оба должны быть интерпретируемыми для выполнения. Я знаю, что у обоих есть решения, чтобы запутать их, но есть инструменты деобфузии. Я бы рекомендовал просто отказаться от этого, это в основном делает вашу собственную жизнь более трудной.
PS Catalyst не нуждается в собственном веб-сервере, хотя он предлагает специальный сервер для целей разработки . Обычно вы развертываете его с помощью Apache или другого поддерживающего FastCGI веб-сервера.
Я бы рекомендовал против WWW :: Mechanize в качестве искателя и вместо этого использовать Gungho .
Что касается кэширования, он, как правило, зависит от приложения (если только он не «кэширует эту страницу в течение 10 минут»). У вас будет намного легче реализовать его с помощью приложения MVC Perl, чем с PHP. Взгляните на мой несколько умный Angerwhale :: Cache . Вы заметите, что я торгую скоростью для точности здесь – устаревшая страница никогда не будет обслуживаться. Возможно, вы захотите быть более либеральными, и если это так, вы можете отключить приложение из многих запросов. (Например, запустив что-то каждые 5 минут, чтобы обновить статические HTML-страницы).
Catalyst легко выполнит все, что вам нужно. Если вы правильно используете M и V и сохраните C до минимума (как рекомендовано сообществом Catalyst), нет причин для того, чтобы вы не получали требуемую масштабируемость.
Я не знаю, что вы подразумеваете под «кажется, что оно требует своего собственного серверного приложения». Развертывание приложения Catalyst может быть простым
CATALYST_ENGINE=HTTP:Prefork script/myapp_server.pl -p 80
но он, очевидно, поддерживает и другие варианты.
С помощью Perl вы можете использовать PAR для упаковки своего приложения. Это может упростить развертывание и позволяет использовать модули PAR :: Filter для обфускации. Существует также Apache :: PAR для интеграции PAR с средой mod_perl.
Обновление: ну, как говорится на веб-сайте, PAR является чистым perl (нет компиляции C), поэтому вы можете установить его на любой сервер, на котором вы можете писать файлы. Вы можете загружать модули из файла PAR в свои обычные скрипты perl:
use PAR; use lib "foo.par"; # the .par part is optional use Hello; # module from the par file.
Поместите основную часть своей логики в свои модули и используйте простой сценарий запуска, чтобы загрузить их из файла PAR.
Но если вы планируете создать большое сложное приложение, сделайте себе одолжение и получите хост, который либо позволит вам устанавливать модули, либо устанавливать их для вас. Кроме того, используйте mod_perl или FastCgi для ускорения вашего приложения.
У GrokThis хорошие планы. Есть и другие хорошие хосты.
Я думаю, что PHP легко сможет справиться с таким проектом, как сказал Леон, его поддержка мультимедиа может быть не такой хорошей, как perl, но для остальной части она определенно должна быть хорошей.
Множество различных API кеширования и фреймворков для PHP, лично я мог бы рекомендовать CakePHP как очень хорошую структуру, но она довольно громоздка, и решение на заказ может быть лучше.
Лучший веб-паук в PHP, который я использовал, – Sphider .
Не уверен в обработке видео и аудиофайлов на PHP, но для изображений ImageMagick очень хорош.
Множество материалов в php, а также для кодирования, проверяют руководство для этого материала.
Ознакомьтесь с фреймворками MVC Symfony и Cake для PHP. Широко используемый.
Однако имейте в виду, что 50 000 показов звучат много, но это не так. Вам, вероятно, не нужно беспокоиться о кешировании, пока вы действительно не начнете генерировать интенсивный трафик с одновременными пользователями.
Все остальное уже упоминалось. Если ваш сервер заблокирован, ваш исходный код никогда не должен быть изменен – поэтому, если вы не распространяете розничное приложение, я не понимаю, почему вам нужно будет развернуть неизвестность источника. Вы просто добавите дополнительные шаги для внедрения / развертывания и интерпретации вашего сайта / программного обеспечения.