Refactoring PHP - Lez. 1: una clase
Cuando escribimos cada uno de nosotros utiliza una clase de sus convenios.
Yo recomiendo usar 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 del segundo, en mayúsculas, en minúsculas otros, por ejemplo $ nomeAziendaItaliana;
- Si una constante se compone de escribir una sola palabra en mayúsculas, por elementos de ejemplo;
- Si tenemos un compuesto constante 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-explicativo
Todas las propiedades de una clase son privados y se puede acceder a través de los métodos getXXX y setXXX, cuyo nivel de acceso debe ser público, por lo 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 |
class prueba { pública $ classname; privado $ mia_x1; const costante_della_classe; páginas const; } | class prueba { privado $ className; privado $ miaDataDiNascita; Const COSTANTE_DELLA_CLASSE; PÁGINAS const; función pública setNomeClasse ($ nombre) { $ This-> className = $ nombre; } función pública getNomeClasse () { return $ this-> className; } } |
Sino porque todo esto lo hacemos? Las propiedades de una clase representan el estado de la instancia de un objeto, a continuación, sólo debe acceder a través de los métodos públicos diputados, para desencadenar acciones para el cambio.
Un ejemplo real es la bombilla: estamos interesados en su estado, o de frío o calor, pero actuamos sobre él por la acción en y / o fuera, que representan nuestros métodos.
Con respecto al acceso a las propiedades de PHP 5 que utiliza un truco, gracias a las funciones de magia y puede __get __set.
Si no desea utilizar directamente en el código y el setXXX funciones getXXX que podemos hacer como el siguiente ejemplo:
class prueba { privado $ _nomeClasse; __set función pública ($ name, $ valor) { call_user_func (array ($ this, 'set' ucwords ($ nombre)), el valor de $.) } __get función pública ($ nombre) { call_user_func (array ($ this, "get" ucwords ($ nombre)).) } función pública setNomeClasse ($ nombre) { $ This-> $ nombre = _nomeClasse; } 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 las funciones del uso mágico del lenguaje.
El nombre que usamos fuera de las aulas no es más que la propiedad, pero sin el carácter de subrayado como primer carácter. Puesto que no hay variable de clase con ese nombre, o la función PHP __get __set tiros, en su caso, en el primer caso, pasando el nombre de la propiedad 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 la propiedad sigue convenction nombre dentro de la clase, con exclusión de dell'underscore que no deben estar presentes;
- métodos setXXX y getXXX existen para la propiedad llamada;
- la variable interna es fácil de usar, al igual que una operación de matriz no se como usted desea.
Si la matriz vamos a ver qué métodos debe usar en un futuro artículo.
Gracias a Henry para algunas sugerencias útiles para la redacción del código.











Comentarios recientes