Inspired by Respect/Validation, that library transforms an input string (or float / int / bool) to an output string, after applying rules.
The benefit using it is that it a generic wrapper for any kind of transformation. Also it throws Exceptions and allows to chain the transformations.
It's pretty simple to use. suppose you need to transform a date "31-12-2012" to another format such as "2012-12-31". Just do:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Inet\Transformation\Transform as T;
$dateEntered = '31-12-2012';
$output = T::Date('d-m-Y', 'Y-m-d')->transform($dateEntered);
echo $output;Now if you need to change the format then the Timezone:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Inet\Transformation\Transform as T;
$dateEntered = '31-12-2012 23:21:58';
$output = T::Date('d-m-Y H:i:s', 'Y-m-d H:i:s')->Timezone('Y-m-d H:i:s', 'Asia/Calcutta')->transform($dateEntered);
// Displays: 2013-01-01 03:51:58
echo $output;For now there is only a few rules. I'll add more later, and don't hesitate if you want to contribute.
Call any php function on input. The input will be passed as the last argument of the function.
T::Callback('sprintf', "REF%'06d")->transform(1234); // REF001234Copy a file with a filename to a UUID generated name. Return the generated UUID.
T::CopyFileToUuid('/var/www/upload/', '/var/www/unified_upload')->transform('quotes/client_01.pdf'); // 123e4567-e89b-12d3-a456-426655440000
## Concat(string $before, [string $after])
Append and prepend string to input.
```php
T::Concat('REF')->transform('1234'); // REF1234
T::Concat('REF', 'AB')->transform('1234'); // REF1234ABTransforms a date from a format to another.
See example above
Explode a string to an array using a delimiter. Uses explode function from PHP.
It returns an array.
T::Explode(',')->transform('foo,bar,baz'); // array('foo', 'bar', 'baz');
T::Explode(',')->Implode('|')->transform('foo,bar,baz'); // foo|bar|bazEncode special chars. Uses htmlspecialchars function from PHP.
T::Htmlspecialchars(['ENT_QUOTES'])->transform("l'arbre"); // l'arbre
T::Htmlspecialchars(['ENT_QUOTES'], 'UTF-8', false)->transform("l'arbre"); // l'arbreDecode special chars. Uses htmlspecialchars_decode function from PHP.
T::HtmlspecialcharsDecode(['ENT_QUOTES'])->transform("l'arbre"); // l'arbreJoin an array elements to a string. Uses implode function from PHP.
T::Implode('@')->transform(array('foo', 'bar')); // foo@barTry to replace the input with the value in the mapping. It can also work with an array as input. Values not found in mapping are return without tranformations
$mapping = array(
'1' => 'key1',
'10' => 'key10',
);
T::Map($mapping)->transform('1'); // key1
T::Map($mapping)->transform(array('10', '1')); // array('key10', 'key1')
T::Map($mapping)->transform('unknown key'); // unknown keyReturn the MimeType of the file. The first optional parameter allow to specify a root directory prepend to the filename
T::MimeType()->transform('test.jpg'); // image/jpeg
T::MimeType('uploads')->transform('logo.png'); // image/pngPrepend a default protocol if not present to any url.
T::NormalizeURL('http')->transform('https://www.google.com'); // https://www.google.com
T::NormalizeURL('http')->transform('www.google.com'); // http://www.google.com
T::NormalizeURL('http')->transform('ssh://github.com'); // ssh://github.com
T::NormalizeURL('ssh')->transform('github.com'); // ssh://github.comReplace a string by another (does the same than str_replace).
T::Replace('a', 'b')->transform('ababa'); // bbbbbReplace a pattern by a replacement (does the same than preg_replace).
T::ReplaceRegexp('/^fox/', 'rabbit')->transform('fox and foxes'); // rabbit and foxesUses Cocur\Slugify to Slugify a string.
T::Slugify()->transform('Bonjour tôôut le monde !'); // bonjour-toout-le-mondeUses settype from PHP for type casting.
T::SetType('bool')->transform('1'); // true
T::SetType('bool')->transform('0'); // false
T::SetType('bool')->transform(array()); // falseMap multiple values from a string or an array
and return a string encoded for database storage of SugarCRM multi enum field.
String are exploded first with the default separator |.
You can set the following options
separator: Separator to use to explode input string. Default:|from_multi_enum: If true parse the input string as a SugarCRM multi enum field. Default:false
$mapping = array(
'1' => 'key1',
'10' => 'key10',
);
T::SugarCRMMapMultiEnum($mapping)->transform('1|10'); // ^key1^,^key10^
T::SugarCRMMapMultiEnum($mapping)->transform(array('1', '10'); // ^key1^,^key10^
T::SugarCRMMapMultiEnum($mapping)->transform('^1^,^23^', array('from_multi_enum' => true)); // ^key1^,^23^Change the Timezone of a Date by providing the format, the target Timezone and optionnaly the timezone for the current date.
See example above



