Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork1
StrObj is a php micro-library providing a fluent code interface for object manipulation using string parameters.
License
uuur86/strobj
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PHP String Objects is a library that provides an easy and intuitive interface for working with PHP arrays and objects. With built-in validation and filtering, it makes it easier to access, manipulate and validate data, saving you time and frustration.
- Allows accessing objects via strings
- Allows checking if the values of objects are valid using pre-defined or custom validation rules
- Provides middleware functionality to set memory limits or other configurations
- Provides data filters to manipulate the values of objects
- Can be used to set or get values of objects and arrays in a simplified manner
To install the library, run the following Composer command:
composer require uuur86/strobj
To get started with PHP String Objects, include the following code at the top of your PHP file:
useStrObj\StringObjects;require('vendor/autoload.php');
Here is an example of how to use PHP String Objects to access and manipulate data in a JSON string:
useStrObj\StringObjects;require('vendor/autoload.php');// String JSON data to be used// or you can use an object/array$persons ='{ "persons": [ { "name": "John Doe", "age": "twelve" }, { "name": "Molly Doe", "age": "14" }, { "name": "Lorem Doe", "age": "34" }, { "name": "Ipsum Doe", "age": "21" } ]}';$test = StringObjects::instance($persons, ['validation' => ['patterns' => [// Add a new pattern named 'age' which only accepts numbers'age' =>'#^[0-9]+$#siu',// Add a new pattern named 'name' which only accepts letters and spaces'name' =>'#^[a-zA-Z ]+$#siu', ],'rules' => [// first rule [// path scope to be checked'path' =>'persons/*/age',// uses 'age' pattern'pattern' =>'age',// makes it required'required' =>true ],// second rule ['path' =>'persons/*/name','pattern' =>'name','required' =>true ], ], ],'middleware' => [// Sets memory limit to 3MB'memory_limit' =>1024 *1024 *3, ],// Output data filters'filters' => [// Filters all persons/*/age values'persons/*/age' => [// converts to integer'type' =>'int',// only accepts values greater than 10'callback' =>function ($value) {return$value >10; } ],'persons/*/name' => [// converts to string (not necessary)'type' =>'string',// only accepts values which contains only letters and spaces'callback' =>function ($value) {returnpreg_match('#^[a-zA-Z ]+$#siu',$value); } ], ], ]);// Falsevar_dump($test->isValid('persons/0/age'));// Truevar_dump($test->isValid('persons/1/age'));// Falsevar_dump($test->isValid('persons/*/age'));// Falsevar_dump($test->isValid('persons'));// Updates value of persons/0/name$test->set('persons/0/name','John D.');// Updates value of persons/0/age$test->set('persons/0/age',12);// Adds a new person named "Neo Doe" with age 199$test->set('persons/4/name','Neo Doe');$test->set('persons/4/age',199);// Outputs "John D."$test->get('persons/0/name');// Outputs "12"$test->get('persons/3/age');// Outputs "Neo Doe"$test->get('persons/4/name');// Outputs "199"$test->get('persons/4/age');// Updates value of persons/4/age to "200"$test->set('persons/4/age',200);// Outputs "200"$test->get('persons/4/age');
composertest
or
php vendor/bin/phpunit tests/TestScenarios
GPL-2.0-or-later
Uğur Biçer - @uuur86
If you want to contribute to this project, you can send pull requests. We expect all contributors to follow ourCode of Conduct.
You can contact me via email:contact@codeplus.dev
You can report bugs via github issues.
If you find a security issue, please report it via email:contact@codeplus.dev
If you want to support me, you can donate via github sponsors:https://github.com/sponsors/uuur86
- uuur86/wpoauth - Wordpress OAuth2 Client
- @codeplusdev - Codeplus Development
About
StrObj is a php micro-library providing a fluent code interface for object manipulation using string parameters.
Topics
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.