A medida que nuestro programa va creciendo, es muy probable que queramos organizar nuestros documentos en varias carpetas y subcarpetas, por ejm, vamos a crear la carpeta Models que tendrá el archivo Course.php que contendrá la clase Course. Por otro lado vamos a crear la carpeta Controllers que tiene el archivo CourseController.php que contendrá la clase CourseController. Por último creamos un archivo index.php que llamará a las clases citadas.
Veamos la sintaxis del archivo Models/Course.php
Course.php
<?php
namespace Models;
class Course {
public function saludar(){
echo "Saludo desde la clase Course";
}
}
Ahora veamos la sintaxis del archivo Controllers/CourseController.php
CourseController.php
<?php
namespace Controllers;
class CourseController {
public function saludar(){
echo "Saludo desde la clase CourseController";
}
}
Y por último vamos a ver la sintaxis del archivo index.php que llamará a los demás archivos.
index.php
<?php
use Controllers\CourseController;
use Models\Course;
spl_autoload_register(function($clase){
if (file_exists(str_replace('\\' ,'/', $clase) . ".php")) {
require_once(str_replace('\\' ,'/', $clase) . ".php");
}
});
$course = new Course;
$course->saludar();
echo "<br />";
$courseController = new CourseController;
$courseController->saludar();
Para llamar a cualquier clase vamos a hacer uso de la función PHP spl_autoload_register(), la cual tendrá la sintaxis incluida en el ejercicio, y permitirá que llamemos a cualquier clase utilizando dicha sintaxis. Es importante que los namespaces tengan el nombre de la carpeta que contiene el archivo con la clase correspondiente, y que las clases tengan el mismo nombre que los archivos que las contienen para que todo ello funcione.
