southcoast / helpers
A Collection of helper classes for PHP
Installs: 1 343
Dependents: 4
Suggesters: 0
Security: 0
Stars: 2
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-10-29 04:59:04 UTC
README
A Collection of helper classes for PHP
Could be installed via composer:
$ composer require southcoast/helpers:dev-master
Or by manually downloading the .zip file.
Array Helper
ArrayHelper::Map(array $map, array $array): array;
$map array The mapping $array array The original array where data should come from Returns array The mapped array
This method allows you to map an existing array to a new one. It has support for dot notation for use of multidimensional arrays. Both for the 'field' and the mapping keys
Accepted keys in the mapping array:
[ 'field' => 'The key to the field from the original $array', 'alt_field' => 'An alternative key in the original $array for when the primary field is not found or returns null', 'value' => 'A static value, or mutation of the value, This will over ride the value of the primary field', 'or' => 'A static value that should be used', 'add' => 'If the field should be used or not, accepts true or false values' ]
Mapping Example:
$map = [ // The Key is the to be used key for the Array // The value of 'field' is the value origin 'New_Name' => ['field' => 'old_name'], // Add 'value' to add custom value or value mutation 'Email' => ['value' => 'Some Other Value'], // Add '.' separators for sub objects 'Email.primary' => ['field' => 'email'], // Use '0' for arrays 'Addresses.0.street' => ['field' => 'address_1_line_1'], // Get a value from a multidimensional source 'isDefault' => ['field' => 'meta.system.default'], // Add the 'or' field to supply a value that will used if the value from the original array is not found or null 'automated' => ['field' => 'system.automated', 'or' => 'nope, not automated'] // Use the 'add' field to specify if this field should be added 'someAwesomeField' => ['field' => 'getMyValue', 'add' => false] // Wont be added 'someAwesomeField' => ['field' => 'getMyValue', 'add' => true] // Will be added // Add an alternative field to the mapping if the original field is missing or returned null 'arbitraryKey' => ['field' => 'getItFromHere', 'alt_field' => 'or_from_here', 'or' => 'a default value'] ];
Example:
$array = [ 'key_1' => 'value_1', 'key_2' => 'value_2', 'array' => [ 'a_key_1' => 'a_value_1', 'a_key_2' => 'a_value_2', 'a_key_3' => null ] ]; $map = [ 'field_one' => ['field' => 'array.a_key_1'], 'field_two' => ['field' => 'key_1', 'add' => false], 'field_three' => ['value' => 'new_value'], 'field_four' => ['field' => 'array.a_key_5', 'alt_field' => 'key_2'], 'field_five' => 'This Value', 'array.a_field' => ['field' => 'array.a_key_3', 'or' => 'nope, no value'], 'array.0' => ['field' => 'array.a_key_2'] ]; $result = ArrayHelper::map($map, $array); $result = [ /* The key 'field_one' had the value of array['a_key_1'] */ 'field_one' => 'a_value_1', /* The key 'field_two' was not added, because 'add' was false */ /* The key 'field_three' has a custom value */ 'field_three' => 'new_value', /* The key 'field_four' now bears the value of 'key_2' because 'array.a_key_5' could not be found */ 'field_four' => 'value_2', /* The key 'field_five' also carries a custom value */ 'field_five' => 'This Value', /* The key 'array' now contains an array */ 'array' => [ /* With a key 'a_field' with the 'or' value because 'array.a_key_3' has a null value */ 'a_field' => 'nope, no value', /* Also a numeric key was added with the value of 'array.a_key_2' */ 0 => 'a_value_2' ] ]
Environment
Create a file called 'sc.env'. This file should contain the following structure:
{ "dev": true, "machine": "<Machine ID/Developer ID>", "...": "Any other parameters you'd like to add to your environment" }
In your main php file load the env file.
$path_to_env = './sc.env'; Env::load($path_to_env);