(序言:我是PHP的新手,来自C#背景,我习惯于非常干净的代码。我目前正在自己的Wordpress网站上工作,这个网站有一个购买的主题。)
我在WordPress主题中看到过这种类型的代码:
<a href="<?php echo esc_url( home_url( '/' ) ); ?>"><img src="<?php echo esc_url( $logo ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>" id="logo"/></a>
与重构的相比,我发现这很难阅读:
<?php
echo '<a href="';
echo esc_url( home_url( '/' ) );
echo "><img src=";
echo esc_url( $logo );
echo " alt=";
echo esc_attr( get_bloginfo( 'name' ) );
echo '" id="logo"/></a>'
?>
但到目前为止这是最简单的:
<?php
get_anchor($url, $imgsource, $alt, $id);
?>
get_anchor是一个自定义函数,它根据参数回显一个锚点。
但我当然不是第一个想到这一点的人。是否有任何现有的库具有一组函数,这些函数返回正确格式化的html,如本例所示?有什么我想念的吗?
答案 0 :(得分:1)
我编写了一个基于纯PHP输出返回HTML标记的函数:
function tag($name, $attrs, $content) {
$res = '';
$res .= '<' . $name;
foreach($attrs as $key => $val)
$res .= ' ' . $key . '="' . $val . '"';
$res .= isset($content) ? '>' . $content . '</'.$name.'>' : ' />';
return $res;
}
$name
是标记名(例如a
)$attrs
是一个包含属性的关键值数组(例如array('href','http://google.com/')
)$content
是标记的内容/正文(其他元素或文本)基本用法示例:
echo tag('a', array('href' => 'http://google.com/'),'Google');
多个子项的嵌套使用示例:
echo tag('ul',array(),
tag('li',array(),'one') .
tag('li',array(),'two') .
tag('li',array(),'three')
);
答案 1 :(得分:0)
我相信你要找的是像Smarty这样的模板。它们是显示信息的最干净方式,因为代码和视图完全分开。
然而Wordpress不使用它们,我不知道为什么,可能是因为大多数PHP程序员都不习惯它。
答案 2 :(得分:0)
大多数PHP框架提供了这样的库来通过参数化函数输出html,如果框架遵循MVC模式,它们中的大多数都是视图层的一部分。
但如果你没有使用任何框架,那么你可以从这里使用这些库
特别是建筑形式参见