執筆時点(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