lunes, 11 de octubre de 2010

Complementos de Firefox

Firefox ofrece complementos muy útiles para el desarrollo web, entre ellos:


Analiza al detalle el código fuente de tu web y localiza bugs, a nivel de HTML, CSS y Javascript.


Valida el código HTML basándose en los estándares W3C.


Incluye una validación del código HTML, CSS y javascript, además de una barra de herramientas para ayudar en creación de páginas web.


martes, 31 de agosto de 2010

Patrones de diseño en CakePHP

CakePHP implementa diferentes patrones de diseño, definidos por la wikipedia como:

Los patrones de diseño (design patterns) son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Un patrón de diseño es una solución a un problema de diseño.

Entre otros, CakePHP implementa los siguientes patrones:

Singletón


El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.

En el artículo Patron Singleton en PHP5 puedes encontrar una explicación sencilla y clara.

En CakePHP la clase Configure actúa como un singletón, y sus métodos pueden ser llamados desde cualquier lugar de la aplicación, en un contexto estático.

El objetivo de esta clase es mantener centralizadas las variables que pueden ser compartidas entre varios objetos de la aplicación.

lunes, 30 de agosto de 2010

Acentos en CakePHP

Si te encuentras en CakePHP con que los acentos no los muestra correctamente, asegúrate de codificar tu base de datos en UTF-8, e indicarlo en la configuración de la base de datos:

- Una tabla de ejemplo:

CREATE TABLE posts (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50),
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

- Configuración de la base de datos en /app/config/database.php:

var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'port' => '',
'login' => 'usuarioBD',
'password' => 'passwordBD',
'database' => 'nombreBD',
'schema' => '',
'prefix' => '',
'encoding' => 'utf8'
);

Y esto es suficiente para visualizar correctamente acentos y caracteres especiales.

viernes, 27 de agosto de 2010

MySQL: MyISAM vs InnoDB

MySql soporta distintas tecnologías de almacenamiento de datos, entre estas destacan MyISAM e InnoDB.
A continuación podrás saber las carácterísticas de cada una y sus ventajas frente a la otra:

InnoDB
Una de las características de InnoDB es que permite la integridad referencial de los datos.

No obstante, al parecer, en versiones recientes de phpMyAdmin se ha desactivado la vista de relaciones en la estructura de tablas, por lo que no podemos realizar relaciones entre ellas. Si te encuentras en ese caso, a continuación encontrarás una solución:

phpMyAdmin: Gestión de bases de datos, tablas y relaciones

phpMyAdmin es una herramienta desarrollada en PHP que permite administrar bases de datos MySQL y que funciona a través del navegador web.

Con phpMyAdmin puedes, entre otras funciones, gestionar y crear bases de datos, tablas y relaciones entre estas. Para ver cómo hacerlo, tienes el siguiente artículo:

jueves, 26 de agosto de 2010

Empezar con CakePHP

Si quieres saber qué es CakePHP puedes encontrar una breve introducción en:
: : Mi primer CakePHP, mmmmm cakeee

Y para conocerlo con más profundidad puedes consultar:

O, si prefieres, puedes aprender practicando con ejemplos sencillos:

Puedes seguir con un tutorial más completo creado por IBM (en inglés):
Un acceso a cada una de las 5 partes:

O quizás quieras ver una aplicación más compleja desarrollada con CakePHP, ya que es un forma muy interesante de aprender.
A continuación te dejo un enlace a Karamelo, una plataforma e-Learning desarrollada con CakePHP (creada por Chipotle Software) :

martes, 24 de agosto de 2010

Simular tablas con CSS

Cómo y por qué simular tablas con CSS:
: : Cómo simular tablas en CSS

Un buen ejemplo de simular tablas con CSS:

En W3C está descrita relación de etiquetas html de tablas con elementos CSS.

miércoles, 30 de diciembre de 2009

Integrar CakePHP y ExtJS

En las siguientes páginas encontrarás tutoriales donde explican cómo integrar grids y formularios de la librería ExtJS dentro de CakePHP :

: : CakeXT (extensión de CakePHP)





viernes, 6 de junio de 2008

Extensiones de ExtJS

ExtJS dispone de un gran número de extensiones desarrolladas por los usuarios, de forma externa al core.

Puedes encontrar extensiones muy interesantes en:

: : http://extjs.eu/
: : http://extjs.com/forum/forumdisplay.php?f=21

Unificar documentos PDF existentes en un único documento PDF mediante PHP

Si necesitas importar en un único documento PDF varios documentos PDF existentes mediante PHP, puedes utilizar para ello una colección de clases PHP llamada FPDI, definida en su página oficial como una colección de clases que facilitan a los desarrolladores la lectura de documentos PDF existentes y usarlos como plantillas en FPDF.

Antes de empezar, los requisitos para utilizar FPDI son:

1. Clase FPDF
2. Paquete de clases FPDI
3. Plantilla FPDF (FPDF_TPL)

Deberás descargártelos y descomprimirlos en un mismo directorio dentro de tu servidor:



Crea un nuevo documento PHP con el siguiente código (puedes copiarlo desde ésta página):



Como puedes observar en el código, está concatenando los archivos pdfdoc1.pdf, pdfdoc2.pdf y pdfdoc3.pdf, por lo que tienen que existir esos tres ficheros pdf en el mismo directorio donde has colocado la página PHP.

Y eso es todo!

Tomadas como referencias:

: : http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/concatenate-fake/
: : http://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/

Presentación

Como bien dice su nombre, este blog está dedicado al desarrollo en PHP... bueno, entre otros: PHP, CakePHP, ExtJS, ...

Aquí voy a recolectar información que me puede ser útil (pequeños recortes de código, anotaciones, referencias, etc).

Espero que pueda ayudar a otros desarrolladores. Tanto si es así como si no puedes escribir tus comentarios.

Gracias.