Creando un Wiki con CakePHP

Seguimos con la recopilación de documentación que aporte ayuda a la hora de ver qué y cómo se puede desarrollar con CakePHP.

Esta vez  con la serie de artículos realizados desde IBM para la creación de un wiki con CakePHP:

  1. Introduction & Scaffolding
  2. Developing the basic wiki code
  3. Users and Permissions
  4. Task management
  5. The open blog

Etiquetas:

Recursos de documentación sobre CakePHP

En un artículo anterior, comenté la reciente “publicación” de un libro sobre trucos para CakePHP.

Ahora me gustaría ampliar esa información con un listado de recursos de documentación sobre este Framework de desarrollo en PHP:

Libros

Enlaces

Etiquetas: ,

Libro gratuito de consejos avanzados sobre CakePHP

A la cada vez mayor oferta (hasta no hace mucho era todo lo contrario) de documentación sobre CakePHP, ahora le podemos sumar el libro (pdf) gratuito que ha elaborado Matt Curry de pseudocoder.com, llamado Super Awesome Advanced CakePHP Tips.

Etiquetas:

Transformar br a saltos de carro

Todos conocemos la función de PHP nl2br que transforma retornos de carro en el elemento br de HTML, recientemente a br de XHTML. Pero nos puede ser útil el proceso inverso, cosa que conseguiremos mediante expresiones regulares, tal como he visto en uno de los comentarios dentro de la documentación de PHP:

function br2nl($string){
    return preg_replace('/\/i', "\n", $string);
}

Etiquetas:

Ejecutar callbacks del modelo en función de acciones del controlador

Una de las cosas que me he encontrado al desarrollar con CakePHP es el poder ejectuar cierto código en las callbacks (afterSave, beforeSave, afterFind, etc.) del modelo en función de la acción realizada desde el controlador. Ciertamente no había pensado en la solución que plantea teknoid al respecto:

Generar una variable y un método en nuestro app_model:

var $controllerAction = null;

function setControllerAction( $action = null ) {
    if($action) {
        $this->controllerAction = $action;
    }
}

Que después podemos utilizar en las callbacks de nuestros modelos:

function afterFind($results, $primary = false) {
    if($this->controllerAction == 'test') {
        // run some code such as $this->_reformatTestData($results);
    }
}

Y desde los controladores para expecificar qué acción está realizando la llamada a la callback:

$this->User->setControllerAction('test');
$this->User->find('all');

Etiquetas: , ,

Tutoriales de desarrollo en PHP

Muy buen recurso la web Developer Tutorials y en este caso la sección dedicada a PHP (disponen de otra para JavaScript), donde se pueden encontrar una larga lista de tutoriales más o menos interesantes pero que seguro que son útiles en su momento.

Un lástima que no disponga de RSS específico por sección.

Subir archivos en CakePHP

Esa tarea tediosa que es la subida de archivos desde una aplicación web, en el caso de usar CakePHP, se facilita mucho gracias al behavior MeioUpload de Vinicius Mendes.

Este behavior, claramente, debería formar parte del core de CakePHP, como en su momento pasó con Bindable / Containable

Etiquetas: ,

Paginación númerica parcial en CakePHP

La paginación en CakePHP tiene una serie de helpers que hacen muy fácil su uso. Mediante los métodos del helper pagination, prev y next avanzamos o retrocedemos páginas y con el método numbers, nos apareceran números para ir directamente a las páginas que deseemos y avanzar o retroceder más rápido.

Sucede el caso que tengamos un listado muy largo donde la cantidad de números que pueden aparecersean excesivos. Para que sólo nos muestre cierta cantidad de números (al estilo de la paginación de resultados de Google) y que vayan cambiando según nos acercamos al final o al principio, tenemos un parámetro para el método numbers que se llama, modulus.

No hay mejor ejemplo que probarlo uno mismo y más que leerse la documentación (que en este caso es nula) mirarse la API en cuestión.

Etiquetas: ,

Formato de los números en PHP y CakePHP

A veces, en vez de pasar el rato mirando la televisión, debería pasar más tiempo mirando la documentación de PHP y es que por cosas de estas te puede pasar desapercibidas cosas como la función number_format. De lo más útil para tratar las malditas diferencias entre los separadores de miles o de decimales.

A demás, CakePHP tiene el helper Number para manejar números ampliando la funcionalidad de la number_format.

Barcelona PHP Workshop

Ordenando los marcadores de mi navegador, he encontrado los materiales de las diferentes charlas que hubieron tanto en el primer como en el segundo Barcelona PHP Workshop, organizado(estupendamente) por la gente de phpbarcelona.org.

Se puede encontrar información sobre Symfony, i18n, AJAX, seguridad, XDebug, etc. Para leer con detenimiento.