Un completísimo tutorial de la gente de IBM que nos muestra paso a paso cómo integrar en nuestras aplicaciones PHP los calendarios de eventos de Google Calendar.
Se nos va a indicar cómo realizar las siguientes funcionalidades, explicándonos también el API de Google Calendar:
Recuperar eventos de una lista pública
Añadir más eventos
Modificar o borrar eventos
Buscar eventos por palabra clave o rango de fechas
La librería SPL trae muchas cosas interesantes y que son un poco desconocidas. Pero en PHP6 traerá más novedades que pueden facilitarnos mucha la programación. En este caso se trata de SplObjectStorage, una clase que nos permitirá crear colecciones de datos únicos de forma muy sencilla, ya que si insertamos dos veces el mismo elemento, la segunda vez lo ignorará. A parte trabaja con los elementos como referencia, por lo que si modificamos el objeto una vez insertado, este será también modificado en la clase que guarda la colección de objetos.
Un ejemplo del mismo es el siguiente:
<?php
/**
* Test class that we will store in the
* SplObjectStorage object.
*/
class StorageTest {
private $title;
public function __construct( $title ) {
$this->title = $title;
}
public function __toString() {
return $this->title;
}
}
$storage = new SplObjectStorage();
$obj = new StorageTest( "www.eide.org" );
$storage->attach( $obj );
$storage->attach( $obj );
foreach( $storage as $o ) {
echo $o;
echo "\n";
}
?>
El resultado de esta ejecución solo nos devolverá un resultado.
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.
PHPIDS (PHP-Intrusion Detection System) es una librerÃa que podemos añadir a nuestras aplicaciones realizadas en PHP, que nos ofrece capa de seguridad de forma sencilla. No evita ni filtra ataques contra nuestra aplicación, tan solo detecta cuando se produce un ataque y actúa como nosotros queremos que lo haga.
Basado en un conjunto de filtros aprobados y testeados, cada ataque tiene asignado un número que valora su impacto en nuestra aplicación, lo cual hace sencillo decidir que acción tomar contra el intento de ataque, lo cual puede ser un mensaje de aviso por correo a los desarrolladores, mostrar un aviso al atacante o finalizar la aplicación.
La integración con nuestra aplicación es sencilla. PHPIDS
VÃa / PHPDeveloper.org
Microsoft da otro paso más para acercarse a PHP con la nueva versión de FastCGI para IIS.
FastCGI es una herramienta que con la colaboración entre Microsoft y Zend, intentan mejorar el rendimiento y la estabilidad a PHP en un entorno Windows. Microsoft’s PHP initiative
VÃa / PHPDeveloper.org