¡Pon en marcha tu primera app CodeIgniter en pocos minutos!

Hi there again! Hoy explico a los newbies (y a mí mismo) cómo poner en marcha una app CodeIgniter en cuestión de minutos. Asume que ya tienes un cierto conocimiento de PHP y Apache, supone que ya has trabajado con alguno o varios frameworks PHP, vaya, de modo que no se extiende en explicaciones teóricas, sino que, por el contrario, se centra exclusivamente en el detalle técnico.

Tecleando muy rápido

Esta puesta en marcha la llevo a cabo en un GNU/Linux Ubuntu pero también puedes aprovechar muchas de las cosas que explica para Windows y MAC.

Te explico esto porque esta semana he tenido que aprender cómo funciona CodeIgniter, y me he animado a escribir el procedimiento exacto que he seguido porque he pensado así:

Cuando en el futuro tenga que instalar de nuevo una app CodeIgniter lo conseguiré en cuesitón de segundos si ahora apunto exactamente cómo lo he hecho.

De modo que he apuntado los pasos que vienen a continuación…

Añadimos una nueva entrada al archivo /etc/hosts:

127.0.0.1	holamundoci.local

Creamos un nuevo host virtual en /etc/apache2/sites-available/holamundoci.local

NameVirtualHost *:80
<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/holamundoci
	ServerName holamundoci.local
	<Directory /var/www/holamundoci>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog /var/log/apache2/holamundoci.log
	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.	
	LogLevel warn
	CustomLog /var/log/apache2/access-holamundoci.log combined
</VirtualHost>

Como siempre en estos casos, activamos el virtual host recién creado:

sudo a2ensite holamundoci.local

Y reiniciamos Apache:

sudo service apache2 reload

Ahora nos bajamos CodeIgniter de la página oficial, lo descomprimimos en /var/www y renombramos la carpeta a holamundoci, tal y como figura en nuestro host virtual.

Si ahora hacemos http://holamundoci.local ya obtenemos el mensaje de bienvenida de CodeIgniter.

Creemos nuestro primer controlador:

class Visitor extends CI_Controller
{
    public function index()
    {
        echo 'Default action';
        exit;
    }

    public function anyAction()
    {
        echo 'I am any action.';
        exit;
    }

    public function withParams($param)
    {
        echo "I am the param $param";
        exit;
    }
}

Las URL de acceso serán estas:

http://holamundoci.local/index.php/visitor
http://holamundoci.local/index.php/visitor/anyaction
http://holamundoci.local/index.php/visitor/withparams/hola

Pero las reescribiremos de modo que podamos ejecutar las acciones de controlador de una forma más amigable para el usuario y para el SEO, así:

http://holamundoci.local/visitor
http://holamundoci.local/visitor/anyaction
http://holamundoci.local/visitor/withparams/hola

Para ello, tan sólo hay que añadir las siguientes directivas en el archivo .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

Por último, vamos a cambiar los echo por vistas MVC, es decir,
vamos a dejar preparada la infraestructura MVC por la que se lleva a cabo el flujo que describe el manual de CodeIgniter.

O dicho más fácil, vamos a pintar esos mensajes en documentos HTML súper chulos haciendo que los controladores pinten las vistas.

Nuestro controlador pues quedará así:

class Visitor extends CI_Controller
{
    public function index()
    {
        $this->load->view('visitor/index');
    }

    public function anyAction()
    {
        $this->load->view('visitor/anyaction');
    }

    public function withParams($param)
    {
        $data = array('param' => $param);
        $this->load->view('visitor/withparams', $data);
    }
}

¡Y ya está! Con esto ya nos hemos familiarizado un poquito con este fantástico framework PHP. Una vez más, espero que este post te sirva de ayuda para poner en marcha fácilmente tu nuevo proyecto.