Evitando conflictos de nombres entre Models y Controllers en CodeIgniter

En una época en cual las discusiones sobre qué framework usar, cuál es mejor, cuál es peor, etc, etc; yo sigo usando CodeIgniter para armar prototipos rápidos, para algunas pruebas de concepto e incluso para pequeñas aplicaciones (de hecho, la primera versión del módulo de traducciones para Magento, fue una aplicación CI).

Uno de los problemas que padece éste framework es que no puede usarse el mismo nombre para un modelo y para un controlador.

Normalmente esto se resuelve agregando un sufijo al modelo.

class Modulo_model extends CI_Model {
    //métodos de mi modelo
}

Como buen programador, la neurosis me persigue y me molesta de sobremanera tener que instanciar luego ese modelo usando:

$this->load->model('modulo_model');
Seguir leyendo «Evitando conflictos de nombres entre Models y Controllers en CodeIgniter»

Programando nuestra primera acción en Bender

El paso final para empezar a usar la aplicación, es programar nuestras propias acciones.

Bender está construido a partir del componente Console de Symfony 2.0. Leer la documentación sobre el componente no estará de más, y es una lectura bastante corta.

Volviendo sobre el tema del post, una acción no es más que una clase. Esa clase tiene muy pocos requisitos. Si revisamos la acción Sample/Simple, vamos a ver éste código.

namespace Action\Sample;
 
use Symfony\Component\Console as Console;
use Bender\Core as Core;
 
class Simple extends Core {
 
    public function __construct($name = null) {
        parent::__construct($name);
        $this->setDescription('Test action used on development');
        $this->setHelp('A simple action example.');
    }
 
    protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output) {
        $output->writeln(sprintf('Message: %s', $this->_getMessage()));
    }
 
    private function _getMessage() {
        return 'Bite my shiny metal ass!';
    }
}

A manera de ejemplo, voy a crear la acción Prueba.

Seguir leyendo «Programando nuestra primera acción en Bender»

Creando nuestra primera Acción y Tarea en Bender

Dentro del código de Bender tenemos dos acciones de ejemplo. Los archivos se llaman Simple.php y Plugin.php y los podemos encontrar en /Action/Sample/.

Estos dos ejemplos son en extremo sencillos. El primero es el ejemplo más básico para una acción y el segundo muestra cómo hacer uso de un plugin.

Ahora bien, volviendo sobre los conceptos de Bender, había dicho que la estructura de la aplicación se maneja con 3 entidades:

  • Acciones
  • Tareas
  • Plugins

La finalidad de Bender es ejecutar Tareas donde cada tarea es una Acción.

Seguir leyendo «Creando nuestra primera Acción y Tarea en Bender»

Cómo instalar Bender

En el post anterior expliqué intenté explicar cuál es la finalidad de la aplicación.

Para facilitar la comprensión de la herramienta, voy a preparar una serie de pequeños posts (que luego irán a la Wiki de Bender) para cubrir, de forma gráfica, su uso.

La primer parte es, a riesgo de sonar obvio, la instalación. Para esto, sólo tenemos un requisito: que la base de datos, vacía, exista.

En mi caso, he creado una base de datos llamada, claro está, bender.

mysql> create database bender;
Query OK, 1 row affected (0.02 sec)
mysql> use bender;
Database changed
mysql> show tables;
Empty set (0.00 sec)
Seguir leyendo «Cómo instalar Bender»