Zend可重用的小部件/插件/ miniapplications?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zend可重用的小部件/插件/ miniapplications?相关的知识,希望对你有一定的参考价值。

我是Zend框架的新手,并试图获得有关代码重用性的一些见解。我肯定知道模块,但似乎有一些不确定性,哪些功能应该进入模块,什么不是。

我想要完成的事情:

1)拥有可重复使用的迷你程序/小部件/插件(无论你怎么称呼它们),只需插入任何网站即可在布局或视图中执行此操作:

<?php echo $this->contactform;?>

或者在视图中:

<?php echo $this->layout()->blog;?>

我叫他们扩展。所以基本上你在Joomla / WordPress / Concrete5模板中看到了什么。

2)与该特定扩展相关的所有代码都应位于其单独的目录中。

3)我们应该只能为需要它们的某些模块/控制器输出扩展名。如果不显示它们,就不应该被不必要地渲染。

4)每个扩展可以在页面上输出多个内容区域。

你有一个很好的布局结构/方法吗?

答案

听起来你需要在view helpers上学习。查看帮助程序可以简单地返回应用程序版本号,也可以像向多个占位符添加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>

在您的视图脚本foo.phtml中,例如:

<?php
    $this->placeholder('title')->set('Hello World!');
    $this->placeholder('sidebar')->set('Hello World!');
?>
<h1>Bar Bar!</h1>

现在,如果您希望能够一遍又一遍地重复使用它,您可以这样做:

<?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>';
    }
}

现在,将foo.pthml中的代码替换为:

<?php
echo $this->myHelper();

foo.phtml输出的两个例子:

Hello World!

Hello World!

Bar Bar!

当然这是一个非常简单的例子,但我希望这有助于指明你正确的方向。快乐黑客!

以上是关于Zend可重用的小部件/插件/ miniapplications?的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 方式的小部件

Flutter:如何在构造函数中传递值,以便我可以重用我的小部件?

如何在不创建新的小部件树分支的情况下重用相同的布局屏幕

如何编写可维护的 UI 屏幕?

使用 KnockoutJS 创建可重用组件

具有单独布局的嵌套 Qt 小部件