Qué es la programación orientada a objetos POO

PHP siempre ha sido un lenguaje de programación estructurada, se puede programar perfectamente paginas web, con includes y funciones pero ante la creciente popularidad y cada vez más complejos proyectos los programadores empezaron a pedir un poco el cambio de estructura hasta llegar a la programación orientada a objetos.
Así pues desde php5 todo el código de programación orientada a objetos fue reescrito para aumentar el rendimiento, a día de hoy es muy normal utilizar POO en pequeños y grandes proyectos ya que la programación orientada a objetos nos ayuda a economizar código, creando objetos simples y con la ayuda de herencias poder ir sumando características hasta llegar a objetos más complejos.
Un objeto en php tiene Atributos y métodos, los atributos es lo que define al objeto son variables y arrays , los métodos son las acciones que se puede hacer con el objeto, tomando como ejemplo a wordpress, imagina este articulo que estás leyendo.
Este articulo tiene un atributo que lo define como entrada que puede ser la id del artículo, el titulo, el contenido y la fecha que se creo, todo esto es el articulo pero que se puede hacer con este articulo, que acciones se pueden realizar sobre este articulo, eso son los métodos.
Pues los métodos podrían ser, crear un nuevo artículo, editar, borrar o ver.

Cómo definir una clase, propiedades y métodos

Para definir una clase en php se utiliza la palabra reservada class nombre de la clase y se abren y cierran llaves {} todo lo que hay dentro de estas llaves son los objetos. La sintaxis es la siguiente

<?php 
class NombreClase { 
// Definicion de las propiedades de la clase 
// Definicion de los metodos de la clase 
} 
?>

Una vez creada la clase tiene que tener unas propiedades, estas propiedades están divididas en tres categorías
Public: Cuando damos este nivel de acceso a la propiedad este puede ser accedido desde cualquier parte de la clase
Private: Cuando damos este nivel de acceso a la propiedad esta propiedad solo puede ser accedida desde su propia clase
Protected: Cuando damos este nivel de acceso la propiedad no puede ser usada por ninguna clase que no pertenezca a la subclase

<?php
class NombreClase
{
   // Definición de las propiedades de la clase
   Public $id;
   private $autor;
   protected $contraseña
   // Definición de los métodos de la clase
}

Vamos muy bien, ya tenemos creada la clase y la hemos definido, pero la pregunta es… ¿ahora qué se puede hacer con esa clase? para eso existen los métodos de clase como ya te he explicado, el método de una clase son todas las acciones que se pueden hacer sobre la clase.

<?php
class NombreClase
{
   // Definición de las propiedades de la clase
   Public $id;
   private $autor;
   protected $contraseña
   // Definición de los métodos de la clase
      Public function BorrarEntrada($id){
          //aquí tendría que ir el código PHP para borrar la entrada
      }
      private function ModificarContrasena($id){
           //aquí tendría que ir el código PHP para modificar la entrada
      }
}

En muchísimas ocasiones vamos a querer que al inicializar un objeto, ese objeto automáticamente cargue unas propiedades, para eso tenemos el método __construct(){}, también tenemos un destructor que casi no se utiliza ya que php se encarga de borrar todas las variables al finalizar el script y mostrar el resultado.

Usar los objetos creados

Vamos muy bien, ya tenemos nuestro objeto creado pero ahora falta usar esos objetos y sus métodos
Para hacer esto primero tenemos que instanciar el objeto esta instancia va dentro de una variable en este caso $objeto = new NombreClase(); después de tener instanciada la clase podremos usar sus métodos de la siguiente manera $objeto -> BorrarEntrada($id);