nekoos-pood / camelcase-arrayobject-mutator
Object accessible as array that use keys with camelcase standard
Installs: 1 646
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.1.0
- nekoos-pood/bitwise-flag: ^0.1.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-10-29 06:11:40 UTC
README
This is a utility that allows you to use an array-object that ignores key style cases and mutate the keys as camel case style
Install
composer require nekoos-pood/camelcase-arrayobject-mutator
Definition
This entity implements ArrayObject
see Documentation
Usage
use NekoOs\Pood\Support\CamelCaseArrayObjectMutator;
Basic use
$thing = new CamelCaseArrayObjectMutator([ 'this is first item with increment key', 'associative-key' => 'this is item with associative key' ]); $thing->snake_case = 'this is item with key using snake case'; $thing['kebab-case'] = 'this is item with key using kebab case'; $thing[] = 'this is item with key using increment key'; $thing['snake_case'] // return 'this is item with key using snake case' $thing['kebab-case'] // return 'this is item with key using kebab case' $thing[0] // return 'this is first item with increment key' $thing[1] // return 'this is item with key using increment key' $thing['kebab-case'] // return 'this is item with key using kebab case' $thing['snakeCase'] // return 'this is item with key using snake case' $thing['kebabCase'] // return 'this is item with key using kebab case' $thing->snake_case // return 'this is item with key using snake case' $thing->snakeCase // return 'this is item with key using snake case' $thing->kebabCase // return 'this is item with key using kebab case' $thing->undefined // throw error 'Undefined property: NekoOs\Pood\Support\CamelCaseArrayObjectMutator::$undefined' get_object_vars($thing) // return array ( // 'associativeKey' => 'this is item with associative key', // 'snakeCase' => 'this is item with key using snake case', // 'kebabCase' => 'this is item with key using kebab case', // )
The object ignores the case styles of the keys
$thing->snakeCase = 'replace value with key using snake case' $thing['kebabCase'] = 'replace value with key using kebab case' $thing['snake_case'] // return 'replace value with key using snake case' $thing['kebab-case'] // return 'replace value with key using kebab case' $thing['snakeCase'] // return 'replace value with key using snake case' $thing['kebabCase'] // return 'replace value with key using kebab case' $thing->snake_case // return 'replace value with key using snake case' $thing->snakeCase // return 'replace value with key using snake case' $thing->kebabCase // return 'replace value with key using kebab case'
How to get the values with original indexes?
$thing->getStorage()
Custom use
// change behavior from instance as object common without mutation of keys $thing->behavior(CamelCaseArrayObjectMutator::PREFER_ORIGINAL_KEYS); get_object_vars($thing) // return array ( // 'associative-key' => 'this is item with associative key', // 'snake_case' => 'this is item with key using snake case', // 'kebab-case' => 'this is item with key using kebab case', // )
Global configuration
// change behavior by default as object common without mutation of keys CamelCaseArrayObjectMutator::defaultBehavior(CamelCaseArrayObjectMutator::PREFER_ORIGINAL_KEYS); // Enabled throw errors by default on undefined fields CamelCaseArrayObjectMutator::defaultBehavior(CamelCaseArrayObjectMutator::DEBUG_ON_UNDEFINDED); // Disabled throw errors by default on undefined fields CamelCaseArrayObjectMutator::defaultBehavior(~CamelCaseArrayObjectMutator::DEBUG_ON_UNDEFINDED);