Horde: framework PHP

Horde es otro framework PHP que ofrece las típicas herramientas para crear aplicaciones web: configuración de la aplicacion, compresión, detección de navegador, MIME y mucho más.
Horde está usa PEAR en su código, algo que a mí personalmente no me entusiasma mucho. A parte da instrucciones para mejorar el rendimiento (tunning). No solo funciona con Apache, sino con otros servidores web como IIS.
Dentro de este proyecto, se reúnen otros proyectos como una aplicación web, una suite groupware, gestor de tickets, visor de repositorios, etc…
Horde

|

Spellify: corrector ortográfico en tus formularios

Spellify es un corrector ortográfico en tiempo de ejecución para las cajas de texto de nuestros formularios. Este script evalua las palabras introducidas y muestra las palabras erróneas y cuales son las posibles correctas.
spellify.png
Para su uso es necesario PHP 4+ y CURL y script.aculo.us 1.8.0, y añadir en nuestras páginas código HTML y los estilos y javascripts. Esto último no me parece muy elegante, ya que este código se podría crear mediante el js.
Spellify está disponible en varios idiomas ya que usa el corrector ortográfico de Google.
De todas formas, si queréis haceros vuestro propio corrector ortográfico en PHP, podéis usar la función levenshtein, la cual calcula la distancia entre dos palabras. Eso sí, esta función es costosa en rendimiento.
Spellify
Vía / WebAppers

Usar Zend Framework con Code Igniter

Si nos encontramos con la necesidad de usar Zend Framework con Code Igniter, podemos encontrarnos problemas a la hora de juntar ambos frameworks. El problema se encuentra en que Code Igniter separa el código en diferentes directorios para el core y la aplicación.
El truco es crear un helper (funciones que realizan pequeñas tareas) y la funcionalidad de autoload de Code Igniter. El helper que se crea el autor solo añade un directorio en el include_path, y el directorio que añadirá será el del Zend Framework.
Despues en el autoload del Code Igniter se le añade se que cargue automáticamente el helper que nos hemos creado.
Using the Zend Framework with Code Igniter (an alternative)

Librería PHP para SVN

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);

PHP SVN Client

Mostrar una traza recursiva con PHP

Una de las cosas que más me gusta de Java es que cuando se produce una excepción, el error que te muestra te saca una traza de toda la ejecución de procesos (qué función falla, en qué línea y qué funciones se han llamado hasta llegar a ese punto). En PHP a veces los errores son algo simples, falla tal cosa en tal línea.

Afortunadamente podemos mejorar los mensajes de debug para poder mostrar la misma información: línea del archivo, fichero y qué funciones han sido las que han llamado a la actual (backtrace).

Para poder realizarlo se ha de usar las variables __FILE__ y __LINE__ y la función debug_backtrace(). El código necesario sería el siguiente:

function debug($msg, $label = 'DEBUG', $stealth = FALSE) {
if (defined('DEBUG') && DEBUG) {
if (is_bool($msg)) {
$msg = $msg ? 'TRUE' : 'FALSE';
}
$display = $stealth ? ' style="display: none;"' : '';
$backtrace = debug_backtrace();
$debug = array();
$stack = (isset($backtrace[1]['class']) ? "{$backtrace[1]['class']}::" : '')
. (isset($backtrace[1]['function']) ? "{$backtrace[1]['function']}" : '');
if ($stack) {
$debug[] = $stack;
}
$debug[] = "Line {$backtrace[0]['line']} of {$backtrace[0]['file']}";
$debug = implode('
', $debug); print "{$label}: {$debug}:
".print_r($msg, 1)." \n”; } }

Programming Tips #9 “debug_backtrace”

|

phpWebSite: CMS para creación de webs

phpWebSite es un CMS que nos facilita la creación de webs. Que con la ayuda de una administración web podremos mantener y gestionar nuestra web de forma sencilla.

Además el diseño puede ser cambiado gracias a un layout flexible. La contenido está organizado mediante categorías y puede ser ampliado mediante comentarios de otros usuarios.

Existe muchas caracterís y el desarrollo crece rápidamente mediante la creación de nuevos módulos.

phpWebSite

Vía / International PHP Magazine

Sugar: nuevo sistema de plantillas para PHP

Sugar es un sistema de plantillas basado en Smarty que aporta un motor flexible y potente que permite realizar expresiones similares a las de PHP. Además es sencillo de entender y limpio.
La seguridad es algo importante para PHP-Sugar, por ejemplo, la salida se escapa a HTML por defecto, en vez de esperar una petición explicita para ello, evitando así inyección de código HTML o Javascript por el usuario.
Entre las diferencias con Smarty nos encontramos con la felixibilidad, la facilida de uso, la prohibición de acceso a funciones PHP y la extensibilidad.
PHP-Sugar

5 consejos para crear código compatible con PHP6

Aunque a algunos puedan parecerle consejos obvios, no hay que olvidar que no todo el mundo que programa en PHP controla el lenguaje.

  • No usar register_globals: da igual que sea PHP6 o anterior, no se debería usar, de todas formas, a partir de PHP6 no será posible usarlas.
  • No usar magic_quotes: al igual que en el punto anterior, en PHP6 desaparecerá esta opción, además de añadir de que se permita o no su uso, no se deberían utilizar.
  • No usar variables predefinidas largas: Si usas $HTTP_POST_VARS o $HTTP_GET_VAR deberás cambiarlas por las respectivas $_SERVER, $_COOKIE, $_GET, $_POST, $_FILES…
  • Usar preg en lugar de ereg: en el uso de expresiones regulares deberemos usar las funciones preg (compatibles con Perl).
  • No inicializar variables con el operador referencia: cuando hagas algo del estilo $var =& new objeto(); deberá asignarlo sin el operador referencia porque te dará un error E_STRICT.

Becoming PHP 6 Compatible

Vía / PHPDeveloper.org

Librería PHP para OAuth

OAuth es un protocolo abierto que permite un API de autenticación de forma simple y estándar para aplicaciones de escritorio y aplicaciones web. El protocolo permite al usuario publicar e interactuar con datos protegidos. Al servidor permite dar acceso a los datos de los usuarios mientras protege los credenciales de la cuenta.
Para aquellos que estén interesados en su utilización ya tienen una librería para PHP para OAuth con la que poder desarrollar sus aplicaciones (cliente o servidor).
También existen librerías para otros lenguajes como C#, Java, C, Perl, Python y Ruby.
OAuth para PHP
Vía / OpenSourceCommunity.org

|

YouTube, Picasa Web Albums y Documents List en PHP!

La gente de Google ha sacado un API en PHP para tres de sus productos: Youtube, Picasa Web Albums y Document Lists. El API está disponible en el framework Zend Framework 1.03+ y como un paquete independiente.
La documentación es muy completa y su uso sencillo. Hay que estar seguro de que nuestra instalación soporta OpenSSL para poder leer feeds autenticados.
YouTube, Picasa Web Albums and Documents List in PHP!
Vía / Ajaxline