Ajudante de modelo para PHP
- Para auxiliar na saída de matrizes de dados para uma página, usei os heredocs php nativos, array_map, funções anônimas (Lambda) para criar fechamentos [introduzidos no PHP 5.3] e uma função auxiliar de saída.
Função auxiliar de saída
// If var not empty then return result otherwise return the var
$if = function ($var, $result = false) {
return empty($var) ? false : ($result ? $result : $var);
};
Uso: Exemplo Básico
<h1 class="name"><?= $if($single_details["title"]); ?></h2>
Uso: Exemplo Avançado
<?= $if($group_social, $social_icons_markup($group_social)) ?>
// Render social item
$renderSocialItem = function ($outlet) {
$type = $outlet["type"];
$url = $outlet["url"];
return <<< EOD
<a class="{$type}" href="{$url}" target="_blank">
<span class="icon"></span>
</a>
EOD;
};
// Create a closure using anonymous function
$social_icons_markup = function ($group_social) use ($renderSocialItem) {
return implode(array_map($renderSocialItem, $group_social));
};
?>