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)

Codelgniter

CodeIgniter és un framework PHP de gran abast amb una empremta molt petita, construïda per a codificadors de PHP que necessiten una eina simple i elegant per crear aplicacions web amb totes les funcions.

Alguns dels punts més interessants sobre aquest framework, sobretot en comparació amb altres productes similars, són els següents:

Versatilitat: Potser la característica principal d'CodeIgniter, en comparació amb altres frameworks PHP. CodeIgniter és capaç de treballar la majoria dels entorns o servidors, fins i tot en sistemes d'allotjament compartit, on només tenim un accés per FTP per enviar els arxius al servidor i on no tenim accés a la seva configuració.

Compatibilitat: CodeIgniter, almenys en aquest moment, és compatible amb la versió PHP 4, el que fa que es pugui utilitzar en qualsevol servidor, fins i tot en alguns antics. Per descomptat, funciona correctament també en PHP 5.

Flexible: CodeIgniter és bastant menys rígid que altres frameworks. Defineix una manera de treballar específica, però en molts dels casos podem seguir-la o no i les seves regles de codificació moltes vegades ens les podem saltar per treballar com més a gust trobem. Alguns mòduls com l'ús de plantilles són totalment opcionals. Això ajuda moltes vegades també al fet que la corba d'aprenentatge sigui més senzilla al principi.

Lleuger: El nucli de CodeIgniter és bastant lleuger, el que permet que el servidor no es sobrecarregui interpretant o executant grans porcions de codi. La majoria dels mòduls o classes que ofereix es poden carregar de manera opcional, només quan es van a utilitzar realment.

Documentació: La documentació de CodeIgniter és fàcil de seguir i d'assimilar, perquè està escrita en mode de tutorial. Això no facilita molt la referència ràpida, quan ja sabem sobre el framework i volem consultar sobre una funció o un mètode en concret, però per iniciar-nos sens dubte s'agraeix molt.

Flux de l'aplicació

En CodeIgniter ha un procediment per atendre una sol·licitud de pàgina del client. Aquest procés es realitza internament pel propi CodeIgniter i de manera transparent per a nosaltres. Durant el procés participen diversos mòduls com l'enrutament de la sol·licitud, la memòria cau interna, etc.

fluix de l'aplicació.

En resum, perquè es pugui entendre el flux d'aplicació que implementa CodeIgniter, pots seguir els següents punts:

  1. Tota sol·licitud d'una pàgina a partir de CodeIgniter comença en un index.php que hi ha a l'arrel del framework.
  2. Després es realitza un filtrat de la URL per saber quin és element que ha de processar aquesta pàgina.
  3. Si la pàgina s'havia generat abans i està en la memòria cau de CodeIgniter, es retorna l'arxiu de la memòria cau ja generat, de manera que s'estalvia processaments repetits. La memòria cau es pot configurar i si ho desitgem, fins i tot desactivar.
  4. Abans de continuar amb el procés es realitza un tractament de seguretat sobre l'entrada que tinguem, tant de la informació que hi hagi a la URL com de la informació que hi hagi en un possible POST, si ho hem configurat així.
  5. El controlador adequat realitza el processament de la sol·licitud. CodeIgniter decideix el controlador que ha de processar la sol·licitud en funció de la URL sol·licitada.
  6. El controlador comunica amb una sèrie de mòduls, els que necessiti, per produir la pàgina.
  7. A través de les vistes adequades, el controlador genera la pàgina, tal qual s'ha de enviar al navegador.
  8. Si la pàgina no era a la memòria cau, s'introdueix, perquè les futures sol·licituds d'aquesta pàgina siguin més ràpides.


HMVC

Usuari:TNicolae/HMVC

Instal·lació

Múltiples aplicacions i una sola instal·lació de code igniter

Previament s'ha d'instal·lar el LAMP.

$ sudo apt-get install tasksel
$ sudo tasksel install lamp-server

El code igniter s'instal·larà a /usr/share/codeigniter.

$ sudo mkdir -p /usr/share/codeigniter
$ cd /usr/share/codeigniter
$ sudo wget http://c303150.r50.cf1.rackcdn.com/CodeIgniter_2.2.0.zip
$ sudo unzip CodeIgniter_2.2.0.zip
$ cd CodeIgniter_2.2.0
$ mv * .. && cd ..
$ sudo rm CodeIgniter_2.2.0.zip CodeIgniter_2.2.0

S'edita el seguent fitxer:

sudo subl /usr/share/codeigniter/application/config/config.php
$config['base_url']	= 'http://localhost/codeigniter_v2';
$ cd /etc/apache2/sites-available
$ sudo cp 000-default.conf 002-codeigniter.conf

S'edita el fitxer i s'afegeix l'alias al final.

$ sudo subl 002-codeigniter.conf
Alias /codeigniter_v2 /usr/share/codeigniter

S'activa el nou fitxer de codeigniter afegit a l'apache2 i reiniciem el servei.

$ sudo a2ensite 002-codeigniter.conf 
$ sudo /etc/init.d/apache2 restart

S'accedeix a l'entorn web de codeigniter.

http://localhost/codeigniter_V2

Exemple de configuració d'aplicació codeigniter separada del codi de codeigniter

Creem una applicació codeigniter des de zero utilitzant la carpeta application com a plantilla. Com a exemple se crearà l'aplicació code_igniter_hello_world.

$ sudo mkdir /var/www/code_igniter_hello_world
$ cd /var/www/code_igniter_hello_world
$ sudo git clone https://github.com/nicolaeturcan/code_igniter_hello_world
$ sudo cp -r /usr/share/codeigniter/application /var/www/code_igniter_hello_world
$ sudo cp -r /usr/share/codeigniter/index.php /var/www/code_igniter_hello_world

Se crea el fitxer .gitignore per a no pujar alguns fitxers delicats a github.

$ sudo touch .gitignore

S'afegeixen els fitxers a ignorar.

*/config/development
*/logs/log-*.php
*/logs/!index.html
*/cache/*
*/cache/!index.html
*/cache/!.htaccess

Ja que utilitzem una plantilla de code igniter, hem d'indicar-li el camí de la carpeta system.

$ sudo subl /var/www/code_igniter_hello_world/index.php
        $system_path = 'system'; 

a:

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

Després s'haurà de poder accedir a la pàgina de benvinguda.

http://localhost/code_igniter_hello_world/

Un cop tenim preparada la plantilla, ja podem guardar la primera versió de la plantilla a GitHub.

$ sudo git add .
$ sudo git commit -a
$ sudo git push origin master

Ara ja podem crear un programa a partir de la plantilla i no oblidar de crear varies versions mentre anem treballant.

Active record

https://ellislab.com/codeigniter/user-guide/database/active_record.html

Autenticació

Usuari:TNicolae/Skeleton#Autenticaci.C3.B3

Vegeu també

Enllaços externs