PHP Carga manual de clases con requerimiento.


Ejemplo

// Animal.php
class Animal {
    public function eats($food) {
         echo "Yum, $food!";
    }
}

// zoo.php
require 'Animal.php';
$animal = new Animal;
$animal->eats('slop');

// aquarium.php
require 'Animal.php';
$animal = new Animal;
$animal->eats('shrimp');

Aquí tenemos tres archivos. Un archivo ("Animal.php") define la clase. Este archivo no tiene efectos secundarios además de definir la clase y mantiene perfectamente todo el conocimiento sobre un "Animal" en un solo lugar. Es fácilmente versión controlada. Es fácilmente reutilizable.

Dos archivos consumen el archivo "Animal.php" al require manualmente el archivo. Nuevamente, PHP lee los archivos de origen de arriba a abajo, por lo que el servicio requiere el archivo "Animal.php" y hace que la definición de la clase Animal esté disponible antes de llamar al new Animal .

Ahora imagine que tuvimos docenas o cientos de casos en los que queríamos realizar un new Animal . Eso requeriría (destinado a los juegos de palabras) muchos, muchos require declaraciones que son muy tediosas para codificar.