{"id":5253,"date":"2026-01-04T20:20:24","date_gmt":"2026-01-04T19:20:24","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5253"},"modified":"2026-01-04T20:20:25","modified_gmt":"2026-01-04T19:20:25","slug":"28-autoload-en-php","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/28-autoload-en-php\/","title":{"rendered":"28. Autoload en PHP"},"content":{"rendered":"\n<p>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 <em>Models<\/em> que tendr\u00e1 el archivo <em>Course.php<\/em> que contendr\u00e1 la clase <strong><em>Course.<\/em><\/strong> Por otro lado vamos a crear la carpeta <em>Controllers<\/em> que tiene el archivo <em>CourseController.php<\/em> que contendr\u00e1 la clase <strong><em>CourseController.<\/em><\/strong> Por \u00faltimo creamos un archivo <em>index.php<\/em> que llamar\u00e1 a las clases citadas.<\/p>\n\n\n\n<p>Veamos la sintaxis del archivo <em>Models\/Course.php<\/em><\/p>\n\n\n\n<p><em>Course.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n&lt;?php\n\n  namespace Models;\n\n  class Course {\n    public function saludar(){\n      echo \"Saludo desde la clase Course\";\n    }\n  }<\/code><\/pre>\n\n\n\n<p>Ahora veamos la sintaxis del archivo <em>Controllers\/CourseController.php<\/em><\/p>\n\n\n\n<p><em>CourseController.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\n  namespace Controllers;\n\n  class CourseController {\n    public function saludar(){\n      echo \"Saludo desde la clase CourseController\";\n    }\n  }<\/code><\/pre>\n\n\n\n<p>Y por \u00faltimo vamos a ver la sintaxis del archivo <em>index.php<\/em> que llamar\u00e1 a los dem\u00e1s archivos.<\/p>\n\n\n\n<p><em>index.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\n  use Controllers\\CourseController;\n  use Models\\Course;\n\n  spl_autoload_register(function($clase){\n    if (file_exists(str_replace('\\\\' ,'\/', $clase) . \".php\")) {\n      require_once(str_replace('\\\\' ,'\/', $clase) . \".php\");\n    }\n  });\n\n  $course = new Course;\n  $course->saludar();\n\n  echo \"&lt;br \/>\";\n  \n  $courseController = new CourseController;\n  $courseController->saludar();<\/code><\/pre>\n\n\n\n<p>Para llamar a cualquier clase vamos a hacer uso de la funci\u00f3n <strong><em>PHP spl_autoload_register(<\/em><\/strong>), la cual tendr\u00e1 la sintaxis incluida en el ejercicio, y permitir\u00e1 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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A medida que nuestro programa va creciendo, es muy probable que queramos organizar nuestros documentos en varias carpetas y subcarpetas, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":27,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5253","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"A medida que nuestro programa va creciendo, es muy probable que queramos organizar nuestros documentos en varias carpetas y subcarpetas, [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=5253"}],"version-history":[{"count":3,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5253\/revisions"}],"predecessor-version":[{"id":5256,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5253\/revisions\/5256"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/4518"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=5253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}