Tutorial de PHP MVC Framework: Ejemplo de CodeIgniter

¿Qué es el framework PHP MVC?

PHP MVC es un patrón de diseño de aplicaciones que separa los datos de la aplicación y la lógica empresarial (modelo) de la presentación (vista). MVC son las siglas de Model, View & Controller.

El controlador media entre los modelos y las vistas.

Piense en el patrón de diseño MVC como un automóvil y el conductor.

El automóvil tiene los parabrisas (vista) que el conductor (controlador) usa para monitorear el tráfico adelante y luego la velocidad o el freno (modelo) dependiendo de lo que vea adelante.

¿Por qué usar PHP MVC Framework?

  • PHP MVC Frameworks simplifica el trabajo con tecnologías complejas al;
    • Ocultar todos los detalles de implementación complejos
    • Proporcionar métodos estándar que podemos utilizar para crear nuestras aplicaciones.
    • Aumento de la productividad del desarrollador, esto se debe a que la implementación básica de actividades como la conexión a la base de datos, la desinfección de la entrada del usuario, etc. ya se implementan parcialmente.
    • Adherencia a los estándares de codificación profesionales

En este tutorial, aprenderá:

  • Patrón de diseño PHP MVC
  • Tipos de framework PHP MVC
  • Portando la aplicación de encuesta de opinión a CodeIgniter
  • Opciones de configuración de la base de datos
  • Creando Nuestro Modelo
  • Creando Nuestras Vistas
  • Probando nuestra aplicación

Patrón de diseño PHP MVC

Analicemos ahora brevemente cada componente del patrón de diseño MVC.

Modelo : esta parte se ocupa de la lógica empresarial y los datos de la aplicación. Se puede utilizar para realizar validaciones de datos, procesar datos y almacenarlos. Los datos pueden provenir de;

  • archivo plano
  • base de datos
  • Documento XML
  • Otras fuentes de datos válidas.

Controlador : esta es la parte que se ocupa de las solicitudes de recursos del servidor por parte de los usuarios.

Por ejemplo, cuando los usuarios soliciten la URL… /index.php?products=list, el controlador cargará el modelo de productos para recuperar los datos de los productos y luego mostrará los resultados en la vista de lista.

En pocas palabras, el controlador vincula los modelos y las vistas en función de los recursos solicitados.

Vistas : esta parte trata de presentar los datos al usuario. Suele presentarse en forma de páginas HTML.

Tipos de framework PHP MVC

Seleccionar el mejor framework PHP es un desafío.

No tiene que escribir su propio marco para beneficiarse de las ventajas de MVC.

Solo debe intentar crear su propio diseño de aplicación relacionado con MVC para comprender cómo funcionan los marcos MVC.

Una vez que se sienta cómodo con la forma en que funcionan los marcos MVC, debe pasar a los marcos maduros y ya probados.

La siguiente tabla describe brevemente algunos de los frameworks php populares y las características que ofrece cada framework.

Marco de referencia Descripción
CodeIgniter https://codeigniter.com/ Es uno de los frameworks PHP MVC más populares. Es liviano y tiene una curva de aprendizaje corta. Tiene un amplio conjunto de bibliotecas que ayudan a crear sitios web y aplicaciones rápidamente. Los usuarios con conocimientos limitados de programación OOP también pueden usarlo. Las aplicaciones impulsadas por CodeIgniter incluyen;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Es un marco seguro y ligero HMVC de controlador de vista de modelo jerárquico. Tiene un rico conjunto de componentes para desarrollar aplicaciones rápidamente. Las empresas que utilizan Kohana incluyen;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Está inspirado en Ruby on rails. Es conocido por conceptos tales como patrones de diseño de software, convención sobre configuración, ActiveRecord, etc. Las aplicaciones impulsadas por CakePHP incluyen;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend Es un marco poderoso que es;
  • Seguro, confiable, rápido y escalable
  • Soporta Web 2.0 y creación de servicios web.
Cuenta con API de proveedores como Amazon, Google, Flickr, Yahoo, etc. Es ideal para desarrollar aplicaciones comerciales. Las aplicaciones impulsadas por Zend incluyen;
  • Pimcore CMS,
  • DotKernel.
Las empresas que utilizan el marco Zend incluyen;
  • BBC
  • Cisco
  • Webex
  • Ofertas.com

Portando la aplicación de encuesta de opinión a CodeIgniter

En este tutorial, creamos una aplicación de encuesta PHP. Aquí, portaremos ese código a CodeIgniter

  • Descargue la última versión de CodeIgniter de su sitio web.
  • Extraiga el contenido del archivo comprimido en su directorio de desarrollo en el directorio de su servidor web. Usaremos ciopinionpoll como nombre de carpeta en esta lección.
  • Busque la URL http: // localhost / ciopinionpoll /

Ahora vamos a trasladar nuestra aplicación de encuesta de opinión a CodeIgniter. Recuerde que nuestra aplicación se dividió en tres componentes principales, a saber;

  • Controlador frontal: esta es la parte que responde a las solicitudes de URL y devuelve la página solicitada. Este código irá al controlador.
  • Modelo: este es el código que responde a los datos solicitados y devuelve los datos solicitados. Este código entrará en el modelo.
  • Vistas: este es el código responsable de formatear y mostrar los datos. Este código irá a la vista.
    • Vaya a la carpeta ciopinionpoll
    • Abra el archivo database.php ubicado en el directorio application / config.
    • Busque las siguientes líneas de código

Opciones de configuración de la base de datos

  • Establecer el nombre de usuario como root
  • Establezca la contraseña para su contraseña de root localhost
  • Nombre de la base de datos para opinion_poll. Tenga en cuenta que usaremos la base de datos creada en la lección anterior.
  • Guarde los cambios y cierre el archivo.

Creando Nuestro Modelo

A continuación, crearemos nuestro modelo que ampliará CI_Model. CI_Model es parte de las bibliotecas CodeIgniter. El modelo estará ubicado en application / models opinion_poll_model.php

load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?>

AQUÍ,

  • "Class Opinion_poll_model extiende CI_Model ..." es nuestro modelo que extiende el CI_Model
  • "... padre :: __construct ();" llama al constructor CI_Model
  • "$ This-> load-> database ();" carga la biblioteca de la base de datos para que nuestra aplicación pueda interactuar con la base de datos
  • “$ This-> db->” es el registro activo de CodeIgniter. Consulte este enlace para obtener más información sobre el registro activo.

Creando nuestro controlador Ahora creemos el controlador. Usaremos el controlador CodeIgniter predeterminado ubicado en application / controllers / welcome.php. Reemplace sus códigos fuente con el siguiente código.

load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>

AQUÍ,

  • "If (! Defined ('BASEPATH')) exit ('No se permite el acceso directo al script');" asegura que los usuarios no accedan directamente a la clase de controlador
  • "La clase de bienvenida extiende CI_Controller ..." nuestro controlador extiende la clase CI_Controller
  • "Función pública __construct ()" llama al método de construcción de clase de CI_Controller y carga nuestro modelo Opinion_poll_model
  • “Public function index ()…” es la función que se asigna a index.php. utiliza la clase de entrada de CodeIgniter para verificar si se ha enviado un voto, agregarlo a la base de datos y luego mostrar los resultados. Si la matriz de publicaciones de la clase de entrada está vacía, carga la página de votación.
  • “$ This-> input-> post ('…')” es la clase de entrada CodeIgniter que captura el contenido de la variable global $ _POST.
  • “$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” llama al método add_vote del modelo para agregar el voto a la base de datos.

Creando Nuestras Vistas

Recuerde del ejemplo anterior que teníamos dos páginas HTML, una para votar y otra para resultados. Usaremos el mismo código HTML con modificaciones mínimas para crear nuestras vistas. Cree los siguientes archivos en el directorio de aplicaciones / vistas

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Creemos ahora la página de resultados results.php

JavaScript Libraries - Opinion Poll Results

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Return to voting page

Probando nuestra aplicación

Suponiendo que el directorio raíz de su aplicación es ciopinion, busque http: // localhost / ciopionpoll /

Haga clic en el botón Aceptar, verá el siguiente mensaje de alerta

Vote por su candidato favorito y luego haga clic en Aceptar Verá la siguiente página de resultados

Conclusión

CodeIgniter es un marco PHP MVC fácil de aprender y usar que puede reducir en gran medida el tiempo dedicado al desarrollo de aplicaciones.

Resumen

  • Un marco es un conjunto de bibliotecas que proporcionan una implementación parcial de tareas comunes.
  • PHP tiene una serie de marcos MVC de código abierto maduros y probados.
  • Un buen enfoque de desarrollo separa los datos de la presentación y fomenta el uso de un único punto de entrada en una aplicación.
  • Las aplicaciones PHP tradicionales que siguen las mejores prácticas de diseño de aplicaciones se pueden migrar a marcos MVC con modificaciones mínimas.

Articulos interesantes...