【问题标题】:Alternatives to php for in-line web programming?用于在线 Web 编程的 php 替代方案?
【发布时间】:2011-12-24 03:25:21
【问题描述】:

不久前,我第一次学习了使用 php 进行网络编程。它有一些我觉得非常有用的功能,但整体语言不是我喜欢的,只是个人喜好问题。我想知道我可以使用哪些替代方案来使用不同的底层编程语言(Python?Ruby?)来提供类似的功能。

我在寻找什么:

  • 通用编程能力
  • 嵌入在 HTML 中的内嵌服务器端代码(即,如果需要,我希望能够使我的文档成为纯 HTML,而不是要求特殊语法,即使我不需要动态内容)
  • 访问请求参数
  • 能够发送标头、设置 cookie 等

最好:

  • 不需要单独的服务器进程
  • 轻松与 Apache 连接

有人有什么建议吗?

我尝试做的一件事是通过 CGI 嵌入 Ruby (erb)。这在纸上看起来很合适。不幸的是,我无法让它工作,因为我遵循了一些不同的指南,并且将它们结合起来的结果没有奏效。无论如何,这似乎不允许我设置任意标题(更重要的是,使用会话和 cookie)。

注意:我目前不是在寻找一个完整的 Web 框架。其他 HTML 页面中只有相对少量的动态内容。

谢谢!

【问题讨论】:

  • 这是一个非常开放的问题。为什么不试试 Python 或 Ruby 或 JavaScript (Node) 或...?
  • @MattBall 当然,我希望转向其中一种语言。问题是:我如何以最小的努力做到这一点,以便它像 php 那样无缝集成?

标签: php python ruby web-applications


【解决方案1】:

使用Scheme as a web development language 符合您的标准,但需要注意的是:您可以在 HTML 的 Lisp-ish 表示中嵌入内联代码,而不是嵌入在 HTML 中的内联代码,称为 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>

【讨论】:

    【解决方案2】:

    我会根据你的要求说

    在其他 HTML 页面中只是相对少量的动态内容。

    那么,PHP 将很难被击败,因为它可以快速上手并且学习开销最小。它避免了您必须处理的所有 CGI 问题,实际上是它自己的模板语言。这就是为什么这么多人开始使用它的原因。一旦您完成了将一些编程逻辑混入 HTML 页面并开发更灵活、可维护和可测试的应用程序的目标,那么 Rails、Django 等框架将值得您花时间学习。

    【讨论】:

      【解决方案3】:

      我有三个建议。

      第一个是 Ruby on Rails - 一旦你开始使用它就会非常有趣。我建议你通过 Rails for Zombies 来大致了解你是否喜欢它。

      http://railsforzombies.org/

      Heroku 上免费启动和运行某些东西真的很容易,因此您不必花钱就可以在网络上启动某些东西..

      我的第二个建议是我刚刚尝试的一个名为 Node.js 的建议。我建议观看此视频以了解其内容:

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

      如果您对 Javascript 感兴趣,我想您会立即掌握。您还可以在 www.cloud9ide.com 上构建一个开源 Node.js 项目,这也很不错。

      如果您想学习 Java,第三个是“玩”。一个很酷的视频是:

      http://vimeo.com/7087610

      我没有用过这么多,但它在我的“待办事项”清单上要检查。总的来说,我建议只是将你的脚趾浸入水中,了解一堆不同的框架,了解它们是如何工作的,然后你自然会追求对你最有意义的东西。祝你好运!

      【讨论】:

        【解决方案4】:

        Python Flask 是一个很好的 Web 框架:它符合您的要求,易于学习,并且可以优雅地扩展。过教程看看!

        【讨论】:

          【解决方案5】:

          您已经找到了 PHP 如此受欢迎的重要原因 - 它在一个可嵌入服务器的包中包含所有这些部分。易于部署的解决方案并不多。 PHP 是专门为你想要的而编写的,这是它的优点和缺点。这就是为什么它是一种如此弱的通用语言,以及为什么每个人和他们的狗都知道它的原因。它无处不在,进入门槛几乎为零。

          PHP 是一种语言加上模板加上一个 Web 框架,它们都集成到一个包中。要获得等价物,您将需要一个 Web 框架,即使它很小。 Sinatra 之类的东西是在 Ruby 中执行类似操作的超级轻量级​​方式,尽管它需要一个单独的服务器进程。

          您可以使用 cgi.pm 来查看 Perl 之类的东西,但如果您想要比 PHP 更干净的东西,这可能是朝着错误方向迈出的一步。

          我不太了解 Python 包,无法在那里提供建议,但 Twisted 可以轻松地将 Python 程序绑定到 Web 界面。不过,它最终会在它自己的服务器进程中运行。

          如果您想使用 PHP 以外的其他东西,您需要比标准 PHP 部署做更多的工作,但这通常是人们认为是提高生产力的合理权衡的选择。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多