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

1. Lo Básico

1.1. class

1.1.1. Palabra reservada para creación de clases

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

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

1.1.4. Pseudovariable $this

1.1.4.1. Para hacer referencia al objeto invocador

1.2. new

1.2.1. Palabra reservada para instancia de una clase

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

1.2.3. new self, new parent

1.2.3.1. Para crear un nuevo objeto

1.3. Propiedades y métodos

1.3.1. Pueden tener el mismo nombre

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

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

1.4. extends

1.4.1. Palabra reservada para heredar métodos y propiedades

1.4.2. Ejemplo: class ClaseHeredada extends ClasePadre

1.4.3. parent::

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

1.4.3.2. Ejemplo: parent:: mostrarVar()

1.5. ::class

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

2. Propiedades

2.1. Se definen usando: public, protected o private

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

2.3. ->

2.3.1. Para acceder a propiedades no estáticas

2.3.2. Ejemplo: $this -> propiedad

2.4. ::

2.4.1. Para acceder a propiedades estáticas

2.4.2. Ejemplo: self:: $propiedad

2.5. heredoc y nowdoc

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

2.5.2. heredoc

2.5.2.1. Se comporta como un string entre comillas dobles

2.5.2.2. Se define: <<< EOD ... EOD;

2.5.3. nowdoc

2.5.3.1. Se comporta como un string entre comillas simples

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

3. Constantes de clases

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

3.2. El valor debe ser una expresión constante

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

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

4. Autocarga de clases

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

4.2. spl_autoload_register()

4.2.1. Registra cualquier número de autocargadores

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

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

4.3. __autoload()

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

5. Constructores y Destructores

5.1. Constructores

5.1.1. function __construct()

5.1.2. No es invocado

5.1.3. Se dispara cuando se crea el objeto

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

5.1.5. parent::__construct()

5.1.5.1. Para ejecutar un constructor padre

5.2. Destructores

5.2.1. function __destruct

5.2.2. Son lo contrario a los constructores

5.2.3. Se disparan cuando el objeto se borra de memoria

5.2.4. No suelen utilizarse a menudo

6. Visibilidad

6.1. Para propiedades, métodos o constantes.

6.2. public

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

6.2.2. Ejemplo: public $publica = 'ejemplo'

6.3. protected

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

6.3.2. Ejemplo: protected $protegida = 'ejemplo'

6.4. private

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

6.4.2. Ejemplo: private $privada = 'ejemplo'

7. Herencia de objetos

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

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

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

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

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

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

8.2. Permite acceder a elementos estáticos, constantes

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

8.4. self, parent y static

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

9. Palabra reservada 'static

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

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

9.1.2. Métodos estáticos

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

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

9.1.3. Propiedades estáticas

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

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

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

9.2. Para definir variables estáticas

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

10. Abstracción de clases

10.1. Las clases abstractas no se pueden instanciar

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

10.3. Al heredar...

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

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

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

11. Interfaces de objetos

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

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

11.2.1. Todos los métodos son públicos

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

11.4. Implements

11.4.1. Para implementar una interfaz

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

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

11.5. Constantes

11.5.1. Es posible tenerlas dentro de las interfaces

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

12. Rasgos (Traits)

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

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

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

12.3.1. Para resolverlo, se usa insteadof

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

13. Clases anónimas

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

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

13.3. El motor PHP les asigna un nombre

14. Sobrecarga

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

14.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

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

14.4. Sobrecarga de propiedades

14.4.1. __set()

14.4.1.1. Se ejecuta al escribir datos sobre propiedades inaccesibles

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

14.4.2. __get()

14.4.2.1. Para consultar datos a partir de propiedades inaccesibles.

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

14.4.3. __isset()

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

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

14.4.4. __unset()

14.4.4.1. Cuando se usa unset() sobre propiedades inaccesibles

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

14.5. Sobrecarga de métodos

14.5.1. __call()

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

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

14.5.2. __callStatic()

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

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

15. Iteración de objetos

15.1. foreach

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

15.2. Iterator

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

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

16. Métodos mágicos

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

16.2. __sleep()

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

16.2.2. Confirma datos pendientes o realiza tareas similares de limpieza

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

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

16.3. __wakeup()

16.3.1. Definición: void __wakeup ( void )

16.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

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

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

16.4. __toString()

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

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

16.4.3. Debe devolver un string

16.5. __invoke()

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

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

16.6. _debugInfo()

16.6.1. Definición: array __debugInfo (void)

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

17. Palabra clave Final

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

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

18. Clonación de objetos

18.1. clone

18.1.1. Palabra clave para crear una copia de un objeto

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

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

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

19. Comparación de objetos

19.1. ==

19.1.1. Operador de comparación

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

19.2. ===

19.2.1. Operador de identidad

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

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

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

21. Serialización de objetos

21.1. serialize()

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

21.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

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

21.2. unserialize()

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

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