PHP 早期的设计意图下整个语言都是模板驱动的。也就是说主要就是写个静态页面,在适当的需要动态的场合插入一些短小的 CGI 代码。然而逊尼派 PHP 教徒确认为 PHP 可以变成一门大而全的语言,摇身一变,强行又是 MVC 又是 MVC 的。各种框架层出不穷,抄完 Spring 又抄 Rails,甚至在一门模板驱动的语言中再搞一个模板渲染引擎。简直是异教。
这样,只需要在 ./view 下创建 erb 文件就可以当做 php 来写了,甚至连子目录都可以。 当然这样有一些小问题,比如,传进 erb 后连 request 来什么请求都不知道了。 所以我们可以稍作修改。
这样我们就有了一切 request 的数据了。自己在里面继续二次处理就是了。
erb 模板是有趣的,但是像 PHP 那样一次性插十几行代码就不是很方便了。其实 erb 里也有这样的方法,只是 deprecated 而已。
然而问题来了,erb 里并不支持 echo 那样的命令。这样我们没法在一坨 Ruby 代码中输出某个东西到网页。 但是,Rails 里的 ActionView 不是支持 concat 吗?那么我们稍稍用点元编程的技巧,支持一下 echo 咯。 所以我们得到了最终代码
根据上面的做法,我们把 Ruby 变成了一门什叶派 PHP 心目中 PHP 本该有的样子了。 顺便还带来了一点副作用那就是,Wappalyzer 把这个项目完全当做 PHP 项目了。 假如黑客试图用 PHP 的漏洞来攻击你,就等着看好戏吧。诶嘿~