laminas/laminas-filter
A collection of reusable data filters for PHP apps. Provides string and numeric normalization, file and HTML filters, and a plugin manager to compose filter chains. Useful for sanitizing and transforming input consistently across Laminas and other frameworks.
Following is a basic example of using a filter upon two input data, the
ampersand (&) and double quote (") characters:
$htmlEntities = new Laminas\Filter\HtmlEntities();
echo $htmlEntities->filter('&'); // &
echo $htmlEntities->filter('"'); // "
The interface Laminas\Filter\FilterInterface contains also the magic method __invoke().
This allows to use a filter as an invokable:
$strtolower = new Laminas\Filter\StringToLower;
echo $strtolower('I LOVE Laminas!'); // i love laminas!
$laminaslove = $strtolower('I LOVE Laminas!');
When using two filters in succession, you have to keep in mind that it is often not possible to get the original output by using the opposite filter. Take the following example:
$original = 'my_original_content';
// Attach a filter
$filter = new Laminas\Filter\Word\UnderscoreToCamelCase();
$filtered = $filter->filter($original);
// Use it's opposite
$filter2 = new Laminas\Filter\Word\CamelCaseToUnderscore();
$filtered = $filter2->filter($filtered)
The above code example could lead to the impression that you will get the
original output after the second filter has been applied. But thinking logically
this is not the case. After applying the first filter, my_original_content will
be changed to MyOriginalContent. But after applying the second filter, the result
is My_Original_Content.
As you can see it is not always possible to get the original output by using a filter which seems to be the opposite. It depends on the filter and also on the given input.
How can I help you explore Laravel packages today?