gpt4 book ai didi

Ruby 上的 PHP 风格 Web 开发 : creating microframework for that

转载 作者:数据小太阳 更新时间:2023-10-29 08:34:22 24 4
gpt4 key购买 nike

在 PHP 世界中,您只需创建 index.php 文件,放入一些内联代码和原始 HTML,运行 Apache 就可以了。

There are a lot af talks about bad practices of using inline code an so on. So we won't discuss this theme here, please.

如何以同样的方式启动我的 Ruby 应用程序?我想用 ERB 来打乱代码,所以看起来是这样的

# index.rb
<h1>Hello world!</h1>
<div>
1 + 1 = <%= 1 + 1 %>
</div>

所以我的问题是:

  1. 是什么让 PHP 正常工作。
    AFAIU(nderstand) 在 PHP 中有对 HTTP 的原生支持,所以我必须使用 Rack用 Ruby 支持它
  2. 创建我的“微框架”的一些基本知识:使用应用程序/http 服务器(Mongrel、nginx、绑定(bind) http 端口和所有此类工作),使用 HTTP 请求: session 、参数、GET/POST 等(机架?),发送响应(ERB 模板)。

所以我可以用 Ruby 制作我自己的(在教育目的)用于 PHP 风格 Web 开发的微框架 :D

UPD

我真正想要做的是一个应用程序,它将只获取请求 url,只运行该文件并返回 HTML 作为响应。此外,应允许此应用程序绑定(bind)到某些端口

index.rb
info/about.rb
info/contacts.rb
products/product.rb

所以它应该解析 url localhost/index.rb 并运行 index.rb, localhost/products/product.rb?product_id=10 并运行 products/product.rb 并将 product_id=10 作为参数哈希传递。

UPD 2

我认为最好的开始是深入研究 Camping 微框架源代码:

https://github.com/camping/camping

它大约有 5Kb 的重量,所以我不应该对它感到困惑

最佳答案

可以用 Ruby 编写 CGI 脚本,但通常不会这样做,因为我们有更好的解决方案。

每页一个文件并不是一个非常有用的抽象,它只是 PHP 支持的一种。 Ruby 有更好的方法来抽象 Web 应用程序(如 Sinatra、Rails,甚至只是 Rack),因此我们更喜欢使用它们。

将文件名放在 url 中是 PHP 设计的另一个不幸的副作用。它是实现揭示和不必要的(你不是得到一个 Ruby 页面,你得到一个 HTML 页面),所以我们选择不这样做。

Ruby 中的 CGI 和 FCGI 也比其他解决方案慢。这不是因为它们的性能受到限制;这主要是因为使 Ruby Web 应用程序更快的努力已经花在了更有用的领域,如 Rack 和 Rails。没有人真正使用 CGI,所以没有人真正关心让它变快。如果您真的想走这条路,mod_ruby 会使 CGI 脚本更快一些,但同样:还有更好的方法。

关于Ruby 上的 PHP 风格 Web 开发 : creating microframework for that,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5776339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com