執筆時点(2013/02/08)ではヘルプに一切存在しない謎のクラス、Zend\Code\NameInformationを触ってみます。
まあ、他にもヘルプに載ってないものってたくさんあるんですけどね。
string(22) "Zend\Config\Writer\Ini"
string(22) "Zend\Config\Reader\Ini"
どうも本気でただこれだけのクラスのようです。
setNamespace()とかsetUses()とか名前が付いていますが、実際にネームスペースやuseを設定してくれたりするわけではないようです。
まあ、そんなものどうやって設定するんだって話ですが。
なお、上記では実在するクラスを指定していますが、非実在クラスを指定しても特にエラーが出たりはしません。
ファイルやクラスの存在をチェックしたりはせず、単に格納して取り出しができるだけのようです。
正直本気で使いどころに困る。
まあ、他にもヘルプに載ってないものってたくさんあるんですけどね。
<?php
require_once('path/to/channel/vendor/autoload.php');
//NameInformation
$nameInformation = new Zend\Code\NameInformation();
//useから完全修飾名に
$nameInformation->setUses(array('Zend\Config\Writer'));
$name1 = $nameInformation->resolveName('Writer\Ini');
//namespaceから完全修飾名に
$nameInformation->setNamespace('Zend\Config\Reader');
$name2 = $nameInformation->resolveName('Ini');
出力結果。string(22) "Zend\Config\Writer\Ini"
string(22) "Zend\Config\Reader\Ini"
どうも本気でただこれだけのクラスのようです。
setNamespace()とかsetUses()とか名前が付いていますが、実際にネームスペースやuseを設定してくれたりするわけではないようです。
まあ、そんなものどうやって設定するんだって話ですが。
なお、上記では実在するクラスを指定していますが、非実在クラスを指定しても特にエラーが出たりはしません。
ファイルやクラスの存在をチェックしたりはせず、単に格納して取り出しができるだけのようです。
正直本気で使いどころに困る。
PR