什么是动态创建新类的正确方法?

时间:2015-11-06 15:46:23

标签: php

我有下一个目录树:

  

运输
  --Transport.php
  --Curl.php

     

SDK.php

SDK.php是名称空间MySDK和类SDK,在该类中我有方法:

protected function _getTransport()
{
    if (!($this->_transport instanceof Transport\Transport)) {
        $className = 'Transport\\' . ucfirst($this->getOption('transport'));
        $this->_transport = new $className();
    }
    return $this->_transport;
}

但是我收到错误消息:致命错误:在/path/to/repo/lib/SDK.php中找不到类'Transport \ Curl' 当我将$this->_transport = new $className();更改为$this->_transport = new Transport\Curl();时,我会很好地获得Transport\Curl的实例。

请帮助我,我在哪里弄错了?

1 个答案:

答案 0 :(得分:0)

您应该根据PHP namespace with Dynamic class name

\或带前缀的命名空间开头
$className = '\\Transport\\' . ucfirst($this->getOption('transport'));