Resultado de etiquetas “programacion”

Las restricciones de seguridad que impiden a javascript a acceder al sistema de archivos no nos permiten poder realizar tareas como el envío de ficheros al servidor (upload). Si pretendíamos realizar esto con Ajax nos golpearemos con un muro una y otra vez. Sí es posible emular un comportamiento similar al que conseguiríamos con Ajax usando las ya viejas técnicas de iframes ocultos.

La simulación consiste básicamente en realizar el en envío del formulario (submit) teniendo como destino (target) un iframe oculto del que podemos capturar el evento onload para detectar la finalización del envío del archivo.

Para practicar con esto he preparado un ejemplo usando Cake en Laboratorio cakePHP: #0608111 ajax upload. El ejemplo consiste en poder subir archivos sin "recargar" la página. Mediante Ajax se muestran los seis últimos archivos subidos y sus tamaños en bytes. En el formulario tenemos la suma del tamaño de los archivos (actualizado con Ajax) y un campo en el que podemos añadir una cantidad para realizar la suma al pulsar en "Calcular", momento en el que se recargará la página.

Ha pasado mucho tiempo desde hacía mis pinitos con Turbo Pascal y Turbo C con aquellas Turbo Visión con las que me inicié en la orientación a objetos. Adoraba aquello, no tanto me gustaba Turbo Basic ni Turbo Prolog, pero los consideraba lo mejor. Me costó mucho hacerme con Borlan C cuando empecé a desarrollar para Windows, y tiempo después las Turbo quedaron olvidadas. Ahora Borland se ha propuesto hacerlas volver con turbo explorer. Recupera esta denominación para una gama de productos de desarrollo gratuitas que se compone de:

Y en los tiempos que corren no se han privado de aprovechar YouTube.com para narrar la historia de TurboMan, el héroe que ya nos salvó una vez del Basic y que ahora vuelve en nuestra ayuda.

Aunque puede no aparecer útil, he creado un dbo_dummy que me permite trabajar sin conexión a base de datos. De esta forma puedo hacer pruebas y barbaridades sin estar conectado una base de datos cuando realmente no la necesito. Lo he creado siguiendo los pasos de como usar nuestro propio dbo en cakePHP

Aunque cakePHP ya cuenta con acceso a las bases de datos más usuales, puede ocurrir que necesitemos añadir un nuevo dbo programado por nosotros.

Para crear el nuevo dbo_mio en cakePHP versión 1.1.6.3264 deberemos:

  1. Crear un archivo vacío como app/models/dbo/dbo_mio.php. La utilidad de este archivo es permitir el correcto funcionamiento de file_exists en connection_manager.php (línea 150). Se debe a un pequeño bug, por el que busca que el archivo exista en una ruta y luego lo toma de otra ruta distinta..
  2. Creamos el verdadero archivo como app/models/datasources/dbo/dbo_ mio.php

Por defecto, cakePHP viene preparado para trabajar en el directorio base del servidor del dominio, como https://www.mabarroso.com. Es muy común que necesitemos que trabaje en una URL distinta, como https://www.mabarroso.com/miaplicacion/. Esto es muy simple de conseguir modificando dos archivos .htacces:

miaplicacion\.htaccess
       RewriteEngine on
       RewriteRule    ^$ /miaplicacion/app/webroot/    [L]
       RewriteRule    (.*) /miaplicacion/app/webroot/$1 [L]
miaplicacion\app\webroot\.htaccess
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /miaplicacion/app/webroot/index.php?url=$1 [QSA,L]

Los teclados de muchos desarrolladores se están revolucionando con Rails. Otros se resisten a pasarse a Ruby por distintas razones. Con el objetivo de trabajar con PHP con una aproximación bastante buena de las ventajas que ofrece Rails nos encontramos CakePHP.

CakePHP es un framework MVC inspirado en Rails. Adopta de él su filosofía y mucho de su funcionamiento, aunque detalles propios de Rubi no compatibles con PHP han sido adaptados lo mejor posible.

Comenzar a trabajar con CakePHP es inmediato. No se necesitan crear ficheros de configuración. Simplemente hay que definir la conexión a la base de datos y comenzar a crear las clases que necesitemos. Si nos ajustamos a sus reglas para definir los nombres (en ingles) de las clases, vistas y tablas las líneas de código se reducen ya que Cake será capaz de enlazar los distintos elementos modelo-vista-controlador. Incluye asistencias para AJAX, HTML, Javascript, CSS y formularios entre otros.

Las pegas principales son la aún escasa información en la web y la mala organización del manual, que se apoya excesivamente en un wiki poco actualizado y con entradas muy obsoletas. Para iniciarte el tutorial es rápido y completo.

1   2   3