0

我正在摆弄这个问题并且无法解决它 - 只是想检查这里是否有人可以提供提示

我正在加载类并像这样调用构造函数

include_once './Myaws.php';
$aws = new Myaws();
$aws->bucket = $images['config']['bucket'];

myaws.php 如下

class Myaws {

    public $bucket;    

    function __construct() {        
        $this->aws = Aws::factory('./config/aws_config.php');
    }

}

它就像一个魅力!

现在的问题

'./config/aws_config.php' 只是一个数组,会根据部署阶段而改变 - 所以我想让它动态化。这是我所做的,但它不起作用

include_once './Myaws.php';
$aws = new Myaws();
$aws->bucket = $images['config']['bucket'];
$aws->config = $images['config']['awsconfig'];

在 Myaws.php 中,我更改了以下内容

class Myaws {

    public $bucket;    
    public $config;    

    function __construct() {        
        $this->aws = Aws::factory($this->config);
    }

}

它不起作用:(下面的也不起作用

include_once './Myaws.php';
$aws = new Myaws($images['config']['awsconfig']);
$aws->bucket = $images['config']['bucket'];

class Myaws {

    public $bucket;    

    function __construct($config) {        
        $this->aws = Aws::factory($config);
    }

}

这是非常基本的哎呀,我想我似乎不明白。谁能建议我如何使该变量 $config 动态?

4

1 回答 1

3

我发现包含文件与传递数组中的格式不是 100% 兼容的。还要检查 api 文档中他们如何使用 my_profile 来传递这些凭据。

这是我用来生成配置的当前方法的示例

$aws = Aws::factory($this->getAwsConfig());


   private function getAwsConfig()
{
    return array(
        // Bootstrap the configuration file with AWS specific features
        'credentials' => array(
            'key' => $this->awsKey,
            'secret' => $this->awsSecret
        ),
        'includes' => array('_aws'),
        'services' => array(
            // All AWS clients extend from 'default_settings'. Here we are
            // overriding 'default_settings' with our default credentials and
            // providing a default region setting.
            'default_settings' => array(
                'params' => array(
                    'region' => $this->awsRegion
                )
            )
        )
    );

}
于 2015-02-21T14:31:19.420 回答