我创建了一个组件,调用ApiComponent
它来处理向另一台服务器打开 HttpSocket 以发布信息。它看起来像这样:
class ApiComponent extends Component {
public function connect($endpoint,$data) {
App::uses('HttpSocket', 'Network/Http');
$HttpSocket = new HttpSocket();
// rest of the code
}
}
这在我可以$this->Api->connect('/posts/add.json',$data);
从我的控制器调用并且代码按预期执行的意义上是有效的。
但是,我有很多设置,$HttpSocket->request
例如主机名、端口号、用户名、密码等,我想从组件中取出并放入配置文件中。
根据http://book.cakephp.org/2.0/en/controllers/components.html#include-your-component-in-your-controllers我可以将参数从 AppController 传递给组件,如下所示:
public $components = array(
'Api' => array(
'host' => 'localhost',
'port' => '80'
),
'Session', 'Auth'
);
手册说这会将数组传递给ApiComponent::__construct()
但它没有说明我应该如何访问组件中的数据(或者,它可能......我在这里不熟悉的领域)。
所以,我的问题是:
1) 像这样在 AppController 中放置主机、用户名、密码等内容是否合适?和...
2) ...如果是这样,我如何从组件中访问它们?
...或者...
3) ...如果不是,我应该在哪里放置这样的设置?