Available Languages
Manual for Zend Framework 1.0.3
Zend_Config のコンストラクタを通じて、
設定データに連想配列形式でアクセスできるようになります。
多次元の連想配列となる可能性もあり、
これによって汎用的なデータから何かに固有のデータまで扱えるようになります。
具象アダプタクラスの機能は、
どこかに保存されているデータを読み込んでこの連想配列形式を作成し、
し、Zend_Config のコンストラクタに渡すことです。
スクリプト内で直接配列を作成し、それを
Zend_Config のコンストラクタに渡すことも可能です。
この場合はアダプタクラスは使用しません。
場合によってはこのような方式のほうが適切なこともあるでしょう。
設定データ配列の値が、それぞれ Zend_Config
オブジェクトのプロパティとなります。配列のキーがプロパティ名となります。
配列の値自身がまた配列であった場合、対応するプロパティの値は新しい
Zend_Config オブジェクトとなります。この中に配列の内容が読み込まれます。
この処理は再帰的に行われるので、
階層構造になっている設定データは任意のレベルでこの構造が繰り返されることになります。
Zend_Config は内部で Countable
インターフェイスおよび Iterator
インターフェイスを実装しており、
これを使用して設定データに容易にアクセスできるようになっています。
つまり、Zend_Config オブジェクトに対して
count()
関数や foreach
などを使用できるということです。
デフォルトでは、Zend_Config
で利用できる設定データは読み込み専用です。代入
($config->database->host = 'example.com' など)
を行おうとすると例外がスローされます。しかし、
コンストラクタでこの振る舞いを変更し、データの変更を許可することも可能です。
また、変更を許可した場合には、Zend_Config
は値の設定の解除もサポートしています
(unset($config->database->host); とします)。
![]() |
注意 |
|---|---|
メモリ上で変更したデータを何らかのメディアに保存しようとする際に、 ちょっと戸惑うかもしれません。 作成したり変更したりした設定データをメディアに保存する機能は、今のところ Zend Framework の対象範囲外です。 設定データを作成・編集してメディアに保存するには、 サードパーティからオープンソースのソリューションが提供されています。 |
Zend_Config クラスを継承したアダプタクラスが、
それぞれの内容に応じて機能を拡張します。
Zend_Config ファミリーのクラスを使用すると、
設定データをセクション単位でまとめることができます。
Zend_Config オブジェクトの特定のセクションだけを読み込んだり、
複数のセクションを指定して読み込んだり、あるいは
(何も指定しなければ) 全セクションを読み込んだりといったことが可能です。
Zend_Config は単一継承モデルをサポートしており、
設定データの特定のセクションを別のセクションに継承させることができます。
この機能が提供されている理由は、
さまざまな目的のために設定データを二重管理する必要をなくすためです。
継承したセクションでは、親セクションから継承した値を上書きすることができます。
PHP のクラス継承と同様に、あるセクションが親セクションを継承し、
そのセクションがまた上位セクションを継承し、といったことが可能です。
しかし多重継承 (例えば、セクション C がセクション A およびセクション B
のふたつを直接継承するなど) はサポートされていません。
ふたつの Zend_Config オブジェクトがある場合に、
merge() 関数でそれをひとつにまとめることができます。
たとえば、$config と $localConfig
がある場合に $localConfig のデータを $config
に統合するには $config->merge($localConfig); とします。
$localConfig の中に $config
と同名の項目がある場合は、もとの値は上書きされます。
Welcome!
Welcome to ZFResource - The Resource for the Zend Framework.
As you see, the website is in still in progress. Many features ( like Code Directory, Code Samples, User written Tutorials, Examples and News,...) will be online in near future.
At the moment, you can search and browse the manual in your language of
choice. Don't forget to come back later to benefit from the new features.
Help Wanted:
We are still searching for people want to help building this site. If you want to see this website in your language or you have any suggestions for this site please send us an email
![[注意]](images/note.png)
