Magazine

Wrappers en php

Publicado el 07 octubre 2014 por Alexander171294 @std_io

Buenas tardes, hoy traigo otra publicación extraída de mi paper de programación orientada a objetos, que pueden ver y descargar desde la sección de nuestros pdfs.
Wrappers en php
Algo sumamente interesante que encontré en python y que no había visto en php son los wrappers, los wrappers son una forma de trabajar muy particular, donde si hay una cierta cantidad de funciones que realizan una cierta tarea ya sea de validado de parámetros o lo que sea, se quita el código de cada una de las funciones y se lo mete en una función extra, luego se llama a esa función y se le pasa como parámetro la función particular que requiere de estas tareas.
Es bastante difícil de explicar pero trataré de hacerlo de otra forma, por ejemplo supongamos que tenemos varias funciones de nuestra clase que tienen un try y un catch, y el catch en todas ellas llama a una función llamada onError, creamos una función entonces que se llame ErrorControl:
// wrapper try, agradecimientos a Destructor.cs por la idea
private function ErrorControl($call, $args = null)
{
   try
   {
   call_user_func($call, $args);
   } catch (\Exception $error) {
   $this->onError($error->getMessage());
   }
}

Entonces ocurre que llamamos a la función errorControl pasándole como parámetro la función final a la que llamar, y los argumentos, luego ponemos el try y el catch y llamamos a la función que queríamos llamar originalmente, y la misma ya tendrá el try y catch, de esta forma nos ahorramos escribir try y catch en cada una de las funciónes que lo necesiten.
Aquí se aplica la idea (en la función refresh):https://github.com/alexander171294/PHPSocketMaster/blob/master/src/class/SocketMaster.php
Pero tiene el inconveniente que solo funciona llamando a las funciones desde funciones internas.
No obstante estoy trabajando en la creación de un código estilo property (un trait) que permita la implementación de wrappers desde llamadas externas.
Un saludo lectores y espero les haya parecido interesante, la idea fué sugerida por Destructor.cs a quien le mando un saludo, es un gran programador y me gustaría que algún día hagamos una entrada en conjunto.
Soy amante de la programación, me gusta ver y crear cosas nuevas... Me gusta el metal, rock, y también daftpunk jajaja

También podría interesarte :

Volver a la Portada de Logo Paperblog

Quizás te interesen los siguientes artículos :