Manipulando clases en PHP

   Es que sin duda PHP se ha convertido en uno de los lenguajes mas populares en la web, sobre todo desde que Wordpress comenzó a utilizarlo en su entorno. A pesar de ser el mas utilizado, me encuentro con que hay mucha gente que no sabe ni la mitad de sus métodos, no utiliza las clases, no hace llamados a funciones, etc.... Una de las cosas mas importantes que debemos tener en cuenta al momento de programar es hacer un código óptimo y lo mas genérico posible.

   Con esto me refiero a que mucha gente (por ejemplo) crea un archivo para conectar a una base de datos utilizando MySQL, entonces crea el archivo y comienza con los "include" por todos lados en su código..... No es el deber ser!!!

   Lo correcto es crear una clase, por ejemplo "mysql.php" y desde allí llamar a todos sus métodos y retornar los valores, tal cual como explico en esta entrada con Java. Entonces vamos a explicar lo mismo para PHP.

   Primero lo primero, el constructor... Es un método que se invoca al inicializar nuestra clase, el método es llamado como "__construct()", sin embargo tiene una variante, tambien puede llamarse igual que la clase (y sigo, igual que en Java), tambien existe el método inverso pero no viene al caso.

   A este método podemos enviarle parámetros para inicializar variables, por ejemplo, tengo una variable, le envio un valor a la clase y así esa variable tendra el valor que definamos.

class Persona {

 private $nombre;
 
 public function __construct($un_nomrbre){
  $this->nombre = $un_nomrbre;
 }
 
 public function getNombre(){
  return $this->nombre;
 } 
}

   Como podemos ver, al inicializar la clase estamos definiendo los valores que tendra cada variable, y luego utilizamos funciones para retornar esos valores. Ahora solo nos resta hacer la llamada, para hacer esto debemos inicializar la clase y almacenar su valor en una variable, y luego cargar los métodos a partir de dicha variable, siguiendo con lo anterior:

$persona = new Persona ('Un Nombre');

echo "Nombre: ".$persona->getNombre();

   Una vez que sabemos esto entonces podemos comenzar a crear nuestra clase, como no me gusta estar creando "setters y getters" prefiero que en la inicialización de la clase se seteen los valores y luego los retorno con funciones, para este ejemplo utilizaremos una clase llamada "Persona" (como venimos trabajando en la entrada), y el archivo "clase_persona.php"...

class Persona {

 private $nombre;
 private $apellido;
 private $direccion;

 // Defino las variables al inicializar
 public function __construct($un_nomrbre, $un_apellido, $una_direccion){
  $this->nombre = $un_nomrbre;
  $this->apellido = $un_apellido;
  $this->direccion = $una_direccion;
 }
 
 // Con los GET retorno los valores
 public function getNombre(){
  return $this->nombre;
 }
 
 public function getApellido(){
  return $this->apellido;
 }
 
 public function getDireccion(){
  return $this->direccion;
 }
}

   Y ya solo nos resta incluir la clase y llamar a sus métodos:

// Cargo la clase al archivo
include('clase_persona.php');

// Inicializo la clase
$persona = new Persona ('Un Nombre', 'Un Apellido', 'Carlitox en la Web');

// Muestro los valores
echo "Nombre: ".$persona->getNombre()."<br/>".
  "Apellido: ".$persona->getApellido()."<br/>".
  "Direccion: ".$persona->getDireccion();

   Para ver el ejemplo correctamente recuerda tener ambos archivos en el mismo directorio, de lo contrario asegurémonos de definir bien la dirección del archivo en el include...