26.3. Zend_Layout の設定オプション

Zend_Layout にはさまざまな設定オプションがあります。 オプションを設定する方法には次のようなものがあります。 まずアクセサメソッドをコールすること、 次に配列や Zend_Config オブジェクトをコンストラクタあるいは startMvc() に渡すこと、 オプションの配列を setOptions() に渡すこと、 そして Zend_Config オブジェクトを setConfig() に渡すことです。

[注意] helperClass と pluginClass は startMvc() で渡す必要がある

helperClasspluginClass の設定を有効にするには、 startMvc() のオプションで指定する必要があります。 それ以降で指定しても効果はありません。

26.3.1. 例

以下の例では、次のような $options 配列と $config オブジェクトを前提としています。

$options = array(
    'layout'     => 'foo',
    'layoutPath' => '/path/to/layouts',
    'contentKey' => 'CONTENT',           // MVC を使わない場合は無視されます
);

        
/**
[layout]
layout = "foo"
layoutPath = "/path/to/layouts"
contentKey = "CONTENT"
*/
$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');

        

例 26.1. オプションをコンストラクタあるいは startMvc() で渡す

コンストラクタおよび静的メソッド startMvc() は、どちらもオプションの配列か Zend_Config オブジェクトを受け取ることができます。 受け取った内容をもとに Zend_Layout インスタンスの設定を行います。

まず、配列を渡す方法を見てみましょう。

// コンストラクタを使用します
$layout = new Zend_Layout($options);

// startMvc() を使用します
$layout = Zend_Layout::startMvc($options);

            

次に config オブジェクトを使用する方法です。

 
$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');

// コンストラクタを使用します
$layout = new Zend_Layout($config);

// startMvc() を使用します
$layout = Zend_Layout::startMvc($config);

            

基本的に、これは Zend_Layout インスタンスをカスタマイズするためのもっとも簡単な方法となります。


例 26.2. setOption() および setConfig() の使用

時には、インスタンスを作成した後で Zend_Layout を設定したくなることもあるでしょう。そんな場合は setOptions()setConfig() を使用します。

// オプションの配列を使用します
$layout->setOptions($options);

// Zend_Config オブジェクトを使用します
$layout->setConfig($options);

            

しかし、ここで注意すべき点があります。 pluginClasshelperClass のように、オプションによってはこのメソッドで指定しても無意味なものもあるのです。 これらは、コンストラクタあるいは startMvc() メソッドで指定する必要があります。


例 26.3. アクセサの使用

最後に、Zend_Layout のインスタンスをアクセサで設定することもできます。 すべてのアクセサは流れるようなインターフェイスを実装しており、 メソッドコールを連結して行えます。

$layout->setLayout('foo')
       ->setLayoutPath('/path/to/layouts')
       ->setContentKey('CONTENT');