IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Són les inicials de Hierarchical model–view–controller

Code Igniter

wiredesignz’s HMVC

Vegeu wiredesignz’s HMVC

Per exemple l'utilitza l'aplicació linvoice

Recursos:

Exemple d'aplicació helloworld amb HMVC, Code igniter i wiredesignz’s HMVC

NOTA: Podeu trobar l'exemple de com hauria de quedar a https://github.com/acacha/codeigniter_hmvc

L'objectiu és instal·lar una aplicació senzilla utilitzant HMVC a:

http://localhost/codeigniter_hmvc

A la carpeta:

/usr/share/codeigniter_hmvc

Previament cal tenir instal·lat codeigniter a /usr/share/codeigniter seguint les passes de:

Code_Igniter#M.C3.BAltiples_aplicacions_i_una_sola_instal.C2.B7laci.C3.B3_de_code_igniter

Ara creeu la carpeta:

$ sudo mkdir /usr/share/codeigniter_hmvc
$ cd /usr/share/codeigniter_hmvc

Copiem lo bàsic de Code Igniter:

$ sudo cp -r /usr/share/codeigniter/application .
$ sudo cp -r /usr/share/codeigniter/index.php .

Editem el fitxer index.php i ens assegurem que té la següent configuració:

$system_path = '/usr/share/codeigniter/system';

Ara configurem apache:

$ sudo joe /etc/apache2/conf.d/codeigniter_hmvc

Afegiu:

Alias /codeigniter_hmvc /usr/share/codeigniter_hmvc

I ara apliqueu els canvis a Apache:

$ sudo /etc/init.d/apache2 reload

Ara ja va la URL:

http://localhost/codeigniter_hmvc/

Falta però instal·lar el suport HMVC. Descarregueu-vos el fitxer de wiredesign i copieu es fitxers a:

$ cd /usr/share/codeigniter_hmvc
$ sudo wget https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/get/a9ac2f907154.zip

Oco nou fitxer:

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/get/fecd39c.zip

TODO: provar-lo

$ sudo unzip a9ac2f907154.zip 
$ sudo mv wiredesignz-codeigniter-modular-extensions-hmvc-a9ac2f907154/ wiredesignHMVC
$ sudo cp wiredesignHMVC/core/* application/core
$ sudo cp -r wiredesignHMVC/third_party/MX application/third_party
$ sudo rm -rf wiredesignHMVC/
$ sudo rm -rf a9ac2f907154.zip 


Ara cal configurar l'aplicació. Afegiu al final del fitxer application/config/config.php les línies:

$ sudo joe application/config/config.php
$config['modules_locations'] = array(
APPPATH.'modules/' => '../modules/',
);

Però abans de les línies finals:

/* End of file config.php */
/* Location: ./application/config/config.php */

Al fitxer;

$ sudo joe application/config/config.php

Ara ja podem crear el primer mòdul. Els moduls segons la configuració que acabem de fer van a la carpeta:

application/modules

Cal crear la carpeta i aprofitem i creem la carpeta del primer mòdul:

$ sudo mkdir -p application/modules/helloword_module

Ara aquí podem afegir els controladors, els models, les vistes:

$ sudo mkdir -p application/modules/helloword_module/controllers
$ sudo mkdir -p application/modules/helloword_module/models
$ sudo mkdir -p application/modules/helloword_module/views

Creem el primer controlador:

$ sudo geany application/modules/helloword_module/controllers/hello.php

I l'única diferència és que cal heretar de la classe MX_Controller en comptes de CI_Controller:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class hello extends MX_Controller {

public function index()	{
	$this->sayhello();
	}
	
public function sayhello( )	{
	$this->load->view('sayhello');
	}	

}
 
/* End of file hello.php */
/* Location: ./application/modules/helloworld_module/controllers/hmvc.php */

Ara cal crear la vista:

$ sudo geany application/modules/helloword_module/views/sayhello.php

I poseu:

 <h2>Hola mon!</h2>

Ara podeu provar amb la URL:

http://localhost/NOM_APLICACION/index.php/NOM_MODUL/NOM_CONTROLADOR/NOM_FUNCIO

En aquest cas:

http://localhost/codeigniter_hmvc/index.php/helloword_module/hello

Que executa la funció index, que realment executa:

http://localhost/codeigniter_hmvc/index.php/helloword_module/hello/sayhello

Si volem fer un altre modul, només cal repetir passes i/o utilitzar com a plantilla un mòdul existent:

$ cd application/modules
$ sudo cp -r helloword_module helloword_module_dude

Ara canvieu el nom de fitxers controladors, vistes, codi, etc. En el nostre cas simplifiquem i canviem només la vista:

$ sudo geany helloword_module_dude/views/sayhello.php  

I posem:

 <h2>Hey dude!</h2>


Ja podeu consultar el nou mòdul:

http://localhost/codeigniter_hmvc/index.php/helloword_module_dude/hello

Recursos:

Vegeu també

Enllaços externs