Introducción a OOP
Parte de la sección Programación Orientada a Objetos del Journey de PHP de Coddy — lección 2 de 91.
La Programación Orientada a Objetos (POO) organiza el código en torno a objetos que contienen datos (propiedades) y funciones (métodos).
Crea un archivo llamado car.php con una clase
<?php
class Car {
// cuerpo de clase vacío
}Crea otro archivo llamado driver.php para usar la clase
<?php
require_once 'car.php';Crea un objeto de la clase Car usando la palabra clave new
$myCar = new Car();Comprueba la clase de tu objeto
echo get_class($myCar);Resultado:
CarEsto confirma que has creado con éxito un objeto a partir de tu clase Car. En la POO, una clase es como un plano, y un objeto es lo que construyes a partir de ese plano. La palabra clave new crea una nueva instancia de la clase.
Desafío
IntermedioEn este desafío, utilizarás una clase Car definida en car.php y crearás un objeto a partir de ella en driver.php.
Necesitas actualizar driver.php:
- Crea un objeto de la clase
Carutilizando la palabra clavenewy almacénalo en$myCar
El archivo driver imprimirá el nombre de la clase para verificar tu implementación.
Hoja de referencia
La Programación Orientada a Objetos (POO) organiza el código en torno a objetos que contienen datos (propiedades) y funciones (métodos).
Define una clase:
<?php
class Car {
// cuerpo de clase vacío
}Incluye un archivo de clase en otro archivo:
<?php
require_once 'car.php';Crea un objeto a partir de una clase utilizando la palabra clave new:
$myCar = new Car();Comprueba la clase de un objeto:
echo get_class($myCar); // Resultado: CarUna clase es como un plano, y un objeto es una instancia creada a partir de ese plano.
Pruébalo tú mismo
<?php
require_once 'car.php';
// TODO: Crear un objeto de la clase Car
$myCar = ?;
// Imprimir la clase de $myCar
echo get_class($myCar) . "\n";
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Fundamentos de OOP
Archivos externosIntroducción a OOPClases vs ObjetosLa palabra clave $thisMétodosPropiedadesConstructor (__construct)Destructor (__destruct)Resumen - Calculadora simple4Herencia
Herencia básicaLa palabra clave parent::Sobrescritura de métodosLa palabra clave finalClases abstractasResumen - Jerarquía de empleados7Encapsulamiento
Público, Protegido, PrivadoModificadores de acceso a fondoGetters y SettersOcultamiento de informaciónPromoción de constructor (8.0)Resumen - Sistema de registros de estudiantes10Conceptos avanzados de POO
Composición vs. HerenciaInyección de dependenciasClases anónimasEnums (PHP 8.1)Fibers (PHP 8.1)Clonación de objetos a fondoGeneradores e Iteradores13Patrones de diseño Parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón CompositePatrón Repository2Espacios de nombres y Autoloading
Introducción a los espacios de nombresLa palabra clave useEstándar de Autoloading PSR-4Autoloader de ComposerResumen - Proyecto organizado5Interfaces y Contratos
Introducción a las InterfacesImplementación de InterfacesImplementación de Múltiples InterfacesInterfaz vs Clase AbstractaType Hinting con InterfacesResumen - Calculadora de Formas8Métodos mágicos
Introducción a los métodos mágicos__toString y __debugInfo__get, __set, __isset, __unset__call y __callStatic__clone y clonación de objetos__serialize y __unserializeResumen - Colección personalizada3Propiedades de clase
Propiedades de instancia vs. estáticasConstantes en clasesMétodos y propiedades estáticosPropiedades privadas y protegidasPropiedades de solo lectura (PHP 8.1)Resumen - Gestor de cuenta bancaria6Polimorfismo
Sobrescritura de métodos revisadaPolimorfismo mediante interfacesType Hinting y tipos de uniónEnlace estático tardíoResumen - Procesador de pagos9Traits
Introducción a los TraitsUso de múltiples TraitsResolución de conflictos de TraitsMétodos abstractos en TraitsTraits frente a herencia12Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy