Saltar al contenido

Tutorial de concepto de PHP para programación orientada a objetos (OOP) con ejemplo

¿Qué son los OPW?

Objective Oriented es un enfoque de desarrollo de software que da forma a una aplicación alrededor de objetos de la vida real como empleados, automóviles, cuentas bancarias, etc. Una clase define las propiedades y modos de un objeto realista. Ocurre un objeto de clase.

Los tres componentes básicos de la orientación a objetos son;

  • Análisis orientado a objetos: funcionalidad del sistema
  • Diseño orientado a objetivos: arquitectura del sistema
  • Programación objetiva: implementación de la aplicación

Principios de registro orientado a objetos

Los tres principios fundamentales de OPW son;

  • Encapsulamiento – esto se refiere al ocultamiento de los datos de implementación y la divulgación de métodos. El propósito principal del sobre es;
    • Reduzca la complejidad del desarrollo de software: al ocultar los datos de implementación y solo revelar las operaciones, es fácil usar una clase.
    • Protección del estado interno de una clase de objeto: se accede a las variables a través de métodos como la adquisición y la disposición, lo que hace que la clase sea flexible y fácil de mantener.
    • La implementación interna de la clase se puede cambiar sin preocuparse por romper el código utilizado por la clase.
  • Herencia – esto se relaciona con la relación entre clases. La relación toma la forma de un padre y un hijo. El niño usa los métodos definidos en la clase principal. El objetivo principal del patrimonio es;
    • Usabilidad: algunos hijos pueden heredar del mismo padre. Esto es muy útil cuando necesitamos proporcionar una funcionalidad común, como agregar datos a la base de datos, actualizarlos y eliminarlos.
  • Polimorfismo – esto implica tener una forma pero muchos modos diferentes de implementación. El propósito principal del polimorfismo es;
    • Simplifique las aplicaciones de mantenimiento y hágalas más extensas.

Conceptos de OPW en PHP

PHP es un lenguaje de programación orientado a objetos; apoya todos los principios anteriores. Los principios anteriores se logran mediante;

  • Encapsulamiento – por medio de “get” y “fixed”, etc.
  • Herencia – mediante el uso de una palabra clave extendida
  • Polimorfismo – mediante el uso de herramientas de palabras clave

Ahora que tenemos el conocimiento básico de OPW y cómo es compatible con PHP, veamos ejemplos que aplican los principios anteriores.

¿Qué es UML?

El lenguaje de modelado unificado UML es una técnica utilizada para diseñar y documentar sistemas orientados a objetos.

UML produce algunos documentos, pero veamos el diagrama de clases que es muy importante para la programación php orientada a objetos.

Ejemplo de diagrama de aula

Clave del diagrama de clases

  • El es Caja superior contiene el nombre de la clase
  • El es caja del medio las variables de clase están ahí
  • El es caja inferior los métodos de clase están ahí
  • El es menos (-) Signos de signo ámbito privado
  • El es más (+) firmar significa ámbito público
  • El es hash (#) signo significa protección del alcance

Cómo crear una clase en PHP

La palabra clave class se usa para definir una clase en PHP. A continuación se muestran las reglas para crear una clase en PHP.

  • El nombre de la clase debe comenzar con una letra.
  • El nombre de la clase no puede ser una palabra reservada de PHP
  • Los nombres de las clases no pueden contener espacios

Digamos que queremos crear una clase para representar animales.

Comenzaremos identificando las características que son comunes a todos los animales.

  • Cada animal pertenece a una familia como un herbívoro, carnaval, etc.
  • Todos los animales comen comida

El siguiente diagrama muestra el diagrama del animal.

Codifiquemos ahora con nuestra clase de animales

<?php
class Animal
{
    private $family;
    private $food;
    public function __construct($family, $food)
    {
        $this->family = $family;
        $this->food   = $food;
    }
    public function get_family()
    {
        return $this->family;
    }
    public function set_family($family)
    {
        $this->family = $family;
    }
    public function get_food()
    {
        return $this->food;
    }
    public function set_food($food)
    {
        $this->food = $food;
    }
}
?> 

AQUÍ,

  • “Hogar privado $, $ comida” significa que no se puede acceder a las variables directamente fuera de la clase (Inclusión).
  • El método del constructor de php es “__construct public function ($ family…)”. Esta función se proporciona siempre que se crea una muestra de la clase. En este caso, estamos arreglando la familia y la comida.
  • “Función pública … ()” es el método utilizado para acceder al valor del hogar o los alimentos (Inclusión)
  • “Conjunto de funciones públicas … ()” es el método utilizado para determinar el valor del hogar o los alimentos (inclusión)

Cómo implementar Legacy en PHP

Trabajaremos con una vaca y un león. La vaca y el león se heredan de la clase Animal.

El siguiente diagrama de clases muestra las relaciones.

Tenga en cuenta que la vaca hereda de la clase animal y también define sus propias variables y métodos.

Codifiquemos ahora la clase Cow


<?php
class Cow extends Animal
{
    private $owner;
    public function __construct($family, $food)
    {
        parent::__construct($family, $food);
    }
    public function set_owner($owner)
    {
        $this->owner = $owner;
    }
    public function get_owner()
    {
        return $this->owner;
    }
}
?>

Ahora codifiquemos para la clase Lion


<?php
class Lion extends Animal
{
    public function __construct($family, $food)
    {
        parent::__construct($family, $food);
    }
}
?>

AQUÍ,

  • “Animal … extensión de clase” describe el uso de vacas y leones de la clase Animal (Herencia).

Cómo crear un objeto de clase

En aras de la simplicidad, todas las clases de animales, vacas y leones deben estar en el mismo directorio.

Ahora creamos la aplicación que usan nuestras clases.

Ejemplo de clase PHP


<?php
require 'Animal.php';
require 'Cow.php';
require 'Lion.php';
$cow  = new Cow('Herbivore', 'Grass');
$lion = new Lion('Canirval', 'Meat');
echo '<b>Cow Object</b> <br>';
echo 'The Cow belongs to the ' . $cow->get_family() . ' family and eats ' . $cow->get_food() . '<br><br>';
echo '<b>Lion Object</b> <br>';
echo 'The Lion belongs to the ' . $lion->get_family() . ' family and eats ' . $lion->get_food();
?>

Probando nuestra aplicación

Ahora miramos nuestra aplicación en un navegador web.

.

¡Muy bien! Veamos ahora el tercer principio de OPW, polimorfismo.

Digamos que queremos desarrollar una aplicación que se conecte a varios motores de base de datos como MySQL y SQL El servidor solo usa la misma interfaz uniforme.

Podemos crear una interfaz que defina los métodos de clase estándar y abstracta aplicados por los métodos comunes.

  • Interfaz – es como una clase. Solo define los métodos y parámetros.
  • Clase abstracta – es una clase que no se puede utilizar para crear un objeto directamente. El objetivo es proporcionar una implementación parcial o total de métodos comunes.

El siguiente diagrama de clases ilustra la relación entre nuestras clases abstractas, de interfaz y de implementación.

Ahora creamos nuestra clase abstracta


<?php
abstract class DBCommonMethods
{
    private $host;
    private $db;
    private $uid;
    private $password;
    public function __construct($host, $db, $uid, $password)
    {
        $this->host     = $host;
        $this->db       = $db;
        $this->uid      = $uid;
        $this->password = $password;
    }
}
?>

AQUÍ,

  • “Clase abstracta” significa que la clase no se puede utilizar directamente para crear un objeto php
  • “$ Host, $ db …” son variables de clase que son comunes a todas las implementaciones
  • “__Construct (…) function” es el método de construcción de clases php que establece los valores de las variables comunes en el establecimiento

Ahora creamos la interfaz en la que los métodos estándar se aplican de manera diferente según el motor de la base de datos.


<?php
interface DBInterface
{
    public function db_connect();
    public function insert($data);
    public function read($where);
    public function update($where);
    public function delete($where);
}
?>

AQUÍ,

  • “Interfaz” es la palabra clave para crear interfaces.
  • “Public function ba (…)” son los métodos estándar que deben aplicarse

Ahora creamos las clases concretas que extenderán la clase DBCommonMethods y expandirán la interfaz DBInterface. MySQLDriver.php


<?php class MySQLDriver extends 
DBCommonMethods implements DBInterface { public function __construct($host, $db, $uid, $password) 
{ 
parent::__construct($host, $db, $uid, $password); } 
public function db_connect() { //connect code goes here } 
public function delete($where) { //delete code goes here } 
public function insert($data) { //insert code goes here } 
public function read($where) { //read code goes here } 
public function update($where) { //update code goes here } 
} ?>

MSSQLServerDriver.php


<?php 
class MSSQLServerDriver extends 
DBCommonMethods implements DBInterface { public function __construct($host, $db, $uid, $password)
 { 
 parent::__construct($host, $db, $uid, $password); } 
 public function db_connect() { //connect code goes here } 
 public function delete($where) { //delete code goes here }
 public function insert($data) { //insert code goes here }
 public function read($where) { //read code goes here }
 public function update($where) { //update code goes here }
 } ?>

AQUÍ,

  • La “clase DBCommonMethods” utiliza los métodos de DBCommonMethods
  • “D implementa DBInterface” asegura que la clase proporcione métodos estándar independientemente del controlador de base de datos utilizado.

Use el código anterior Este código usaría la clase anterior


<?php $db = new MySQLDriver($host,$db,$uid,$password); ?>

O


<?php $db = new MSSQLServerDriver ($host,$db,$uid,$password); ?>

El resto del código sería el mismo para ambos controladores que;


<?php
$db->db_connect();
$db->insert($data);
?>

Resumen

  • Programación orientada a objetivos OPW es una técnica poderosa que da forma a las aplicaciones después de las cosas en la vida real
  • La clase es una representación de objetos reales con propiedades y métodos.
  • Los tres principios básicos de OPW son;
    • Encapsulamiento
    • Herencia
    • Polimorfismo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *