Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Clases y Objetos por Mind Map: Clases y Objetos

1. Interfaces de objetos

1.1. Permiten especificar qué métodos deben ser implementados por una clase

1.2. Contienen métodos vacíos que obligan a una clase a emplearlos

1.2.1. Todos los métodos son públicos

1.3. Ejemplo de definición: interface Automóvil { ...//métodos vacíos}

1.4. Implements

1.4.1. Para implementar una interfaz

1.4.2. Todos los métodos deben ser implementados dentro de la clase

1.4.3. Ejemplo: class Coche implements Automóvil {...//métodos de la interface}

1.5. Constantes

1.5.1. Es posible tenerlas dentro de las interfaces

1.5.2. No pueden ser sobrescritas por una clase/interfaz que las herede

2. Rasgos (Traits)

2.1. Metodología de reutilización de código

2.2. Similar a una clase, pero con el objetivo de agrupar funcionalidades muy específicas y de manera coherente

2.3. Si dos Traits insertan un método con el mismo nombre, se produce error fatal

2.3.1. Para resolverlo, se usa insteadof

2.3.2. Se puede utilizar as para añadir un alias a uno de los métodos

3. Clases anónimas

3.1. Útiles cuando es necesario crear objetos sencillos y únicos

3.2. Ahorro de memoria y mejora el rendimiento de la aplicación

3.3. El motor PHP les asigna un nombre

4. Sobrecarga

4.1. Ofrece los medios para crear dinámicamente propiedades y métodos

4.2. Se invoca cuando se interactúa con propiedades o métodos que no se han declarado o que no son visibles en el ámbito activo

4.3. Todos los métodos sobrecargados debe definirse como públicos

4.4. Sobrecarga de propiedades

4.4.1. __set()

4.4.1.1. Se ejecuta al escribir datos sobre propiedades inaccesibles

4.4.1.2. Definición : public void __set ( string $name , mixed $value )

4.4.2. __get()

4.4.2.1. Para consultar datos a partir de propiedades inaccesibles.

4.4.2.2. Definición: public mixed __get ( string $name )

4.4.3. __isset()

4.4.3.1. Cuando se llama a isset() o a empty() sobre propiedades inaccesibles

4.4.3.2. Definición: public bool __isset ( string $name )

4.4.4. __unset()

4.4.4.1. Cuando se usa unset() sobre propiedades inaccesibles

4.4.4.2. Definición: public bool __unset ( string $name )

4.5. Sobrecarga de métodos

4.5.1. __call()

4.5.1.1. Lanzado al invocar un método inaccesible en un contexto de objeto

4.5.1.2. Definición: public mixed __call ( string $name , array $arguments )

4.5.2. __callStatic()

4.5.2.1. Lanzado al invocar un método inaccesible en un contexto estático

4.5.2.2. Definición: public mixed __call ( string $name , array $arguments )

5. Iteración de objetos

5.1. foreach

5.1.1. Recorre todas las propiedades visibles alas que se pueden acceder

5.2. Iterator

5.2.1. Interfaz que permite al objeto decidir cómo ser iterado y qué valores estarán disponibles en cada iteración

5.2.2. Ejemplo de definición: class MiIterador implements Iterator{...}

6. Métodos mágicos

6.1. Permiten realizar acciones en objetos cuando suceden determinados eventos que los activan

6.2. __sleep()

6.2.1. Definición: public array __sleep (void)

6.2.2. Confirma datos pendientes o realiza tareas similares de limpieza

6.2.3. Útil cuando se tienen objetos muy grandes que no necesitan guardarse por completo

6.2.4. Recoge un array de propiedades que queremos que se serialicen

6.3. __wakeup()

6.3.1. Definición: void __wakeup ( void )

6.3.2. Para restablecer las conexiones de base de datos que se puedan haber perdido durante la serialización y realizar otras tareas de reinicialización

6.3.3. Útil cuando se tienen objetos muy grandes que no necesitan guardarse por completo

6.3.4. Recoge un array de propiedades que queremos que se serialicen

6.4. __toString()

6.4.1. Definición: public string __toString (void)

6.4.2. Permite a una clase decidir cómo comportarse cuando se le trata como un string.

6.4.3. Debe devolver un string

6.5. __invoke()

6.5.1. Definición: mixed __invoke ([ $... ])

6.5.2. Permite usar un objeto como si fuera una función

6.6. _debugInfo()

6.6.1. Definición: array __debugInfo (void)

6.6.2. Invocado por var_dump al volcar un objeto para obtener las propiedades que deberían mostrarse

7. Palabra clave Final

7.1. Impide que las clases hijas sobrescriban un método

7.2. Ejemplo de definición: final public function nombreFuncion() {...}

8. Clonación de objetos

8.1. clone

8.1.1. Palabra clave para crear una copia de un objeto

8.1.2. Invoca al método __clone() del objeto, si es posible.

8.1.2.1. No se puede llamar al método __clone() de un objeto directamente

8.1.3. Definición: $copia_de_objeto = clone $objeto;

9. Comparación de objetos

9.1. ==

9.1.1. Operador de comparación

9.1.2. Compara de una forma sencilla las variables de cada objeto

9.2. ===

9.2.1. Operador de identidad

9.2.2. Las variables son idénticas sí además de coincidir los valores, también coinciden los tipos

10. Enlaces estáticos en tiempo de ejecución

10.1. Para hacer referencias a la clase en uso desde un contexto de herencia estática.

11. Serialización de objetos

11.1. serialize()

11.1.1. Permite almacenar o transmitir cualquier tipo de valor (excepto el tipo resource) en forma de String

11.1.2. Por ejemplo, permite guardar un objeto o array en una base de datos o transmitirlo entre aplicaciones remotas, para luego convertirlo a su tipo y estructura original

11.1.3. Ejemplo: $string = serialize($arr);

11.2. unserialize()

11.2.1. Para recuperar el valor original en PHP a partir de la cadena seriada

11.2.2. Ejemplo: $arr = unserialize($string);

12. Lo Básico

12.1. class

12.1.1. Palabra reservada para creación de clases

12.1.2. Ejemplo de definición: new Clase { }

12.1.3. Una clase contiene: constantes, funciones (métodos) y variables (propiedades)

12.1.4. Pseudovariable $this

12.1.4.1. Para hacer referencia al objeto invocador

12.2. new

12.2.1. Palabra reservada para instancia de una clase

12.2.2. Ejemplo de definición: $instancia = new Clase ();

12.2.3. new self, new parent

12.2.3.1. Para crear un nuevo objeto

12.3. Propiedades y métodos

12.3.1. Pueden tener el mismo nombre

12.3.2. Para llamar a propiedades: $obj -> bar

12.3.3. Para llamar a métodos: $obj -> bar()

12.4. extends

12.4.1. Palabra reservada para heredar métodos y propiedades

12.4.2. Ejemplo: class ClaseHeredada extends ClasePadre

12.4.3. parent::

12.4.3.1. Para acceder a métodos sobrescritos o propiedades estáticas

12.4.3.2. Ejemplo: parent:: mostrarVar()

12.5. ::class

12.5.1. También se usa la palabra reservada class para la resolución de nombres de clases

13. Propiedades

13.1. Se definen usando: public, protected o private

13.2. Ejemplo: public $var = 1 + 2;

13.3. ->

13.3.1. Para acceder a propiedades no estáticas

13.3.2. Ejemplo: $this -> propiedad

13.4. ::

13.4.1. Para acceder a propiedades estáticas

13.4.2. Ejemplo: self:: $propiedad

13.5. heredoc y nowdoc

13.5.1. Se pueden usar en cualquier contexto de datos estáticos, incluyendo la declaración de propiedades

13.5.2. heredoc

13.5.2.1. Se comporta como un string entre comillas dobles

13.5.2.2. Se define: <<< EOD ... EOD;

13.5.3. nowdoc

13.5.3.1. Se comporta como un string entre comillas simples

13.5.3.2. Se define: <<< 'EOD' ... EOD;

14. Constantes de clases

14.1. Se diferencian de las variables por no utilizar el símbolo $ al declararlas o emplearlas

14.2. El valor debe ser una expresión constante

14.3. Ejemplo de definición: const UNO= 1

14.4. Están asignadas una vez por clase, no por cada instancia de la clase

15. Autocarga de clases

15.1. Muchos desarrolladores crean un fichero fuente de PHP para cada definición de clase

15.2. spl_autoload_register()

15.2.1. Registra cualquier número de autocargadores

15.2.2. Posibilita que las clases e interfaces sean cargadas automáticamente si no están definidas

15.2.3. Ejemplo: spl_autoload_register(function ($nombre_clase) { include $nombre_clase . '.php'; });

15.3. __autoload()

15.3.1. Es empleada también para autocargar clases e interfaces; pero no es aconsejable utilizarla.

16. Constructores y Destructores

16.1. Constructores

16.1.1. function __construct()

16.1.2. No es invocado

16.1.3. Se dispara cuando se crea el objeto

16.1.4. Se suele utilizar para darle un valor a los atributos del objeto creado

16.1.5. parent::__construct()

16.1.5.1. Para ejecutar un constructor padre

16.2. Destructores

16.2.1. function __destruct

16.2.2. Son lo contrario a los constructores

16.2.3. Se disparan cuando el objeto se borra de memoria

16.2.4. No suelen utilizarse a menudo

17. Visibilidad

17.1. Para propiedades, métodos o constantes.

17.2. public

17.2.1. Se puede acceder a los miembros de la clase desde donde sea.

17.2.2. Ejemplo: public $publica = 'ejemplo'

17.3. protected

17.3.1. Solo se puede acceder desde la misma clase o mediante clases heredadas.

17.3.2. Ejemplo: protected $protegida = 'ejemplo'

17.4. private

17.4.1. Únicamente se puede acceder desde la clase que los definió.

17.4.2. Ejemplo: private $privada = 'ejemplo'

18. Herencia de objetos

18.1. Principio que afecta la manera en la que se relacionan las clases y objetos

18.2. Cuando se extiende una clase, la subclase hereda todos los métodos públicos y protegidos de la clase padre

18.3. Útil para la definición y abstracción de la funcionalidad

18.4. Implementación de la funcionalidad adicional en objetos similares

19. Operador de Resolución de Ámbito (::)

19.1. Denominado en términos simples "doble dos-puntos"

19.2. Permite acceder a elementos estáticos, constantes

19.3. Permite sobrescribir propiedades o métodos de una clase

19.4. self, parent y static

19.4.1. Palabras claves especiales para acceder a propiedades y métodos desde el interior de la definición de la clase

20. Palabra reservada 'static

20.1. Para definir métodos y propiedades estáticos

20.1.1. Los hace accesibles sin la necesidad de instanciar la clase

20.1.2. Métodos estáticos

20.1.2.1. $this no está disponible dentro de los métodos estáticos

20.1.2.2. Ejemplo: public static function unMetodoEstatico() { // ... }

20.1.3. Propiedades estáticas

20.1.3.1. No se puede acceder a ella a través del objeto utilizando ->

20.1.3.2. Sólo pueden ser inicializadas utilizando un string literal o una constante

20.1.3.3. Ejemplo: public static $mi_static = 'foo';

20.2. Para definir variables estáticas

20.3. Para enlaces estáticos en tiempo de ejecución

21. Abstracción de clases

21.1. Las clases abstractas no se pueden instanciar

21.2. Los métodos abstractos declaran la firma del método, pero no puede definir la implementación

21.3. Al heredar...

21.3.1. Todos los métodos abstractos deben ser definidos en la clase hija con la misma visibilidad

21.3.2. Las firmas de los métodos tienen que coincidir

21.4. Definición: abstract class ClaseAbstracta {...}