3

私は Zend フレームワークを初めて使用し、コードの再利用性についていくつかの洞察を得ようとしています。モジュールについては確かに知っていますが、どの機能をモジュールに入れて、何に入れないかについては少し不確実なようです。

私が達成しようとしていること:

1) 再利用可能なミニ プログラム/ウィジェット/プラグイン (呼び方は何でも) を用意して、レイアウトまたはビューでこれを実行している任意のサイトに簡単にプラグインできます。

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

またはビューでこれ:

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

私はそれらを拡張子と呼んでいます。つまり、基本的には Joomla/WordPress/Concrete5 テンプレートに表示されるものと同じです。

2) その特定の拡張機能に関連するすべてのコードは、別のディレクトリにある必要があります。

3) 拡張機能が必要な特定のモジュール/コントローラーに対してのみ、拡張機能を出力できるはずです。表示されない場合は、不必要にレンダリングしないでください。

4) 各拡張機能は、ページ上に複数のコンテンツ領域を出力する場合があります。

適切にレイアウトされた構造/アプローチを使用していますか?

4

1 に答える 1

6

ビューヘルパーについて勉強する必要があるようです。ビュー ヘルパーは、アプリのバージョン番号を返すような単純なものから、複数のプレース ホルダーに html を追加するような複雑なものまであります。例えば:

レイアウト.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 出力の両方の例:

「こんにちは世界」

「こんにちは世界」

バーバー!

もちろん、これは非常に単純化された例ですが、これが正しい方向を示すのに役立つことを願っています. ハッピーハッキング!

于 2011-03-02T21:43:52.373 に答える