burzum/cakephp-config-objects

此包已被弃用且不再维护。未建议替代包。

使用对象而非数组进行配置

安装: 0

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

开放问题: 1

类型:cakephp-plugin

1.0.0-rc1 2017-07-05 23:43 UTC

This package is auto-updated.

Last update: 2021-01-31 00:30:49 UTC


README

对象!?为什么不是数组?

你应该使用对象而不是数组,因为

  • 如果数组确实是预期的配置,则无法进行类型检查
  • 配置数组中容易出错
  • 配置与类分离,与使用 InstanceConfigTrait 不同
  • 可选额外优势:数组不会带来配置数据的轻松验证

因此,而不是做这样的事情

class Foo(array $config);

这样做

class Foo(FooConfig $config);

如何使用它

创建你的配置对象

use Burzum\ObjectConfig\Config;

class FooConfig extends Config {

	protected $_defaultConfig = [
		// Set your default values here
	];

	/* Your setter / getter methods go here */
}

然后只需使用它

$config = new FooConfig();
$config->setBar('some-value);

class Foo {

	protected $config;

	public function __construct(FooConfig $config)
	{
		$this->config = $config;
	}
}

$foo = new Foo($config);

将数组迁移到对象

对于软迁移路径,你仍然可以这样做

class Foo {

	protected $config;

	public function __construct(array $config = [])
	{
		$this->config = FooConfig::createFromArray($config);
	}
}

数组访问

Config 类实现了 \ArrayAccess。因此,即使你更改了方法的签名以要求特定类型的对象,你的底层代码仍然可以像数组一样访问配置

$config = new Config();
$config['arrayaccess'] = 'value';

echo $config['arrayaccess'];

或者,你可以通过调用来简单地获取整个配置作为数组

$configArray = $config->toArray();

许可

版权 2013 - 2017 Florian Krämer

根据MIT 许可许可。包含在此存储库中的源代码的分发必须保留每个文件中找到的版权声明。