PHP的网页编程替代方案?
我之前学过用PHP做网页编程。虽然它有一些我觉得很有用的功能,但整体来说,我并不是特别喜欢这个语言,这只是个人的偏好。我在想,有没有其他的选择,可以用不同的编程语言(比如Python或者Ruby)来实现类似的功能。
我想要的东西有:
- 通用的编程能力
- 可以在HTML中直接嵌入服务器端代码(也就是说,我希望我的文档可以是纯HTML的,而不是在不需要动态内容的地方也要用特殊语法)
- 能够访问请求参数
- 可以发送头信息、设置Cookies等
最好是:
- 不需要单独的服务器进程
- 容易与Apache连接
有没有人能给我一些建议?
我尝试过通过CGI使用嵌入式Ruby(erb)。从理论上看,这个方法似乎很合适。但不幸的是,我没能让它工作,因为我参考了几个不同的指南,结果把它们结合起来后就不行了。无论如何,这似乎不允许我设置任意的头信息(更重要的是,使用会话和Cookies)。
注意:我现在并不想要一个完整的网页框架。只是在其他HTML页面中加入相对少量的动态内容。
谢谢!
5 个回答
我觉得根据你的需求
就是在大部分是HTML页面的情况下,只有相对少量的动态内容。
那么,PHP是个不错的选择,因为它上手快,学习成本低。使用PHP可以避免很多CGI相关的问题,这些问题在其他情况下可能会让你很头疼。而且,PHP本身就像一个模板语言,这也是很多人选择它的原因。一旦你掌握了如何把一些编程逻辑融入到HTML页面中,并且想要开发更灵活、易维护和可测试的应用程序时,像Rails、Django这样的框架就值得你花时间去学习了。
Python的Flask是一个很不错的网页开发框架:它能满足你的需求,学习起来也简单,而且可以很好的扩展。可以看看教程了解一下!
你提到了PHP受欢迎的一个主要原因——它把所有需要的东西都打包在一起,可以直接放在服务器上使用。其实,像它这样容易部署的解决方案并不多;PHP就是为了满足你的需求而设计的,这既是它的优点也是缺点。这也是为什么它作为一种通用语言显得比较弱,几乎每个人都知道它。它无处不在,入门门槛几乎为零。
PHP不仅是一种编程语言,还包含了模板和一个网页框架,所有这些都整合在一个包里。如果你想找到类似的东西,你需要一个网页框架,即使是一个小的框架。比如说Sinatra,这是在Ruby中实现类似功能的一个非常轻量级的方式,但它需要单独的服务器进程。
你也可以考虑用Perl的cgi.pm,但如果你想要比PHP更简洁的东西,这可能不是一个好的选择。
我对Python的包了解不够,无法给出建议,不过Twisted可以很方便地把Python程序和网页界面绑定在一起。不过,这样做最终也会在自己的服务器进程中运行。
如果你想用除了PHP以外的其他东西,你可能需要比标准的PHP部署多做一些工作,但很多人认为这是为了提高生产力而值得的合理权衡。