承接 dgifford/property-setter-trait 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dgifford/property-setter-trait

Composer 安装命令:

composer require dgifford/property-setter-trait

包简介

Trait providing methods to set class properties with an array.

README 文档

README

Provides a method to set properties of a class with an array.

class Foo
{
	Use \dgifford\Traits\PropertySetterTrait;



	public $string = '';

	public $array = [];

	public $bool = false;

	public $anything;

	protected $cannot_be_set;



	public function __construct( $properties = [] )
	{
		/*
			Set public properties from $properties array.
			Only sets properties if they are the same type.
			$anything can be set to any type because it is null.
		*/
		$this->setPublicProperties( $properties, true );
	}
}


$foo = new Foo([

	'string' 	=> 'Hello world',
	'array' 	=> ['Hello world'],
	'bool' 		=> false,
	'anything' 	=> 'Hello world',

]);

echo Foo->string; // 'Hello world'

The value in the array will only be used if it is of the same type as the default property in the class.

Automatically calling setter methods


If a method doesn't exist for setting the property, a `BadMethodCallException` is thrown.

class Foo
{
	Use \dgifford\Traits\PropertySetterTrait;



	public $string = '';

	public $array = [];

	public $bool = false;

	public $anything;

	protected $cannot_be_set;



	public function __construct( $properties = [] )
	{
		/*
			Set public properties from $properties array.
			Only set properties if they are the same type 	
			by setting the second argument to true.
			$anything can be set to any type because it is null.
		*/
		$this->setPublicProperties( $properties, 'set_' );
	}



	/**
	 * Method for setting the $string property.
	 */
	public function set_string( $value = '' )
	{
		if( is_string( $value ) )
		{
			this->string = $value;
		}
	}
}


$foo = new Foo([
	'string' 	=> false,
]);

echo Foo->string; // ''

$foo = new Foo([
	'string' 	=> 'Hello world',
]);

echo Foo->string; // 'Hello world'

Calling all setter methods

The `callAllSetters()` method retreives all properties in a class and passes them to any setter methods that exist.

This can be used for more complex manipulation of properties (e.g. after using `setPublicProperties()` )

class Foo
{
	Use dgifford\Traits\PropertySetterTrait;



	public $anything;

	protected $protected;



	public function set_anything()
	{
		$this->anything = 'anything';
	}
	


	public function set_protected()
	{
		$this->protected = 'protected';
	}



	public function getProtected()
	{
		return $this->protected;
	}
}


$foo = new Foo;

$foo->callAllSetters();

echo $foo->anything; // 'anything'
echo $foo->getProtected(); // 'protected'

dgifford/property-setter-trait 适用场景与选型建议

dgifford/property-setter-trait 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5.68k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2016 年 09 月 16 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「array」 「trait」 「properties」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 dgifford/property-setter-trait 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 dgifford/property-setter-trait 我们能提供哪些服务?
定制开发 / 二次开发

基于 dgifford/property-setter-trait 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 5.68k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2016-09-16