jfcherng / php-whitelist-fluent
Base class for data structure with restricted attributes.
Fund package maintenance!
www.paypal.me/jfcherng/5usd
Installs: 9 682
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 1
Requires
- php: >=8.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-12-06 16:52:13 UTC
README
Base class for data structure with restricted attributes.
Installation
# 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
Example
<?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);