PHP OO: Practicando - Método Construct - Parte 4

Para facilitar el uso de los objetos, PHP también proporciona una serie de métodos mágicos o métodos especiales que son llamados cuando ciertas acciones comunes ocurren dentro de los objetos. Esto permite a los desarrolladores realizar una serie de tareas útiles con relativa facilidad.
Compartir:

Método Constructor __construct()

El método __construct() de una class sirve para ejecutar algun comportamiento o acción luego en el momento en que una instancia de la misma sea creada, siendo apropiado este método para cualquier inicialización que el objeto pueda necesitar antes de ser usado. Esto trae ventajas pues evita la ejecución de tareas repetitivas y obligatorias.

  • Continuando con el ejemplo de nuestra class miClase del ejemplo del Artículo: Definiendo Métodos de Clases,
    • Adicionaremos el siguiente fragmento de código resaltado en rojo, justo debajo de la $propiedad1, y dentro de las llaves que envuelven a la class miClase, como vemos aquí abajo:


<?php
class miClase
{
    public $propiedad1 = "Yo soy una propiedad de la class miClase";
    
    public function __construct()
    {
        echo 'La class "',__CLASS__,'" fue iniciada!<br />';
    }
    
    public function setPropiedad1($nuevovalor)
    {
        $this->propiedad1 = $nuevovalor;
    }
    public function getPropiedad1() 
    {
        return $this->propiedad1 . "<br />";
    }
}
//Creando los 2 objetos
$objeto = new miClase;
$objeto2 = new miClase; 

//var_dump($objeto);
//echo $objeto->propiedad1;

//Obteniendo el valor de propiedad1 de $objeto y $objeto2
//echo $objeto->getPropiedad1();
//echo $objeto2->getPropiedad1();

//Estableciendo nuevos valores para $objeto y $objeto2 con setPropiedad1
//$objeto->setPropiedad1("Yo soy un nuevo valor para propiedad1");
//$objeto2->setPropiedad1("Yo pertenezco a la segunda instancia objeto2!");

//Obtener ("get") en pantalla los valores establecidos anteriormente,
//echo $objeto->getPropiedad1();
//echo $objeto2->getPropiedad1();

//$objeto->setPropiedad1("Yo soy un nuevo valor para la propiedad1!");
//echo $objeto->getPropiedad1();
?>

  • Como podemos notar hemos comentado algunas líneas y hemos dejado activas sólo las líneas que crean los 2 objetos y
    • definiendo el método __construct(), el cual en conjunto con el constructor echo y la constante mágica __CLASS__, nos devolveran el nombre de la class de la que es llamada, en nuestro caso es la class miClase.
      • Ahora veamos lo que obtenemos!:
  • Como podemos ver estoy resaltando en amarillo el comportamiento de $objeto que es generado por el método __construct() y  el comportamiento de $objeto2 generado por este mismo método.
    • Con este resultado en pantalla comprobamos que el método __construct genera una inicialización con tan sólo crear un nuevo objeto.

Ejemplo 2:

Para completar este artículo, hemos codificado otro ejemplo que detalla más profundamente este método mágico!
  • Primero para hacer efectivo nuestro ejemplo, crearemos una base de datos llamada usuarios, todo desde nuestro entorno, en mi caso Xampp
  • Imaginemos una class conexion, declarémosla de la manera que hemos aprendido:

<?php
class conexion
{
    
}
  • Ahora definamos el método __construct(), con la propiedad de visibilidad public, que hará a este y a sus miembros accesible desde cualquier parte del bloque de código. 
    • Luego realizamos la codificación para accesar a nuestra base de datos utilizando la extensión mysqli, veamos:

<?php
class conexion
{
    public function __construct($servidor,$usuario,$contrasenia,$bd)
    {
        $connection = mysqli_connect($servidor,$usuario,$contrasenia,$bd);
        // Checkeando la conexión
        if (!$connection) {
            die("Conexión fallida: " . mysqli_connect_error());
        }
        echo "Conexion Satisfactoria";
    }
}

  • Como podemos ver es una class de conexión que cuando instanciada deberá recibir los parámetros para conectarse a un banco de datos MySQL.
    • Ahora pues instanciemos la class conexion y pasemos los parámetros para que el método aplique esa conexión, veamos:

<?php
class conexion
{
    public function __construct($servidor,$usuario,$contrasenia,$bd)
    {
        $connection = mysqli_connect($servidor,$usuario,$contrasenia,$bd);
        // Checkeando la conexión
        if (!$connection) {
            die("Conexión fallida: " . mysqli_connect_error());
        }
        echo "Conexion Satisfactoria";
    }
}

$conn = new conexion ('localhost','root','***','usuarios');

  • Con esto habremos instanciado a nuestra class conexion y pasado los datos para que realize la conexión y nos devuelva "Conexión Satisfactoria" ó "Conexión Fallida" de acuerdo al éxito ó  al fallo de la conexión!
  • Espero haber sido claro y ustedes hayan entendido como es que este Método Mágico de class funciona y los invito a practicar utilizando nombres diferentes de class, de objetos y nuevos valores para cada propiedad así como nombres para estos métodos. No olviden que sin practica no habrá suceso!
Compartir:
Localización Gov. Celso Ramos, SC, Brasil

PHP

PHP Orientado a Objetos

Déjenos su Comentário:

0 commentários: