jfcherng / php-whitelist-fluent
限制属性的数据结构的基类。
2.0.0
2023-03-04 12:43 UTC
Requires
- php: >=8.1
Requires (Dev)
README
限制属性的数据结构的基类。
安装
# if PHP ^8.1 is used composer require jfcherng/php-whitelist-fluent # if PHP ^7.1.3 is used composer require jfcherng/php-whitelist-fluent:dev-php71 # if PHP ^5.5 is used composer require jfcherng/php-whitelist-fluent:dev-php5
示例
<?php include __DIR__ . '/vendor/autoload.php'; use Jfcherng\Utility\WhitelistFluent; // extend your own class with WhitelistFluent /** * @property int $code the error code * @property array $data the output data * @property string $msg the message */ class ApiResponse extends WhitelistFluent { /** * {@inheritdoc} */ protected $attributes = [ 'code' => 0, 'msg' => '', 'data' => [], ]; } $resp = new ApiResponse(); // 2 ways to get an attribute $resp['code']; $resp->code; // 3 ways to set an attribute $resp->code(200); $resp['code'] = 200; $resp->code = 200; // method chaining $resp ->code(500) ->msg('something goes wrong') ->data([]); // trying to set a nonexistent attribute would throw InvalidArgumentException $resp->nonexistent('hello'); $resp['nonexistent'] = 'hello'; $resp->nonexistent = 'hello'; // get attributes in array form $resp->toArray(); // get attributes in json string form $jsonFlag = JSON_PRETTY_PRINT; $resp->toJson($jsonFlag); json_encode($resp, $jsonFlag);