PHP code example of sbwerewolf / language-specific
1. Go to this page and download the library: Download sbwerewolf/language-specific library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sbwerewolf / language-specific example snippets
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$payload = [
'user' => [
'id' => '42',
'role' => 'admin',
],
];
$data = new AdvancedArrayFactory()->makeAdvancedArray($payload);
$userId = $data->pull('user')->get('id')->int(); // 42
$timezone = $data->pull('user')->get('timezone')->default('UTC')->str(); // 'UTC'
// -- OR --
$user = $data->pull('user');
$userId = $user->get('id')->int(); // 42
$timezone = $user->get('timezone')->default('UTC')->str(); // 'UTC'
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$config = $factory->makeAdvancedArray([
'app' => [
'cache' => [
'driver' => 'redis',
],
],
]);
$driver = $config
->pull('app')
->pull('cache')
->get('driver')
->default('file')
->str();
$driver; // 'redis'
$fallback = $config
->pull('app')
->pull('queue')
->get('driver')
->default('sync')
->str();
$fallback; // 'sync'
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$payload = $factory->makeAdvancedArray([
'user' => [
'id' => '42',
'is_admin' => '1',
],
]);
$userId = $payload->pull('user')->get('id')->int(); // 42
$isAdmin = $payload->pull('user')->get('is_admin')->bool(); // true
$timezone = $payload->pull('user')->get('timezone')->default('UTC')->str();
// 'UTC'
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$legacy = $factory->makeCommonArray('legacy-value');
$legacy->hasAny(); // true
$legacy->getAny()->str(); // 'legacy-value'
$legacy->get(0)->str(); // 'legacy-value'
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
'service' => [
'name' => 'Billing',
],
]);
$data->isDummy(); // false
$data->pull('service')->get('name')->str(); // 'Billing'
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
[
'config' => [
'env' => [
'name' => 'production',
],
],
],
'meta' => [
'region' => 'eu',
],
]);
$data->pull()->pull('config')->pull('env')->get('name')->str(); // 'production'
$data->pull('meta')->get('region')->str(); // 'eu'
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
'first' => [
'A' => 1,
],
]);
$data->pull('first')->isDummy(); // false
$data->pull('missing')->isDummy(); // true
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
'name' => 'Mike',
'salary' => 19999.99,
]);
$data->get('name')->str(); // 'Mike'
$data->get('salary')->int(); // 19999
$data->get('missing')->asIs(); // null
$data->get('missing')->isReal(); // false
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$filled = $factory->makeAdvancedArray([
'first' => 'A',
'second' => 'B',
]);
$filled->getAny()->str(); // 'A'
$filled->getAny()->isReal(); // true
$empty = $factory->makeAdvancedArray([]);
$empty->getAny()->asIs(); // null
$empty->getAny()->isReal(); // false
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
0 => 'first',
'next' => 2,
]);
$data->has(0); // true
$data->has('next'); // true
$data->has('missing'); // false
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$filled = $factory->makeAdvancedArray([
'first' => 1,
]);
$filled->hasAny(); // true
$empty = $factory->makeAdvancedArray([]);
$empty->hasAny(); // false
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
[
'name' => 'first',
],
[
'name' => 'second',
],
'tail',
]);
$names = [];
foreach ($data->arrays() as $nested) {
$names[] = $nested->get('name')->str();
}
$names; // ['first', 'second']
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
[
'skip' => true,
],
'first',
'next',
'last',
]);
$values = [];
foreach ($data->values() as $value) {
$values[] = $value->str();
}
$values; // ['first', 'next', 'last']
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$value = CommonValueFactory::makeCommonValue([
'env' => 'prod',
]);
$value->asIs(); // ['env' => 'prod']
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$dummy = CommonValueFactory::makeCommonValueAsDummy();
$dummy->isReal(); // false
$dummy->asIs(); // null
$dummy->default('fallback')->str(); // 'fallback'
$real = CommonValueFactory::makeCommonValue('real value');
$real->isReal(); // true
$real->default('fallback')->str(); // 'real value'
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$value = CommonValueFactory::makeCommonValue('1.1');
$value->str(); // '1.1'
$value->int(); // 1
$value->double(); // 1.1
$value->bool(); // true
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$stringValue = CommonValueFactory::makeCommonValue('release');
$stringValue->array(); // ['release']
$arrayValue = CommonValueFactory::makeCommonValue([
'env' => 'prod',
]);
$arrayValue->array(); // ['env' => 'prod']
use SbWereWolf\LanguageSpecific\Value\CommonValue;
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$inner = CommonValueFactory::makeCommonValue(1);
$outer = CommonValueFactory::makeCommonValue($inner);
$object = $outer->object();
$object instanceof CommonValue; // true
$object->asIs(); // 1
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$stream = fopen('php://memory', 'r');
$results = [
CommonValueFactory::makeCommonValue(null)->type(), //'NULL'
CommonValueFactory::makeCommonValue(false)->type(), //'boolean'
CommonValueFactory::makeCommonValue(0)->type(), //'integer'
CommonValueFactory::makeCommonValue(0.1)->type(), //'double'
CommonValueFactory::makeCommonValue('a')->type(), //'string'
CommonValueFactory::makeCommonValue([])->type(), //'array'
CommonValueFactory::makeCommonValue((object) null)->type(), //'object'
CommonValueFactory::makeCommonValue($stream)->type(), //'resource'
];
fclose($stream);
$results[] = CommonValueFactory::makeCommonValue($stream)->type();
// 'resource (closed)'
$results;
/*
[
'NULL',
'boolean',
'integer',
'double',
'string',
'array',
'object',
'resource',
'resource (closed)',
]
*/
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
final class DocumentationNamedExampleClass
{
}
$stream = fopen('php://memory', 'r');
$anonymous = new class () {
};
$results = [
CommonValueFactory::makeCommonValue(null)->class(), // null
CommonValueFactory::makeCommonValue(false)->class(), // bool
CommonValueFactory::makeCommonValue(0)->class(), // int
CommonValueFactory::makeCommonValue(0.1)->class(), // float
CommonValueFactory::makeCommonValue('a')->class(), // string
CommonValueFactory::makeCommonValue([])->class(), // array
CommonValueFactory::makeCommonValue((object) null)->class(), // stdClass
CommonValueFactory::makeCommonValue(new DocumentationNamedExampleClass())->class(),
// DocumentationNamedExampleClass
CommonValueFactory::makeCommonValue($anonymous)->class(), // class@anonymous
CommonValueFactory::makeCommonValue($stream)->class(), // resource (stream)
];
fclose($stream);
$results[] = CommonValueFactory::makeCommonValue($stream)->class();
// resource (closed)
$results;
/*
[
'null',
'bool',
'int',
'float',
'string',
'array',
'stdClass',
'DocumentationNamedExampleClass',
'class@anonymous',
'resource (stream)',
'resource (closed)',
]
*/
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$data = $factory->makeBaseArray('legacy-value');
$data->raw(); // ['legacy-value']
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$data = $factory->makeCommonArray([
'id' => '42',
'enabled' => '1',
]);
$data->get('id')->int(); // 42
$data->get('enabled')->bool(); // true
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$data = $factory->makeCommonArray([
'name' => 'Alice',
'age' => '31',
]);
$data->get('name')->str(); // 'Alice'
$data->get('age')->int(); // 31
$data->get('missing')->isReal(); // false
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$filled = $factory->makeCommonArray([
'first' => 'A',
'second' => 'B',
]);
$filled->getAny()->str(); // 'A'
$empty = $factory->makeCommonArray([]);
$empty->getAny()->isReal(); // false
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$data = $factory->makeCommonArray([
0 => 'first',
'next' => 2,
]);
$data->has(0); // true
$data->has('next'); // true
$data->has('missing'); // false
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$filled = $factory->makeCommonArray([
'first' => 1,
]);
$filled->hasAny(); // true
$empty = $factory->makeCommonArray([]);
$empty->hasAny(); // false
use SbWereWolf\LanguageSpecific\Collection\ArrayFactory;
$factory = new ArrayFactory();
$data = $factory->makeBaseArray([
0 => 'first',
'index' => 20,
3 => 'last',
]);
$data->raw();
/*
[
0 => 'first',
'index' => 20,
3 => 'last',
]
*/
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$dummy = $factory->makeDummyAdvancedArray();
$dummy->isDummy(); // true
$dummy->hasAny(); // false
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$value = CommonValueFactory::makeCommonValue([
'region' => 'eu',
]);
$value->array()['region']; // 'eu'
use SbWereWolf\LanguageSpecific\Value\CommonValueFactory;
$dummy = CommonValueFactory::makeCommonValueAsDummy();
$dummy->isReal(); // false
$dummy->default('fallback')->str(); // 'fallback'
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
'name' => 'Billing',
'active' => true,
]);
$data['name']->str(); // 'Billing'
$data['active']->bool(); // true
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
'name' => 'Billing',
'active' => true,
]);
$result = [];
foreach ($data as $key => $value) {
$result[$key] = $value->asIs();
}
$result; // ['name' => 'Billing', 'active' => true]
use SbWereWolf\LanguageSpecific\AdvancedArrayFactory;
$factory = new AdvancedArrayFactory();
$data = $factory->makeAdvancedArray([
'name' => 'Billing',
'flags' => [
'active' => true,
],
]);
echo json_encode($data, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR);
/*
{
"name": "Billing",
"flags": {
"active": true
}
}
*/