diciembre 21, 2021

Páginas estáticas¶

Nota: Este tutorial asume que ha descargado CodeIgniter e instalado el framework en su entorno de desarrollo.

Lo primero que vas a hacer es configurar un controlador en páginas handlestatic. Un controlador es simplemente una clase que ayuda a delegar work.It es el pegamento de su aplicación web.

Por ejemplo, cuando se realiza una llamada a:

podríamos imaginar que hay un controlador llamado «noticias». El método que se solicita en las noticias sería «último». El trabajo del método de noticias podría ser reunir 10 noticias y mostrarlas en la página. Muy a menudo en MVC, verás patrones de URL que coinciden:

A medida que los esquemas de URL se vuelven más complejos, esto puede cambiar. Pero por ahora, esto es todo lo que necesitamos saber.

Crear un archivo en application / controllers / Pages.php con el siguiente código.

<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}

Ha creado una clase llamada Pages, con un método view que acepta un argumento llamado $page. La clase Pages está extendiendo la claseCI_Controller. Esto significa que la nueva clase pages puede acceder a los métodos y variables definidos en la clase CI_Controller (system / core / Controller.php).

El controlador es lo que se convertirá en el centro de cada solicitud de nuestra aplicación web. En discusiones de CodeIgniter muy técnicas, tal vez se le conoce como el super objeto. Al igual que cualquier clase php, se refiere a it dentro de sus controladores como $this. Haciendo referencia a $this es cómo cargará bibliotecas, vistas y, en general, dirigirá el marco de trabajo.

Ahora que ha creado su primer método, es hora de hacer algunas plantillas de páginas básicas. Crearemos dos «vistas» (plantillas de página) que actúan como nuestro pie de página y encabezado.

Cree el encabezado en aplicación / vistas/plantillas / encabezado.php y añadir el siguiente código:

<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>

El encabezado contiene el código HTML básico que querrá mostrar antes de cargar la vista principal, junto con un encabezado. También generará la variable $title, que definiremos más adelante en el controlador.Ahora, cree un pie de página en aplicación / vistas/plantillas / pie de página.php que incluye el siguiente código:

 <em>&copy; 2015</em> </body></html>

Agregar lógica al controlador¶

Anteriormente configuró un controlador con un método view(). El método acepta un parámetro, que es el nombre de la página a cargar. Las plantillas de página estáticas se ubicarán en el directorio application/views/pages/.

En ese directorio, cree dos archivos llamados home.php y alrededor.php.Dentro de esos archivos, escribe algo de texto (lo que quieras) y guárdalos.Si te gusta ser particularmente poco original, prueba » Hello World!».

Para cargar esas páginas, tendrá que verificar si la página solicitada existe realmente:

public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}

Ahora, cuando la página existe, se carga, incluidos el encabezado y el pie de página, y se muestra al usuario. Si la página no existe, se muestra el error «404Page not found».

La primera línea de este método comprueba si la página existe realmente.La función nativa file_exists() de PHP se utiliza para comprobar si el archivo está donde se espera que esté. show_404() es una función CodeIgniter incorporada que renderiza la página de error predeterminada.

En la plantilla de encabezado, se utilizó la variable $title para personalizar el título de la página. El valor de title se define en este método, pero en lugar de asignar el valor a una variable, se asigna al elemento title en la matriz $data.

Lo último que hay que hacer es cargar las vistas en el orden en el que se deben mostrar. El segundo parámetro del método view() se utiliza para pasar valores a la vista. Cada valor de la matriz $data se asigna a una variable con el nombre de su clave. Por lo tanto, el valor de$data en el controlador es equivalente a $title en theview.

Enrutamiento¶

El controlador está funcionando! Apunte su navegador aindex.php/pages/view para ver su página. Cuando visitesindex.php/pages/view/about, verás la página acerca de, que incluye de nuevo el encabezado y el pie de página.

Usando reglas de enrutamiento personalizadas, tiene el poder de asignar cualquier URI a anycontroller y método, y liberarse de la convención normal:http://example.com///

Hagámoslo. Abra el archivo de enrutamiento ubicado enaplicación / configuración / rutas.php y agregue las siguientes dos líneas.Elimine el resto del código que establece cualquier elemento en el array $route.

$route = 'pages/view';$route = 'pages/view/';

CodeIgniter lee sus reglas de enrutamiento de arriba a abajo y las dirige a la primera regla coincidente. Cada regla es una expresión regular(lado izquierdo) asignada a un controlador y nombre de método separados por barras (lado derecho). Cuando llega una solicitud, CodeIgniter busca la primera coincidencia y llama al controlador y al método apropiados, posiblemente con argumentos.

Se puede encontrar más información sobre enrutamiento en la documentación de enrutamiento de URI.

Aquí, la segunda regla de la matriz $route coincide con cualquier solicitud utilizando la cadena comodín (:any). y pasa el parámetro al métodoview() de la clase Pages.

Ahora visita index.php/about. ¿Se enrutó correctamente al método view()en el controlador de páginas? ¡Órale!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.