Posted by oskar_calvo on June 9, 2017 at 9:43am
Buenas gente, tengouna duda, que tiene más que ver con calidad (rendimiento de recursos) y buenas práctias que otra cosa.
tengo un preprocess que llama a um método estático que simplemente comprueba 3 parámetros y devuelve true/false.
El caso es que si lo hago mediante el método estático el consumo de recursos es mayor que si simplemente escribo el operador if con sus comprobaciones.
Pero por otro lado creo que a nivel de legibilidad es más limpio usar el método estático.
el método es muy sencillo:
static public function is_actualites_guides($view) {
if(is_object($view) &&
$view->tag === 'actualites_guides' &&
isset($view->display[$view->current_display]->display_options['xxxx_views'])
){
return TRUE;
}
return FALSE;
}Vosotros que opinaís
Oskar

Comments
Me suena raro que consuma más
Me suena raro que consuma más recursos, a menos que sea algo poco significativo. A mi me suena mejor que sea en su propio método. Por qué un método estático en lugar de un método normal o una función?
Y la diferencia de rendimiento es considerable? A lo mejor es optimización prematura, que ya vez que dicen que es la raíz de todos los males :-p.
Gracias, @jackbraco. No me he
Gracias, @jackbraco.
No me he puesto a medir si es mucho mayor el consumo, pero la realidad es que al invocar el método estático de un objeto el consumo de recursos es mayor que una simple función.
Es un método, porque tengo varios métodos en un helper que son los métodos que me permiten manipular la vista como necesito.
Oskar
ya que te pones ....
a mi también me suena raro que un método estático consuma más que una función pública, eso si, puede ser normal que sea más caro que un simple if
de todos modos, ya que te pones a medir, prueba con estas closures a ver si rinden mejor que tu idea:
<?php$is_actualites_guides = public function ($view) {
if(is_object($view) &&
$view->tag === 'actualites_guides' &&
isset($view->display[$view->current_display]->display_options['xxxx_views'])
){
return TRUE;
}
return FALSE;
}
?>
ahora una versión estática (aprovechando, un operador ternario de regalo):
<?php
$is_actualites_guides = static public function ($view) {
return ( (is_object($view) &&
$view->tag === 'actualites_guides' &&
isset($view->display[$view->current_display]->display_options['xxxx_views'])
))?
TRUE:
FALSE;
?>
accederías al true/false tal que
$is_actualites_guides($view)