¿Quieres registrarte?

HMVC: Extensión para crear módulos o plugins en Codeigniter

Por: Inyaka
3 de Mayo del 2009
2505 de clabLevel
Otros artículos de Inyaka
4,056 visitas

Ya he presentado mi framework favorito CodeIgniter. Ahora les presentare una extensión que nos permitirá agregar un nuevo paradigma de crear aplicaciones modulares a nuestro framework. Nos permitirá crear aplicaciones independientes dentro de nuestra aplicación, parecido a lo que hace Drupal con sus módulos o Wordpress con sus plugins. Esta extensión se llama HMVC

Instalación de HMVC



  1. Instala y configura normalmente CI
  2. Verifica que funciona el controlador welcome en: http://tuaplicasion.com/?/welcome
  3. Baja la extensión HMVC.
  4. Luego descomprimela y tendrás 3 archivos

    1. Controller.php lo pegaras en system/libraries
    2. Modules.php lo pegaras en system/libraries
    3. MY_Router lo pegaras en system/application/libraries

  5. En system/application/ crearas la carpeta modules
  6. En modules podrás crear tus módulos, los cuales tendrán la misma estructura que las carpetas en application, probaremos esto creando el modulo enemigos.

    1. en system/application/modules creas la carpeta enemigos con las sub-carpetas controllers y views
    2. en system/application/modules/enemigos/controllers creamos el controlador enemigos.php

      Código :

      <?php
      class Enemigos extends Controller {
      
         function __construct()
         {
            parent::Controller();   
         }
         
         function index()
         {
            $this->load->view('lista_enemigos');
         }
      }
      ?>
      

    3. En system/application/modules/enemigos/views creamos el controlador lista_enemigos.php

      Código :

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      <head>
          <title>Mis Enemigos</title>
      </head>
      <body>
          <h1>Mis Enemigos</h1>
          <ul>
              <li>XKlibur</li>
              <li>Freddie</li>
              <li>Eldervaz</li>
              <li>Porcinos en general</li>
          </ul>
      </body>
      </html>
      


  7. finalmente probamos que nuestro nuevo modulo funciona (y que sabes reconocer a tus enemigos) http://tuaplicasion.com/?/enemigos
  8. notaras que http://tuaplicasion.com/?/welcome aun funciona ;)

 


También te interesa


Etiquetas php poo codeigniter

Comentarios | Enviar un comentario
fantástico!
Por: jpcw
Esta librería la tengo en vistas desde hace rato, tengo que hacer un rato para ver como se usa. A ver si esta guía me ayuda!
Por: josepzin-blog
gracias sirvio mucho!!
Por: eve-blog
en views creamos el controlador lista_enemigos?, error de dedo supongo, bueno yo todavia no entiendo las ventajas de hacer uso de modulos, a fin de cuenta son controladores y vistas, hay algun aspecto tecnico que se me escape? en los foros de CI mencionan esto "In CI we can?t call more than 1 controller per request. Therefore, to achieve HMVC, we have to simulate controllers. It can be done with libraries, or with this ?Modular HMVC? contribution."

Pero no entiendo a que se refieren, de todas formas probando estamos y no es albur.
Por: allende-blog
cuando tengas un sistema grande, con muchos views, muchos modelos, y no sepas qwue es de que ni donde esta eso, veras la utilidad de los modulos XD


ademas, para portar codigo de un sistema a otro, es mucho mas sencillo si utilizas modulos
Por: Inyaka
Perfecto!, muy buen tip
Por: lopezquekk-blog
Estoy empezando un sitio del tipo frontend/backend con codeigniter. Es decir, tendrá una parte de navegación para los usuarios y un panel privado para los administradores, desde donde agregar y modificar el contenido.

Estuve pensando como hacer esto con codeigniter y lei sobre hmvc...es recomenable? porque lei que sirve mucho para aplicaciones muuuy grandes.

Por favor, contestarme por mail. Un saludo
Por: DuDe (dudesl@gmail.com)-b
Hola creo que hay un problema de esa libreria cuando habilitas el profiler

Call to a member function _assign_libraries() on a non-object in J:\WWW\affilied\system\libraries\Loader.php on line 1035

Estoy intentando encontrar el problema , pero si alguien mas lo encuentra no me opongo
Por: Alberto-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.