Antares es un framework PHP nacido del grupo de trabajo de una empresa de publicación de revistas, que intenta no parecerse al resto de los frameworks existentes.
Separa cada aspecto del ciclo de desarrollo, algo bastante importante si se trabaja en un proyecto con un grupo de desarrolladores. Por ejemplo diferenciando la capa lógica de la de presentación, haciendo que grupos que se encargan a las diferentes tareas no esperen al trabajo de los demás.
Ofrece una serie de librerías que nos ayudan a trabajar con estándares como la mayoría de las bases de datos unido a mapeado de objetos, autenticación por LDAP o BD y librería para integrar Javascript. Antares
Si por un casual necesitas que tu WordPress realice las búsquedas por el título del post y que ignore el contenido, tan sólo hay que añadir un filtro a tu functions.php, lo cual también sirve para editar las condiciones de búsquedas y añadirle o quitarle condiciones:
add_filter('posts_search', 'mi_search_title');
function mi_search_title($search) {
preg_match('/%([^%]+)%/', $search, $m);
if (isset($m[1])) {
// Original
// " AND (((wp_posts.post_title LIKE '%termino%') OR (wp_posts.post_content LIKE '%termino%'))) AND (wp_posts.post_password = '') "
return " AND wp_posts.post_title LIKE '%$m[1]%' AND (wp_posts.post_password = '') ";
} else {
return $search;
}
}
Normalmente no es muy frecuente acceder mediante PHP a SVN, pero nos podemos encontrar con la situación de necesitar obtener archivos de SVN y para ello nada mejor que esta librerÃ.
PHP SVN Client recupera ficheros del SVN sin necesidad de otras aplicaciones. Accede al repositorio SVN mediante el protocolo WebDAV y permite obtener una lista de ficheros en un directorio, recuperar una revisión de un fichero, recuperar los logs de los cambios realizados para un fichero entre dos revisiones y obtener la última versión del repositorio.
$svn = new phpsvnclient;
// Indica el repositorio
$svn->setRespository("http://dominio.com/svn/");
// Obtiene los ficheros de un directorio, la última versión
$files_now = $svn->getDirectoryFiles("/trunk/dir/");
// Obtiene la versión 7 de un directorio
$files_7 = $svn->getDirectoryFiles("/trunk/dir/",7);
// Obtiene la última versión de un fichero
$phpajax_now = $svn->getFile("/trunk/directorio/fichero.php");
// Obtiene la versión 7 de un fichero
$phpajax_7 = $svn->getFile("/trunk/directorio/fichero.php",7);
// Obtiene los logs
$logs = $svn->getRepositoryLogs(2,5);
On the TutToaster site today there’s a new tutorial showing you how to create an entire PHP forum completely from scratch using PHP and a MySQL backend. The code I’ll show is exactly the same than the one you can download, except for some comments. I …
En PHP existen, a parte de los arrays, una serie de estructuras de datos que nos pueden facilitar la labor a la hora de trabajar. Normalmente no son muy necesarios y con los arrays nos sobra, pero nunca está del todo mal conocerlos y saber que por ejemplo su uso de memoria suele ser mejor (como se observa en los benchmarks del artículo).
Fixed Arrays (SplFixedArray): arrays de longitud fija, muy útiles cuando el tamaño del array es siempre el mismo y es necesario que tenga siempre todos los elementos aunque estén vacios.
Listas (SplDoublyLinkedList): listas de elementos que permite recorrerlas en ambos sentidos
Pilas (SplStack): el último que entra primero que sale (LIFO)
Colas (SplQueue): el primero que entra primero que sale (FIFO)
Heap (SplHeap): traducido como montículos, son árboles de conjuntos de datos ordenados en el que el padre tiene un valor superior a los hijos
Cola de prioridades (SplPriorityQueue): igual que las colas pero los elementos se ordenan según una prioridad (ej: la lista de espera de Urgencias)
Tablas hash (SplObjectStorage): muy similar a cómo funcionan los arrays en PHP.
Interesante ver los benchmarks que nos muestra al final del artículo
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.
Si el otro dÃa hablabamos de MagpieRSS, hoy tenemos que hablar de SimplePie, una librerÃa en PHP que nos recomienda artux y que nos permite leer los feeds RSS y Atom.
Es fácil de usar incluso para principiantes en PHP, rápido debido a que cachea los contenidos, admite RSS 0.91, RSS 1.0 y RSS 2.0 y Atom 0.3 y 1.0 y muchas cosas más. SimplePie