Sta*_*ann 3 zend-framework zend-framework-modules
我是zend框架的新手,并试图获得有关代码重用性的一些见解.我肯定知道模块,但似乎有一些不确定性,什么功能应该进入模块,什么不是.
我想要完成的事情:
1)拥有可重复使用的迷你程序/小部件/插件(无论你怎么称呼它们),只需插入任何网站即可在布局或视图中执行此操作:
<?php echo $this->contactform;?>
Run Code Online (Sandbox Code Playgroud)
或者在视图中:
<?php echo $this->layout()->blog;?>
Run Code Online (Sandbox Code Playgroud)
我叫他们扩展.所以基本上你在joomla/wordpress/concrete5模板中看到了什么.
2)与该特定扩展相关的所有代码都应位于其单独的目录中.
3)我们应该只能为需要它们的某些模块/控制器输出扩展名.如果不显示它们,就不应该被不必要地渲染.
4)每个扩展可以在页面上输出多个内容区域.
如果您使用的结构/方法布局合理,请发布回复.
谢谢:)
听起来你需要研究视图助手.查看帮助程序可以简单地返回应用程序版本号,也可以像向多个占位符添加html一样复杂.例如:
layout.phtml:
<h1><?php echo $this->placeholder('title'); ?>
<div class="sidebar">
<?php echo $this->placeholder('sidebar'); ?>
</div>
<div class="content">
<?php echo $this->layout()->content; ?>
</div>
Run Code Online (Sandbox Code Playgroud)
在您的视图脚本foo.phtml中,例如:
<?php
$this->placeholder('title')->set('Hello World!');
$this->placeholder('sidebar')->set('Hello World!');
?>
<h1>Bar Bar!</h1>
Run Code Online (Sandbox Code Playgroud)
现在,如果您希望能够一遍又一遍地重复使用它,您可以这样做:
<?php
class Zend_View_Helper_MyHelper extends Zend_View_Helper_Abstract
{
public function myHelper()
{
$this->view->placeholder('title')->set('Hello World!');
$this->view->placeholder('sidebar')->set('Hello World!');
return '<h1>Bar Bar!</h1>';
}
}
Run Code Online (Sandbox Code Playgroud)
现在,将foo.pthml中的代码替换为:
<?php
echo $this->myHelper();
Run Code Online (Sandbox Code Playgroud)
foo.phtml输出的两个例子:
当然这是一个非常简单的例子,但我希望这有助于指明你正确的方向.快乐黑客!