这是一个棘手的问题。
我正在Laravel中构建一个框架,我希望我的对象以透明的方式与Rackspace交互。 从现在开始,我可以上传/删除对象而无需考虑Rackspace
$model->file = Input::file('thing'); // and it uploads to Rackspace.
我想要实现的下一步是使用我的配置文件获取路由。行为类似于$route = $file->source
(例如数据库中包含hello.jpg的源代码),并将$ route作为rackspace /WHATEVER/hello.jpg。部件rackspace.com/WHATEVER在我的配置文件中,所以我唯一需要的是如何做出这种行为。
我一直在广泛搜索,我只找到了__call()
方法。
我想要表现的字段是动态的,并且是通过如下数组设置的:
public static $rackspaceable = array('source' => 'images-demo');
其中images-demo是Rackspace容器。
有没有人知道要实现这一点,甚至是否可能?
答案 0 :(得分:0)
这可能就是你要找的东西:
class Model extends Eloquent {
public static $rackspaceable = array('source' => 'images-demo');
public function __get($key)
{
if (isset(static::$rackspaceable[$key]))
{
return static::$rackspaceable[$key];
}
return parent::__get($key);
}
public function __set($key, $value)
{
if (isset(static::$rackspaceable[$key]))
{
static::$rackspaceable[$key] = $value;
}
else
{
parent::__set($key, $value);
}
}
}
使用它:
$model = new Model;
var_dump( $model->source );
$model->source = 'new value';
var_dump( $model->source );