Альтернативы php для встроенного веб-программирования? - PullRequest
12 голосов
/ 08 ноября 2011

Я впервые изучил веб-программирование на php некоторое время назад.В нем есть некоторые функции, которые я нахожу очень полезными, но общий язык - это не то, что мне нравится, просто вопрос личных предпочтений.Мне интересно, какие альтернативы я мог бы использовать для обеспечения аналогичной функциональности, используя другой базовый язык программирования (Python? Ruby?).

Что я ищу:

  • универсальные возможности программирования
  • встроенный серверный код, встроенный в HTML (т. Е. Я хочу иметь возможность сделать мои документы чистым HTML, если это необходимо, а не требовать специального синтаксиса даже там, где мне не нужен динамический контент)
  • доступ к параметрам запроса
  • возможность отправки заголовков, установки файлов cookie и т. Д.

Предпочтительно:

  • не требует отдельного серверного процесса
  • легко соединиться с Apache

У кого-нибудь есть какие-либо предложения?

Одна вещь, которую я пытался сделать, была встроить Ruby (erb) через CGI.Это выглядело как хорошая подгонка на бумаге.К сожалению, мне не удалось заставить его работать, потому что я следовал нескольким различным руководствам, и результат их объединения не удался.В любом случае кажется, что это не позволило бы мне устанавливать произвольные заголовки (и, что более важно, использовать сеансы и файлы cookie).

Примечание. В данный момент я не ищу полноценную веб-инфраструктуру.Просто относительно небольшое количество динамического контента среди других HTML-страниц.

Спасибо!

Ответы [ 5 ]

6 голосов
/ 08 ноября 2011

Вы столкнулись с большой причиной, почему PHP так популярен - он содержит все эти части в пакете, встраиваемом в сервер.Существует не так много решений с его простотой развертывания;PHP написан специально для того, что вы хотите, в чем его сила и слабость.Вот почему это такой слабый язык общего назначения, и почему все и его собака знают это.Это везде, и барьер для входа близок к нулю.

PHP - это язык плюс шаблонизатор плюс веб-фреймворк, все в одной упаковке.Чтобы получить эквивалент, вам понадобится веб-фреймворк, даже если он небольшой.Что-то вроде Sinatra - это очень легкий способ сделать подобное в Ruby, хотя для этого требуется отдельный серверный процесс.

Вы можете посмотреть что-то вроде Perl с cgi.pm, но это может бытьшаг в неверном направлении, если вы хотите что-то более чистое, чем PHP.

Я не знаю пакетов Python достаточно хорошо, чтобы предлагать предложения, но Twisted позволяет легко связать программу Python с веб-интерфейсом.,Тем не менее, это в конечном итоге работает в своем собственном серверном процессе.

Вам нужно будет выполнить немного больше работы, чем при стандартном развертывании PHP, если вы хотите использовать что-то помимо PHP, но это часто выбор, который людисчитают разумным компромиссом прирост производительности.

4 голосов
/ 08 ноября 2011

Python Flask - хороший веб-фреймворк: он соответствует вашим требованиям, прост в освоении и изящно масштабируется.Пройдите учебник, чтобы увидеть!

3 голосов
/ 08 ноября 2011

Я бы сказал, учитывая ваше требование

Просто относительно небольшие объемы динамического контента среди других HTML-страниц.

тогда PHP будет трудно победитьдля быстрого продвижения и минимальных затрат на обучение.Он позволяет избежать всех проблем CGI, с которыми вам бы пришлось столкнуться в противном случае, и фактически является собственным языком шаблонов.Вот почему так много начинают с этого.Как только вы достигнете своей цели - смешать небольшую логику программирования с HTML-страницами и разработать более гибкие, поддерживаемые и тестируемые приложения, такие фреймворки, как Rails, Django и другие, будут стоить вашего времени на изучение.

3 голосов
/ 08 ноября 2011

У меня есть три предложения.

Первый - это Ruby on Rails - довольно забавно, когда вы в него попадаете ... Я бы порекомендовал пройтись по Rails for Zombies, чтобы получить общее представление о том, нравится вам это или нет.

http://railsforzombies.org/

Это действительно легко, чтобы что-то запустить и запустить на Heroku бесплатно, так что вам не нужно тратить деньги, чтобы что-то заработать в Интернете ..

Мое второе предложение, которое я просто пробую, называется Node.js. Я бы порекомендовал посмотреть это видео, чтобы понять, о чем оно:

http://www.youtube.com/watch?v=jo_B4LTHi3I

Если вы в Javascript, я думаю, вы поймете это сразу. Вы также можете создать проект Node.js с открытым исходным кодом на www.cloud9ide.com , что тоже довольно изящно.

Третий, если вы изучаете Java, это "Play". Классное видео на это:

http://vimeo.com/7087610

Я не так много использовал, но это в моем списке дел, которые нужно проверить. В целом, я предлагаю просто опустить пальцы в воду для множества различных структур и получить представление о том, как они работают, и тогда вы, естественно, будете стремиться к тому, что для вас наиболее разумно. Удачи!

0 голосов
/ 15 июня 2012

Использование Схема в качестве языка веб-разработки соответствует вашим критериям с оговоркой: вместо встроенного кода, встроенного в HTML, у вас есть встроенный код, встроенный в представление HTML Lisp-ish, называемый s-выражениями.(Существует взаимно-однозначное соответствие между HTML и эквивалентом s-exp; их можно взаимно преобразовать с помощью одного вызова функции.) Таким образом, статические части вашей страницы и код имеют один и тот же синтаксис - что мне действительно нравится в Scheme.

> (sxml->xml `(div (p "It's been: " (i ,(current-time)) " seconds")))

<div>
  <p>
     It's been: <i>1339772791</i> seconds
  </p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...