%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/vendor/jasny/twig-extensions/src/ |
Upload File : |
<?php
namespace Jasny\Twig;
/**
* Expose PHP's array functions to Twig
*/
class ArrayExtension extends \Twig_Extension
{
/**
* Return extension name
*
* @return string
*/
public function getName()
{
return 'jasny/array';
}
/**
* Callback for Twig
* @ignore
*/
public function getFilters()
{
return [
new \Twig_SimpleFilter('sum', [$this, 'sum']),
new \Twig_SimpleFilter('product', [$this, 'product']),
new \Twig_SimpleFilter('values', [$this, 'values']),
new \Twig_SimpleFilter('as_array', [$this, 'asArray']),
new \Twig_SimpleFilter('html_attr', [$this, 'htmlAttributes']),
];
}
/**
* Calculate the sum of values in an array
*
* @param array $array
* @return int
*/
public function sum($array)
{
return isset($array) ? array_sum((array)$array) : null;
}
/**
* Calculate the product of values in an array
*
* @param array $array
* @return int
*/
public function product($array)
{
return isset($array) ? array_product((array)$array) : null;
}
/**
* Return all the values of an array or object
*
* @param array|object $array
* @return array
*/
public function values($array)
{
return isset($array) ? array_values((array)$array) : null;
}
/**
* Cast value to an array
*
* @param object|mixed $value
* @return array
*/
public function asArray($value)
{
return is_object($value) ? get_object_vars($value) : (array)$value;
}
/**
* Cast an array to an HTML attribute string
*
* @param mixed $array
* @return string
*/
public function htmlAttributes($array)
{
if (!isset($array)) {
return null;
}
$str = "";
foreach ($array as $key => $value) {
if (!isset($value) || $value === false) {
continue;
}
if ($value === true) {
$value = $key;
}
$str .= ' ' . $key . '="' . addcslashes($value, '"') . '"';
}
return trim($str);
}
}