estaba leyendo esta página - http://deaduseful.com/blog/posts/50-php-optimisation-tips-revisitedPHP - ¿Quieres decir evitar los métodos mágicos?
Y una de las recomendaciones era evitar el uso de Métodos mágicos, citó de un PDF Rendimiento Zend que da ninguna razón para que su recomendación para evitarlos.
Después de algunas búsquedas en Google (y terminando aquí con una pregunta no relacionada) me pregunté si alguien tenía alguna recomendación en ese frente.
Uso __get() mucho en mi código, generalmente para guardar variables que no siempre uso, p.
que puede tener una tabla con el nombre, la descripción, category_id, time_added
Mi get sería algo como esto:
public function __get($name) { switch($name) { case 'name': case 'desc': case 'category': case 'time_added': $result = do_mysql_query(); $this->name = $result['name']; $this->desc = $result['desc']; $this->category = $result['category']; $this->time_added = $result['time_added']; return $this->{$name}; break; default: throw Exception("Attempted to access non existant or private property - ".$name); } }
Esto parece una gran manera de hacer las cosas, ya que sólo alguna vez algo de la base de datos si es necesario y puedo ver cosas como $ article-> time_added en lugar de jugar con matrices.
¿Esto se consideraría una mala práctica y una carga adicional en el servidor?
A menudo ampliaré las clases con métodos mágicos y haré algo como esto si la clase hija no coincide con algo en un get.
public function __get($name) { switch($name) { case 'name': case 'desc': case 'category': case 'time_added': $result = do_mysql_query(); $this->name = $result['name']; $this->desc = $result['desc']; $this->category = $result['category']; $this->time_added = $result['time_added']; return $this->{$name}; break; default: return parent::__get($name); } }
¿Sería esto una mala práctica y perjudicial para el rendimiento? La cantidad máxima de niveles que tengo cuando extiendo métodos mágicos es tres.
posible duplicado de [__get/__/__ set preguntas de desempeño llamada con PHP] (http://stackoverflow.com/questions/3330852/get- set-call-performance-questions-with-php) – Gordon