92 lines
2.4 KiB
Markdown
92 lines
2.4 KiB
Markdown
[![Total Downloads](https://img.shields.io/packagist/dt/cakephp/utility.svg?style=flat-square)](https://packagist.org/packages/cakephp/utility)
|
|
[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE.txt)
|
|
|
|
# CakePHP Utility Classes
|
|
|
|
This library provides a range of utility classes that are used throughout the CakePHP framework
|
|
|
|
## What's in the toolbox?
|
|
|
|
### Hash
|
|
|
|
A ``Hash`` (as in PHP arrays) class, capable of extracting data using an intuitive DSL:
|
|
|
|
```php
|
|
$things = [
|
|
['name' => 'Mark', 'age' => 15],
|
|
['name' => 'Susan', 'age' => 30],
|
|
['name' => 'Lucy', 'age' => 25]
|
|
];
|
|
|
|
$bigPeople = Hash::extract($things, '{n}[age>21].name');
|
|
|
|
// $bigPeople will contain ['Susan', 'Lucy']
|
|
```
|
|
|
|
Check the [official Hash class documentation](https://book.cakephp.org/4/en/core-libraries/hash.html)
|
|
|
|
### Inflector
|
|
|
|
The Inflector class takes a string and can manipulate it to handle word variations
|
|
such as pluralizations or camelizing.
|
|
|
|
```php
|
|
echo Inflector::pluralize('Apple'); // echoes Apples
|
|
|
|
echo Inflector::singularize('People'); // echoes Person
|
|
```
|
|
|
|
Check the [official Inflector class documentation](https://book.cakephp.org/4/en/core-libraries/inflector.html)
|
|
|
|
### Text
|
|
|
|
The Text class includes convenience methods for creating and manipulating strings.
|
|
|
|
```php
|
|
Text::insert(
|
|
'My name is :name and I am :age years old.',
|
|
['name' => 'Bob', 'age' => '65']
|
|
);
|
|
// Returns: "My name is Bob and I am 65 years old."
|
|
|
|
$text = 'This is the song that never ends.';
|
|
$result = Text::wrap($text, 22);
|
|
|
|
// Returns
|
|
This is the song
|
|
that never ends.
|
|
```
|
|
|
|
Check the [official Text class documentation](https://book.cakephp.org/4/en/core-libraries/text.html)
|
|
|
|
### Security
|
|
|
|
The security library handles basic security measures such as providing methods for hashing and encrypting data.
|
|
|
|
```php
|
|
$key = 'wt1U5MACWJFTXGenFoZoiLwQGrLgdbHA';
|
|
$result = Security::encrypt($value, $key);
|
|
|
|
Security::decrypt($result, $key);
|
|
```
|
|
|
|
Check the [official Security class documentation](https://book.cakephp.org/4/en/core-libraries/security.html)
|
|
|
|
### Xml
|
|
|
|
The Xml class allows you to easily transform arrays into SimpleXMLElement or DOMDocument objects
|
|
and back into arrays again
|
|
|
|
```php
|
|
$data = [
|
|
'post' => [
|
|
'id' => 1,
|
|
'title' => 'Best post',
|
|
'body' => ' ... '
|
|
]
|
|
];
|
|
$xml = Xml::build($data);
|
|
```
|
|
|
|
Check the [official Xml class documentation](https://book.cakephp.org/4/en/core-libraries/xml.html)
|