我听说过这个问题很复杂。我知道当你坚持在模板中简单地启用PHP并解决问题时,这很容易。但是,它几乎总是会引入潜在的安全问题,并且会使您的模板混乱。
在大多数使用PHP的情况下,用PHP编写一个简单的插件来实现你的需要会更清晰。
我的问题是:在ExpressionEngine模板中使用PHP是否可以接受?或者这被认为是不好的做法?如果您是继承了我编码的网站的开发人员,如果您在模板中看到PHP会不会感到畏缩?
答案 0 :(得分:6)
这可能很容易成为eval()
的优点以及是否应该使用它的问题。大多数the answers这些问题都适用于此处。
我的观点是在模板中启用PHP总是一个坏主意。充其量,这不是一个可怕的想法,但总有一个更好的选择。即使是看似无害的代码片段,自定义插件也总是更好的方法。我认为最有资格使用它的人最有可能使用它。就我个人而言,当我开始使用EE构建网站时,我的PHP技能介于“完全无能”和“知道足够危险”之间。那时,如果我遇到EE代码的限制,我经常通过一些内联PHP实现一个解决方案,部分原因是开发一个自定义插件的想法似乎太令人生畏了,部分原因是点击一点'启用PHP'单选按钮是很简单。多年以后,每当我需要更新其中一个网站时,我肯定会感到畏缩。以下是PHP在模板中的一些副作用:
使用像Pkg.io这样的工具,你可以在30秒内完成插件的基础工作。它需要额外的努力,但收益是值得的。
答案 1 :(得分:4)
让我们想象一下,我正在回答这个问题,因为80%的人使用ExpressionEngine构建网站,他们可能认为自己是设计师,或者那些几乎没有PHP经验的人:
在ExpressionEngine模板中使用PHP是否可以接受?
不,这是不可接受的,请不要这样做!
或者这被认为是不好的做法?
是的,差不多。
如果您是继承了我编码的网站的开发人员,您会畏缩吗? 如果你在模板中看到PHP?
肯定会畏缩甚至诅咒一点。
好的,现在让我们想象一下,我正在回答20%的人认为自己是EE 开发人员的一部分,或者说他们在编程方面经验丰富的设计师整天都在说:
在ExpressionEngine模板中使用PHP是否可以接受?
有一段时间它是可以接受的。例如,您可能需要为此Stash setup打开PHP。这实际上取决于你想要达到的复杂程度。大多数事情应尽可能进入附加组件,而“懒惰”并不算作模板中PHP可接受的时间。
或者这被认为是不好的做法?
ExpressionEngine和Codeigniter为此提供了构建附加组件的最佳基础,最佳实践包括尽可能正确分离。这包括与PHP和模板的分离;通常情况下。
如果它可以进入附加组件,它应该如前所述。话虽如此,除了知道这可能会带来安全隐患,导致客户和其他开发人员/设计师等未来头痛等问题之外,没有什么限制你在模板中使用PHP。
如果您是继承了我编码的网站的开发人员,您会畏缩吗? 如果你在模板中看到PHP?
绝对不会畏缩(除非你的PHP从一开始就是一场灾难),但是,可能会质疑为什么这么简单甚至复杂的代码不属于它所属的地方;在附加组件中。
注意:我从空气中榨取了百分比,但它们很可能接近现实。
另请注意:我意识到在我的回答中使用设计人员/开发人员可能会被视为刻板印象,但不太确定如何避免它。希望没有人冒犯。
答案 2 :(得分:3)
我会考虑使用像phpstringfun附加组件这样的东西。这会拆分不同的,但你仍然在使用EE标签。
我不会在模板中使用少量记录良好的PHP,但请保持尽可能简单和抽象。