Magento 1.8.0.0 (muchos cambios, poca sorpresa)

Magento CE 1.8.0.0

Y en el día de ayer llegó, al fin, una nueva versión estable de Magento: Magento 1.8.0.0 ha llegado.

Si bien la versión 1.8.0.0-alpha1 fue anunciada el 24 de abril de este año, pasó sin penas ni gloria (ni reviews, ni nada en realidad).

La descripción pomposa de la nueva versión asegura que vamos a encontrar mejoras en el cálculo de impuestos, mejoras funcionales, mejora en la performance (tanto de frontend como de backend), mejoras de seguridad, integración para el uso de Redis y algunas cosas más.

Si revisamos el changelog, la lista es bastante más detallada.

Seguir leyendo «Magento 1.8.0.0 (muchos cambios, poca sorpresa)»

Bender 0.0.3

Bender 0.0.3

De a poco voy intentando agregar algunas funcionalidades core a la aplicación.

Antes de dar el salto a una versión un poco más robusta, ya se puede bajar la versión 0.0.3 de Bender.

El gran cambio de esta versión es la posibilidad de enviar emails desde cualquier acción, invocando un único método.

Lo primero será configurar los parámetros mínimos para poder conectarnos al servidor de correo que vayamos a usar.

Seguir leyendo «Bender 0.0.3»

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»