PHP | Encapsulación

En el mundo técnico actual, mantener la privacidad se ha convertido en una de las necesidades más exigentes para la protección de datos importantes. Cada vez que los datos modificados en una función afectan a las otras funciones, causa muchos problemas en cualquier software. Para superar este problema, la programación orientada a objetos en PHP utiliza el concepto de Encapsulación.

Entonces, el concepto OOP de Encapsulación en PHP significa encerrar los detalles internos del objeto para protegerlos de fuentes externas. Describe, combinando la clase, las variables de datos y las funciones miembro que trabajan en datos juntos dentro de una sola unidad para formar un objeto. De lo contrario, es la agrupación de propiedades y comportamiento en una sola unidad de clase.

No se accede a los datos directamente, de hecho, se accede a ellos a través de funciones (GET o SET) escritas dentro de la clase. Los atributos se mantienen privados, pero los métodos getter(GET) y setter(SET) se mantienen públicos para la manipulación de estos atributos.

Programa PHP para encapsulación: Los métodos o funciones en el siguiente programa son actualizar la contraseña y verificar el nombre del curso. La clase GFG define todas las operaciones relacionadas con los usuarios de GFG.

<?php
  
// PHP program to implements encapsulation
class GFG {
  
    private $userId;
    private $pwd;
      
    // Update GFG password
    public function updatePwd($userId, $pwd) {
          
        // Write function body
        echo("Function to update password '"
                . $pwd . "' for user " . $userId);
          
        echo "<br>";
    }
  
    // Check account balance
    public function courseName($userId) {
          
        // Write function body
        echo("Function to check course name of user "
                . $userId);
          
        echo "<br>";
    }
}
  
$obj = new GFG();
$obj -> updatePwd('GFG12', 'geeks54321');
$obj -> courseName('GFG06');
  
?>

Producción:

Function to update password 'geeks54321' for user GFG12
Function to check course name of user GFG06

Nota: Los miembros de datos y las propiedades de clase no son accesibles para el usuario final externo. Así que no pueden cambiar las propiedades.

Programa para Acceder a Variables

<?php
   
class Student {
    private $firstname;
    private $gender;
   
    public function getFirstName() {
        return $this->firstname;
    }
   
    public function setFirstName($firstname) {
        $this->firstname = $firstname;
        echo("First name is set to ".$firstname);
        echo("<br>");
    }
   
    public function getGender() {
        return $this->gender;
    }
   
    public function setGender($gender) {
        if ('Male' !== $gender and 'Female' !== $gender) {
            echo('Set gender as Male or Female for gender');
        }
   
        $this->gender = $gender;
        echo("Gender is set to ".$gender);
        echo("<br>");
    }
}
   
$student = new Student();
$student->setFirstName('Meena');
$student->setGender('Female');
   
?>

Producción:

First name is set to Meena
Gender is set to Female

Nota:

  • La encapsulación se puede utilizar si las propiedades del objeto son privadas y se actualizan a través de métodos públicos.
  • La encapsulación en PHP se puede lograr mediante la implementación de especificadores de acceso.
  • Es muy cuidadoso con el concepto de herencia de OOP, ya que muchas veces la herencia puede socavar el concepto de encapsulación.
  • La herencia expone algunos detalles de una clase principal, rompiendo efectivamente la encapsulación.

Ventajas de la encapsulación:

  • Ocultación y abstracción de datos: los detalles innecesarios, la representación interna y la implementación se ocultan a los usuarios finales para proteger la estructura de datos y la clase. El acceso a los datos está prohibido por parte de miembros de otras clases mediante la creación de métodos privados. Protege el estado interno de cualquier objeto manteniendo las variables miembro privadas y evitando cualquier estado inconsistente. Es el encerramiento de datos y operaciones relacionadas en ese objeto.

    Nota: La encapsulación se usa para ocultar las vistas internas del cliente.

  • Seguridad de los datos: la encapsulación ayuda a que los datos sean muy robustos y seguros, ya que los datos y las funciones de los miembros se envuelven para formar un objeto. Todas las tareas se realizan en el interior sin ninguna preocupación externa y también hace la vida muy fácil.
  • Reduce la complejidad: la encapsulación ayuda a reducir la complejidad del desarrollo del software al ocultar los detalles de implementación y exponer los métodos u operaciones.
  • Reutilización: hay instancias, no tiene que volver a escribir la misma funcionalidad que heredó de la clase principal.
  • Confiabilidad: puede hacer que la clase sea de solo lectura o solo escritura escribiendo métodos SET o GET.
  • Pruebas de código más fáciles: el código PHP encapsulado es fácil de probar, ya que las funciones utilizadas para probar la clase secundaria también garantizan la prueba de las funciones de la clase principal.
  • Mayor flexibilidad: se puede acceder a las variables de clase mediante los métodos GET o SET, lo que aumenta la flexibilidad. Es fácil de mantener ya que la implementación interna se puede cambiar sin cambiar el código.

Conclusión: la programación orientada a objetos en PHP se logra utilizando el concepto de encapsulación que se utiliza para ocultar información. Reduce la fácil accesibilidad de los atributos de la clase actual. Los métodos Getter y Setter se utilizan para evitar el acceso externo no deseado. También ayuda a validar nuevos valores asignados a las propiedades.
En resumen, la encapsulación en PHP es el proceso de ocultar todos los detalles secretos de un objeto que en realidad no contribuyen mucho a las características cruciales de la Clase.

Publicación traducida automáticamente

Artículo escrito por geetanjali16 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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