Refactorización PHP - Lez. 1: Propiedades de una clase
Cuando escribimos una clase de cada uno de nosotros el uso de sus convenios.
Recomiendo el uso de las siguientes propiedades de una clase:
- Si consiste en una sola palabra, todo en minúsculas, por ejemplo $ nombre;
- Si se hace de muchas palabras la primera letra de cada uno, a partir de la segunda, en mayúsculas, en minúsculas otra, por ejemplo $ nomeAziendaItaliana;
- Si una constante se compone de escritura de una sola palabra en mayúsculas, por ejemplo elementos;
- Si tenemos una constante compuesta de varias palabras para escribir todo en mayúsculas con un guión entre las palabras, por ejemplo ELEMENTI_PER_RIGA
- El nombre de la variable debe ser auto-explicativa
Todas las propiedades de una clase son privados y se puede acceder a través de métodos getXXX y setXXX, cuyo nivel de acceso debe ser público, de modo que se puede acceder al estado interno del objeto desde cualquier punto. En lugar de XXX ponemos el nombre de la propiedad.
El siguiente es un ejemplo para aclarar mejor el concepto:
| Mal | Exacto |
clase Test { public $ nombre de la clase; $ mia_x1 privada; const costante_della_classe; páginas const; } | clase Test { $ className privada; $ miaDataDiNascita privada; Const COSTANTE_DELLA_CLASSE; PÁGINAS const; función pública setNomeClasse ($ nombre) { $ This-> className = $ nombre; } la función pública getNomeClasse () { return $ this-> nombre de clase; } } |
Pero debido a que hacemos todo esto? Las propiedades de una clase representan el estado de la instancia de un objeto, entonces usted sólo debería tener acceso a través de los métodos públicos, diputados para activar acciones para el cambio.
Un ejemplo real es el foco de luz: estamos interesados en su estado, o caliente o fría, pero actuamos sobre ella por las acciones en y / o fuera, que representan nuestros métodos.
Con respecto al acceso a las propiedades de PHP 5 que usamos un truco, hizo posible gracias al conjunto de funciones y la magia __ __ get.
Si no desea utilizar directamente en el código y el setXXX funciones getXXX que podemos hacer como el ejemplo siguiente:
clase Test { $ _nomeClasse privada; función pública __ set ($ name, $ valor) { call_user_func (array ($ this, 'set' ucwords ($ nombre)), $ valor).; } __ public function get ($ nombre) { call_user_func (array ($ this, "conseguir" ucwords ($ nombre)).); } función pública setNomeClasse ($ nombre) { $ This-> _nomeClasse = $ nombre; } la función pública getNomeClasse () { return $ this-> _nomeClasse; } } $ Obj = new prueba (); $ Obj-> className = 'prueba'; echo $ obj-> className; |
El truco está en seguir una nomenclatura determinada en los nombres y disfrutar de la magia de las funciones del lenguaje.
El nombre se utiliza fuera de la clase es sólo la propiedad, pero sin el carácter de subrayado como primer carácter. Como no es una variable de clase con ese nombre, pone en marcha el conjunto de la función __ PHP o __ get, en su caso, aprobar el nombre de la propiedad anterior y el valor que se almacena en el segundo caso, sólo el nombre.
Requisito esencial para la operación es la siguiente:
- la variable ficticia utilizada fuera del objeto de seguir el convenction denominación de la propiedad interna de la clase, con exclusión dell'underscore que no deben estar presentes;
- existen métodos setXXX y getXXX para la devolución de la propiedad;
- la variable interna a utilizar es simple, ya que con una operación de matriz no será como desee.
Si la matriz vamos a ver cuáles son los métodos a utilizar en un futuro artículo.
Gracias a Henry para algunas sugerencias útiles en la elaboración del código.











Comentarios recientes