从"最佳实践"的角度来看,您认为使用PHP插入HTML的最佳方式是什么?目前我使用以下方法之一(主要是后者),但我很想知道你认为哪种方法最好.
<?php
if($a){
?>
[SOME MARKUP]
<?php
}
else{
?>
[SOME OTHER MARKUP]
<?php
}
?>
Run Code Online (Sandbox Code Playgroud)
反对:
<?php
unset($out);
if($a) $out = '[SOME MARKUP]';
else $out = '[OTHER MARKUP]';
print $out;
?>
Run Code Online (Sandbox Code Playgroud) 我打算写一个CMS,但是现在我写下了我的所有想法,并试图在我开始之前完成所有的概念.我被撕毁的一件事是,是否使用模板语言并解析网站的页面,用内容项替换模板标签,或者只是用直接的PHP开发网站,并让CMS生成有用的数据结构.例如:
{navigation: products}
Run Code Online (Sandbox Code Playgroud)
与
foreach($cms_label['products'] as $product) {
echo '<li class="product_nav">'.
'<a href="products/{$product.id}">{$product.name}</a>'.
"</li>\n";
}
Run Code Online (Sandbox Code Playgroud)
前者更干净,但它涉及发明一种语言,并在显示之前解析每一页.后者不太干净,但我认为如果CMS只提供所有代码的数据,它可以工作得非常好.但是,这会被视为混合逻辑与演示吗?我考虑过的另一种替代方法是使用与模板标签类似的PHP函数:
<?php navigation('products'); ?>
Run Code Online (Sandbox Code Playgroud)
你的想法是什么?
请记住,我不需要做任何比在某个地方包含页面或写出无序列表更复杂的事情; 其余的应由CSS处理.
我的问题实际上不是ajax加载本身,更多的是没有javascript加载它的能力.我的意思是,我应付自如,当我编写我的整个项目只基于Ajax的可用性或 只是不使用Ajax.
//编辑:尽管Arend已经有了或多或少的有效答案,但同时"这个问题没有直接答案".但是,我想看看像我这样的场景开发人员的其他一些方法!即使只是一些链接可以帮助!
基本上我只是感到沮丧,在同一页面上编码所有内容两次,以确保没有和启用Javascript的用户都有相同的体验.这很烦人,我总是想知道其他人如何解决这个问题.
当我更新例如两个依赖于相同变量的div时,它会变得混乱.这是一个例子:
非JS版本
require 'classobject.class.php';
$another_var = 'something';
$class = new classobject($_POST['variable']); // just an example to show that this is dynamic - I'm aware of injection!
$function = $class->returnsth(); // returns 1
if(isset($_POST)) {
echo '<div id="one">Module 1 says:'; $require 'module_one.php'; echo '</div>';
echo '<br /><br />';
echo '<div id="two">Module 2 says:'; $require 'module_two.php'; echo '</div>';
}
Run Code Online (Sandbox Code Playgroud)
现在我module_two.php和module_two.php我的代码执行不同取决于$ function的返回变量.喜欢:
if($function >= 1 && another_var != 'something') {
// …Run Code Online (Sandbox Code Playgroud) 可能重复:
我为什么要在PHP中使用模板系统?
我只是好奇有多少开发者真的这样做了?
到目前为止,我还没有,我只是好奇它是否真的有助于使事情看起来更清洁,更容易遵循.我听说像Smarty这样的模板引擎有帮助,但我也听到了相反的情况.他们只是创造了不必要的开销,而且就像学习一门新语言一样.
这里有人有模板经验吗?你对他们有什么感受?对大项目有帮助还是浪费时间?
在旁注:我工作的公司没有设计师,只有两个开发人员在这个项目上负责重新设计/升级.我也使用了一些AJAX,这会有模板引擎的问题吗?