Muy buen tutorial que nos explica como combinar PHP y Flex usando el Zend Framework para crear aplicaciones más completas.
En el ejemplo usarán PHP (mediante el Zend Framework) para llevar la lógica de la aplicación, mientras que Flex se usará para la presentación. Se trata de leer los feeds de DevZone y añadir imágenes de Flickr para cada entrada. Lo primero será pasar el contenido de cada entrada por el Content Analyzer de Yahoo, el cual nos devolverá las palabras clave. Con estas etiquetas accederemos a Flickr y mostraremos la imágen.
Aunque en este caso se usa el Zend Framework, está claro que se puede hacer con otro framework o directamente desarrollando nosotros todo el código.
En Zend Developer Zone cada dÃa nos sorprenden con algo nuevo. Flex and PHP: Party in the Front, Business in the Back
El caché fragmentado se usa para dividir una página en partes y cachearlas independientemente para así poder reutilizarla en diferentes partes, por ejemplo si se trata de un módulo del sidebar que va en distintas páginas, se puede cachear independientemente y utilizarlo en cada uno de ellas.
La página que referencio explica muy bien el concepto de cache fragmentado y a su vez ofrece una librería que facilita su uso de este tipo de cache.
if (!FragmentCache::beginCache('all_available_products')) {
echo "content to be cached...";
FragmentCache::endCache();
}
PHP normalmente guarda la sesión en disco, pero como no es algo seguro, ni el directorio tiene que ser el mismo, se debe indicar mediante configuración el que se guarde en disco y la ruta. Para ello hay tres formas de hacerlo:
Cada vez que tengo que usar un theme y me encuentro con el Visual Composer me dan los siete males. De todas formas, entiendo que si vas a crear contenido con diferentes módulos en cada página, los editores visuales pueden ser una buena solución.
El problema es que el Visual Composer cuesta unos 30$, y sinceramente, si puede ser gratis, mejor que mejor. Aquí paso un listado de los que he encontrado y que más me han gustando:
Las curvas Bézier son muy utilizadas en diseño 3D y gráficos vectoriales, pero también nos puede ser muy útil cuando queremos realizar una determinada curva entre dos puntos.
De forma resumida, la curva Bézier está formada por cuatro puntos: punto origen (p0), punto final (p3) y dos puntos más (p1 y p2) con los que se realizan vectores que forman la curva:
El script que lo realiza es muy sencillo, tan solo hay que pasarle los 4 puntos y el valor de t (que va desde 0 a 1).
¿Y todo esto por qué? pues porque estamos realizando mejoras en el Top de Bitacoras.com y necesitábamos una curva que ofreciera una pendiente poco pronunciada entre dos puntos.
También os paso un ejemplo para que juguéis con los posibles valores de los puntos, teniendo una escala de 1000×100.
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.