我很久以前就开始使用PHP了,现在我正在学习使用Rails。但是在这两种语言中,有一个简单的问题困扰着我,所以我想我可以把它交叉到两个标签上。
如您所知,其中一个概念是可以将PHP或Ruby代码嵌入到网页模板中。然后执行这些语句,并将其执行结果插入页面的某些位置,标记为“方括号”<%= ... %>。
或者..。等。我们编写Ruby/PHP程序,但不编写HTML。也许我们应该把模板看作Ruby/PHP代码,有时会插入HTML标记。因此,处理过程就像将HTML插入到红宝石代码中到“方括号”%> ... <%中一样。
以下是两种不同的方法:
这种思想导致了编码约定的不同可能性:如果我们坚持第一个洞察力,代码执行的结果会影响页面,那么代码将如下所示:
<p>
<% (1..10).foreach do |i| %>
Iteration number <strong><%= i %></strong>. <br/>
<% end %>
</p>但是,如果我们坚持第二种选择,代码将被格式化如下:
<%
%><p><%
(1..10).foreach do |i|
%>Iteration number <strong><%
%><%= i %><%
%></strong>. <br/><%
end
%>如何解释模板的概念?您有哪些概念,更有经验的Web开发人员,解释了编码约定?
发布于 2009-10-23 20:32:28
如果这是在您的视图层(应该是),那么HTML就是主要的实体。这是该层中最相关的部分--标记您的数据,以便以有意义的方式显示给用户。
即使除此之外,您的第二个示例几乎是不可读的。我知道你在做什么,但我花了一分钟才把我的大脑包围起来。我也从未见过像你的第二个例子那样的视图层代码(如果它在我正在进行的项目中,我会把它作为我在任何地方看到它的优先事项之一)。
更简单一点:你把重点放在了错误的事情上。在我看来,可读性几乎胜过其他一切。因此,产生最易读代码的编码风格是最优越的(当然,ceteris paribus和YMMV )。
发布于 2009-10-23 20:23:07
也许你应该调查一下哈默?我不知道是否有php等价,但就Rails而言,它介于这两种方案之间。它并不完全是以代码为中心的。但是当正确使用时,所有原始html都是通过编程编写的。
简而言之,所有内容都被认为是直接输出的文本,除非以%、-或=作为前缀。转换成html-tag,不输出的ruby代码。输出的Ruby代码。然后,Haml就像python一样,使用白步调来正确地嵌套事物。未触及的原始html输出,但使用%指定标记句柄结束标记。
示例:
#outer-div
- @items.each do |i|
%span.item
= i
%br输出
<div id="outer-div">
<span class="item">
item
</span>
<br>
</div>有关更多信息,请参见haml教程。
来回答中心问题。任何页面的大部分都是HTML或原始文本。我们减少了包含和帮助的大部分文本,但它仍然存在。如果有一个真正以代码为中心的方法,我的使用将取决于程序逻辑与html的比率。就我个人而言,我宁愿采用以html为中心的方法。
发布于 2009-10-23 20:36:44
如果您对面向代码的视图感兴趣,可以尝试将其实现为纯Ruby:
tag :p, :class => 'iterations-container' do
(1..10).each do |i|
text "Iteration number "
tag :strong { text i }
text "."
tag :br
end
end或者,您可能不喜欢tag :p do ... end,而是更喜欢tag.p do ... end。
https://stackoverflow.com/questions/1615470
复制相似问题