Scaffolding con KumbiaPHP – Modificando comportamientos y contenidos según nuestra necesidad

Read More
Vista index con categoría relacionada como texto

La entrega anterior hablamos acerca del uso de la técnica de Scaffolding para CRUD con KumbiaPHP. Espero que muchos se hayan sorprendido gratamente con la funcionalidad que ciertamente ahorra mucho trabajo rutinario, ya que es altamente flexible.

Para que se entusiasmen, dentro de las posibilidades  tenemos: reescribir métodos y modificar comportamientos en controladores, modificar los archivos de vista, e incluso puedes crear tus propios scaffoldings.
Pero bueno, vamos paso a paso.

Manos a la obra

Vamos a trabajar en base a supuestos. Supongamos que queremos mostrar el nombre de la categoría padre para aquellas categorías que estén anidadas.

Como se ve en la lista, las categorías relacionadas sólo se ven con su identificador.
Por lo tanto, vamos a modificar la fuente de datos que pasamos a la vista Index para que ésta pueda presentar los contenidos respectivos.

En el modelo

Lo que vamos a hacer es crear un método que cumpla con lo que queremos lograr: mostrar el contenido de la tabla de categorías incluyendo el nombre de la categoría padre en aquellas categorías que heredan de otra. De este modo tendremos una modificación como la siguiente:

Archivo: models/categorias.php

<?php

class Categorias extends ActiveRecord 
{

    function getCategorias($page = 1) 
    {
        return $this->paginate(
            'columns: categorias.id, categorias.nombre, cat.nombre as categorias_id, categorias.creada_at, categorias.actualizada_in', 
            'join: left outer join categorias cat on categorias.categorias_id = cat.id',
            "page: $page", 'order: categorias.id desc');
    }

}

En el controlador

El segundo cambio lo haremos desde el controlador, para cargar los cambios que hemos hecho en el modelo. Lo que reemplazaremos (porque es una sobre escritura de index en ScaffoldController) será la función index tal como se muestra a continuación.

Archivo: controllers/categorias_controller.php

<?php
class CategoriasController extends ScaffoldController
{
    public $model = 'categorias';

    public function index($page=1)
    {
        $this->data = (new Categorias)->getCategorias($page);
    }
 
}

Continue reading “Scaffolding con KumbiaPHP – Modificando comportamientos y contenidos según nuestra necesidad”

Casi listos para las nuevas versiones

Estamos limpiando el código para la salida de las versiones oficiales de KumbiaPHP.

¡Si versiones en plural!

Versión 0.9 -> 100% compatible con la beta2 . En breve.
Versión 1.0 -> Quitaremos todas las libs y código obsoleto.

La 1.0 con muy pequeños cambios funcionaran las apps de beta2, saldrá unas semanas después de la 0.9

Hemos añadido una nueva carpeta a la beta2. En principio era para la 1.0, pero hemos decidido que también esté en la beta2(0.9). Carpeta vendor, dentro de esta carpeta se autocargaran todas las libs que usan PSR0: Symfony, Zend, Doctrine, Swiftmail, PHPExcel, etc.

Con PHP 5.2 se podrán usar todas las libs de PEAR,  zend framework 1 y compatibles.
Con PHP 5.3 todas las clases PSR0 con namespaces.

KumbiaPHP 1.0 no usará namespaces, pero si se pueden usar. Se podrá usar composer (PHP5.3) y todas las libs de packagist. Documentaremos su uso, que es muy fácil. (Esta en fase beta).

Nuevo ActiveRecord

ActiveRecord nuevo (PHP 5.3): Va a muy buen ritmo el desarrollo, ya es funcional, es rapidísimo y no usa memoria prácticamente. En principio tendrá 3 clases principales:

  • LiteRecord: Para los que prefieren usar SQL. Un ActiveRecord básico y sin generador de consultas. Mejor rendimiento. Ya es funcional
  • ActRecord: Nuevo ActiveRecord aun puliendo y añadiendo cosas.
  • ActiveRecord: Clase compatible con el actual ActiveRecord. Será lo más compatible posible, para facilitar la migración de apps.

Se han añadido tests unitarios y la calidad del código es excelente.

https://github.com/KumbiaPHP/ActiveRecord (Repositorio en github)

https://scrutinizer-ci.com/g/KumbiaPHP/ActiveRecord/?branch=master (Calidad de código)

Hemos estado trabajando mucho, tanto que según Ohlo.net, el mes pasado eramos el 4º proyecto libre con más movimiento (hot) de cualquier lenguaje. Y segundos en PHP. Esta como un proyecto con muy alto nivel de actividad, que dan sólo al 0,6% de los proyectos libres.

https://www.ohloh.net/explore/projects  (Listado de los proyectos más ‘hot’)

https://www.ohloh.net/p/KumbiaPHP_framework

Y vienen más cambios interesantes, que iremos comentando.

Después nos faltará crear la V2.0, que será prácticamente igual a la 1.0. Sólo que mínimo PHP5.3 y todo el core de kumbia pasará a vendor/kumbia/

La V2.0 será aun más rápida.

Nueva web en KumbiaPHP

Trabajamos para tener la nueva web lista, para la salida de las nuevas versiones.

proto.kumbiaphp.com

Como siempre se agradece ayuda de la comunidad en:

  • Crear código
  • Marcar bugs
  • Terminar la documentación
  • Dar a conocer KumbiaPHP

Gracias por el apoyo a KumbiaPHP

KumbiaPHP Framework 1.0 Beta 1 Liberada!

Después de unos meses de arduo trabajo el Nuevo Equipo de Desarrollo de KumbiaPHP Framework se enorgullece en anunciar el Beta 1 de la versión 1.0 codename Spirit, esta versión su enfoque principal estuvo en un refactor del core del framework, una reescritura completa de manera de tener un core muy consistente y mantenible, esto trae efectos directos en nuestros desarrollos de forma positiva, ya que se corrigieron conceptos que se vinieron arrastrando en versiones anteriores.

Continue reading “KumbiaPHP Framework 1.0 Beta 1 Liberada!”

Como usar los Modelos en KumbiaPHP

Este post nace luego de una conversación en el IRC de KumbiaPHP dado por una duda de unos de nuestro usuarios ya que deseaba realizar una consulta SQL, lo cierto del caso es que dicha consulta “pensaba” desde el controller siento esto totalmente incorrecto, ya que no respeta el MVC y en este sentido se ha creado en la Wiki de KumbiaPHP Framework una explicación del correcto uso de los modelos dentro de KumbiaPHP, de manera tal que se aproveche al máximo las bondades propias del Framework.

Continue reading “Como usar los Modelos en KumbiaPHP”