{"id":4930,"date":"2025-11-18T11:15:00","date_gmt":"2025-11-18T10:15:00","guid":{"rendered":"https:\/\/sutilweb.eu\/?p=4930"},"modified":"2025-11-13T18:00:30","modified_gmt":"2025-11-13T17:00:30","slug":"enrutadores-en-php-guia-practica-para-proyectos-modernos","status":"publish","type":"post","link":"https:\/\/sutilweb.eu\/index.php\/2025\/11\/18\/enrutadores-en-php-guia-practica-para-proyectos-modernos\/","title":{"rendered":"Enrutadores en PHP: gu\u00eda pr\u00e1ctica para proyectos modernos"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p>Los <strong>enrutadores en PHP<\/strong> se han convertido en una pieza clave para construir aplicaciones modernas, limpias y f\u00e1ciles de mantener. Gracias a un enrutador, puedes crear <strong>URLs amigables<\/strong>, separar la l\u00f3gica del c\u00f3digo y mejorar la organizaci\u00f3n interna de tus proyectos. Este enfoque es esencial tanto si trabajas con <strong>PHP puro<\/strong>, como si m\u00e1s adelante das el salto a frameworks profesionales.<\/p>\n\n\n\n<p>En este art\u00edculo aprender\u00e1s qu\u00e9 es un enrutador, por qu\u00e9 es importante y c\u00f3mo crear <strong>tu propio enrutador en PHP desde cero<\/strong>, con un ejemplo pr\u00e1ctico que podr\u00e1s utilizar en tus proyectos o adaptarlo a la arquitectura MVC que ya est\u00e1s estudiando.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 es un enrutador y por qu\u00e9 es importante<\/h2>\n\n\n\n<p>Un <strong>enrutador<\/strong> es un componente que analiza la URL solicitada por el navegador y decide <strong>qu\u00e9 c\u00f3digo debe ejecutarse<\/strong>. Sin un enrutador, PHP ejecuta directamente cada archivo solicitado; con un enrutador, defines rutas limpias y organizas funciones o controladores.<\/p>\n\n\n\n<p><strong>Ventajas clave:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>URLs <strong>m\u00e1s limpias y profesionales<\/strong><\/li>\n\n\n\n<li>C\u00f3digo m\u00e1s organizado<\/li>\n\n\n\n<li>Facilita aplicar el patr\u00f3n <strong>MVC<\/strong><\/li>\n\n\n\n<li>Hace tu web <strong>m\u00e1s escalable<\/strong><\/li>\n\n\n\n<li>Mejora el SEO puesto que permite construir enlaces estructurados<\/li>\n<\/ul>\n\n\n\n<p>Ejemplo de URL sin enrutador:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;tuweb.com\/producto.php?id=5<\/code><\/pre>\n\n\n\n<p>Ejemplo con enrutador:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;tuweb.com\/productos\/5<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Ejemplo pr\u00e1ctico de un enrutador en PHP<\/h2>\n\n\n\n<p>A continuaci\u00f3n ver\u00e1s un ejemplo sencillo y totalmente funcional que puedes usar en Sutil Web o en tu aplicaci\u00f3n MVC.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Estructura b\u00e1sica<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/project\n   \/controllers\n       HomeController.php\n       AboutController.php\n   index.php\n   router.php<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Archivo <em>router.php<\/em><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\n$routes = &#91;\n    '\/' => 'HomeController@index',\n    '\/about' => 'AboutController@index'\n];\n\n$uri = parse_url($_SERVER&#91;'REQUEST_URI'], PHP_URL_PATH);\n\nif (array_key_exists($uri, $routes)) {\n    list($controller, $method) = explode('@', $routes&#91;$uri]);\n    require \"controllers\/$controller.php\";\n    $instance = new $controller;\n    $instance->$method();\n} else {\n    http_response_code(404);\n    echo \"P\u00e1gina no encontrada\";\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Controlador de ejemplo: <em>HomeController.php<\/em><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nclass HomeController {\n    public function index() {\n        echo \"&lt;h1>Bienvenido a Sutil Web&lt;\/h1>\";\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Archivo principal <em>index.php<\/em><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nrequire 'router.php';<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo funciona<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>El navegador solicita una URL.<\/li>\n\n\n\n<li>El <strong>router.php<\/strong> analiza la ruta.<\/li>\n\n\n\n<li>Busca en el array <code>$routes<\/code>.<\/li>\n\n\n\n<li>Si coincide, carga el controlador y el m\u00e9todo.<\/li>\n\n\n\n<li>Si no existe, muestra error 404.<\/li>\n<\/ol>\n\n\n\n<p>Con pocas l\u00edneas tienes un sistema de rutas <strong>simple, extensible y profesional<\/strong>, perfecto como base para tus aplicaciones.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Los enrutadores en PHP se han convertido en una pieza clave para construir aplicaciones modernas, limpias y f\u00e1ciles de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4932,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","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":""},"categories":[1],"tags":[410,399],"class_list":["post-4930","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lenguajes-de-programacion","tag-enrutadores-en-php","tag-php"],"uagb_featured_image_src":{"full":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2025\/11\/Enrutadores-en-PHP.png",1536,1024,false],"thumbnail":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2025\/11\/Enrutadores-en-PHP-150x150.png",150,150,true],"medium":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2025\/11\/Enrutadores-en-PHP-300x200.png",300,200,true],"medium_large":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2025\/11\/Enrutadores-en-PHP-768x512.png",768,512,true],"large":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2025\/11\/Enrutadores-en-PHP-1024x683.png",1024,683,true],"1536x1536":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2025\/11\/Enrutadores-en-PHP.png",1536,1024,false],"2048x2048":["https:\/\/sutilweb.eu\/wp-content\/uploads\/2025\/11\/Enrutadores-en-PHP.png",1536,1024,false]},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Introducci\u00f3n Los enrutadores en PHP se han convertido en una pieza clave para construir aplicaciones modernas, limpias y f\u00e1ciles de [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts\/4930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"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=4930"}],"version-history":[{"count":1,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts\/4930\/revisions"}],"predecessor-version":[{"id":4931,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/posts\/4930\/revisions\/4931"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media\/4932"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=4930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/categories?post=4930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/tags?post=4930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}