|

Oracle y PHP

La gente de Oracle han reescrito un libro que nos explica todo lo necesario para desarrollar aplicaciones en PHP que accedan a Oracle, está en formato PDF y la versión del documento es la 1.4. Este libro no es una guía completa de PHP y Oracle, ya que se supone que se tienen conocimientos básicos de PHP y SQL.

El libro está formado por 17 capítulos:

  • Introducción: introducciones sobre Oracle y PHP.
  • Extensiones PHP para Oracle: extensiones Oracle, OCI8 y PDO.
  • Instalación de Oracle Database 10g Express Edition: aunque el manual se centra en esta versión, también es válida para cualquier versión de Oracle actual.
  • Uso de Oracle Database 10g: trabajar con SQLs, PLs, crear usuarios, monitorear las sesiones, crear conexiones a la BD, crear informes y mucho más.
  • Instalar Apache: tanto en Linux como en Windows.
  • Instalar PHP: OCI en PHP4 y PHP5 tanto para Linux como para Windows y PDO en Linux y Windows.
  • Instalar Zend Core para Oracle: instalación y administración de Zend Core para Oracle.
  • Conectar a Oracle mediante OCI8: tipos de conexión, variables de entorno de Oracle, cerrar conexiones Oracle (algo que se suele olvidar hacer la gente).
  • Ejecutar SQL mediante OCI8: inserciones, modificaciones, transacciones, errores OCI8, tunning de aplicaciones.
  • Usar PL/SQL en OCI8: crear procedimientos, errores, cursores.
  • Objetos grandes: LOBs y BFILEs.
  • Uso de XML en Oracle y PHP: uso de la extensión SimpleXML y acceso a datos de Oracle mediante HTTP.
  • Globalización: manipulación de Strings, Locale, codificación de caracteres de los HTML, formato de fechas y números.
  • Debug.
  • Testing: ejecutar tests OCI8, fallo en los tests, creación de tests.
  • Nombre de funciones OCI8 en PHP.
  • Extesión de Oracle obsoleta: comparación entre la extensión Oracle y OCI8.

The Underground PHP and Oracle Manual

Vía / Christopher Jones on OPAL

Adroit: otro framework de PHP

adroit.pngAdroit es un framework MVC ligero que nos ayudará a desarrollar nuestros proyectos web.

Aunque hay frameworks muy estables y potentes como puedan ser CakePHP o Zend Framework, hay veces que un framework ligero pueda ser más conveniente.

Adroit nos ofrece entre otras cosas lo siguiente:

  • Orientado a objetos.
  • Estructura MVC.
  • Documentado.
  • Utiliza Smarty como motor de plantillas.
  • Permite centrarte en las áreas importantes (negocios, lógica y presentación).
  • Mantiene el código importante fuera del root web-
  • Integra Ajax de forma sencilla.
  • Requiere PHP5.

Adroit

Vía / PHPDeveloper.org

|

Combinar Flex y PHP mediante Zend Framework

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.
flexphp.png
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

Almacena la sesión del navegador en la BD con PHP

La mayoría de las aplicaciones web usan la sesión para almacenar información que podemos utilizar en todas las páginas que visitemos, así no será necesario pasarla por parámetro como muchas veces se hace (incorrectamente).
Normalmente la sesión se guarda en un fichero en el servidor, lo cual puede ser un problema, ya que si queremos usar varios servidores en cluster, la sesión no estaría disponible si en la siguiente página que visitamos, el servidor que atiende nuestra aplicación no es el mismo. Yo no soy experto en sistemas, pero si el sistema permite session-aware en el balanceo de carga, no nos encontraremos con este problema.
Si nos encontramos con ese problema y es necesario solucionarlo mediante programación, PHP nos permite gestionar las sesiones, indicando el modo de guardar y leer las sesiones. Para ello existe la función session_set_save_handler(), en la cual indicaremos los métodos para abrir, cerrar, leer, escribir, destruir y liberar sesiones.
En el artículo que referenciamos guardan la sesión en la base de datos, para lo cual habrá que crear una tabla que almacene el ID de la sesión, la información y la fecha de expiración. Las acciones de tratamiento de la sesión usarán esta tabla para almacenar y tratar la información de la sesión. Al abrir y cerrar la sesión no se debe hacer nada, leer leerá de la tabla según el ID dado y si no ha expirado, guardar insertará/modificará en la tabla guardando los datos, destruir borrará los datos de la tabla y liberar sesiones borrará de la tabla las sesiones que hayan caducado.
Storing PHP Sessions in a Database
Vía / PHPDeveloper.org

Guía de novedades de PHP 5.2.x

Aunque ya hace tiempo hablamos de las novedades que trae PHP 5.2.x, hoy vamos a mencionar una serie de artículos creados por IBM en la que se nos explica cada una de estas novedades.

Nuevo gestor de memoria

Aunque PHP ya gestiona por nosotros la memoria utilizada en los scripts, no quita que a veces sea necesario gestionar por nuestra cuenta un recurso tan preciado como la memoria.

En versiones anteriores ya podíamos liberar memoria usando la función unset(), pero en esta versión, PHP nos ofrece dos funciones nuevas con las que controlamos el uso de memoria: memory_get_usage() y memory_get_peak_usage(), ambas nos devuelve el uso de memoria, pero con la diferencia de que la segunda nos devuelve el pico de memoria usada y la primera el uso de memoria en ese momento.

Con estas funciones, cuando nos encontremos en un bloque de código que sepamos que gasta mucha memoria, podremos controlar el flujo de la ejecución dependiendo del uso de memoria, así poder evitar problemas de gasto de recursos o evitar errores. Incluso limitar el uso de memoria a scripts, por ejemplo, si queremos obtener en background los feeds de unos blogs para crearnos un planet, podemos evitar que el script utilice mucha memoria y parar cuando haya llegado a un tope.

Nueva extensión de filtro de entrada

Para evitar ataques por parte de usuarios y para mejorar nuestra seguridad, PHP 5.2 incluye dos tipos de filtros para tratar los datos que nos llegan por los formularios de entrada.

Los filtros son de dos tipos uno de tipo sanitizing (desinfectar), el cual elimina caracteres no deseados de un texto y lo devuelve sin estos, y el otro lógico, el cual hace comprobaciones sobre esos textos.

En ambos casos se usa la función filter_var(), pero dependiendo de si se usa el flag FILTER_SANITIZE_STRING o el FILTER_VALIDATE_INT, realizará cualquiera de los dos filtros.

Nueva extensión JSON

Ni que decir tiene que JSON es parte fundamental en las nuevas aplicaciones realizadas con Ajax, por eso PHP incluye dos funciones: json_encode() y json_decode(), la primera transforma datos de PHP en una estructura JSON y la segunda al revés, datos JSON en una matriz de PHP.

Nueva extensión ZIP

El uso de ficheros ZIP, para comprimir ficheros, puede sernos muy útil en muchos casos, ya no solo por comprimir el tamaño de los archivos, sino también porque agrupa en uno solo varios ficheros. La nueva extensión de PHP usa las funciones de la clase Ziparchive para leer y crear ficheros ZIP.

What’s new in PHP V5.2

Ejecuciones multi-hilo en PHP

Algo fuera de lo común, pero que nos puede ser útil alguna vez, es ejecutar en nuestro script PHP, tareas multi-threading.
Aunque PHP no está preparada para la ejecución de threads, el autor del artículo se crea una clase para tratar estas ejecuciones. La simulación de los hilos lo realiza mediante la funcion proc_open(), la cual ejecuta un comando y abre punteros de archivo para entrada/salida.
Uno de los problemas que veo es el tratamiento de errores, que aunque se obtienen mediante el buffer de salida de error, no creo que se tenga un buen control sobre estos.
Multi-threading strategies in PHP
Vía / PHPDeveloper.org

|

SAJA: Ajax seguro con PHP

SAJA es una librería para usar Ajax en PHP de forma segura, sin necesidad de crear ningún Javascript y dando soporte a PHP4 y PHP5.
Está diseñado para crear de forma rápida aplicaciones Ajax secillas, seguras y fáciles de mantener.
Se trata de crear funciones PHP que se encarguen de todo, no es necesario registrar callbacks, ni de importar otras funciones. Tan solo se escribe una función y se llama.
La seguridad que nos ofrece es debido a que las peticiones SAJA sólo son válidas si el usuario está actualmente en la página desde donde proviene la petición. A parte, para darle mayor seguridad, se puede encriptar los datos de entrada del usuario antes de que se envíen al servidor.
Tan solo ocupa 14K y 3.8K para el usuario final. No utiliza XML debido a que pesa demasiado y a que parsearlo requiere más proceso que con datos normales. No es necesario escribir código Javascript a no ser que quieras hacer algo fuera de lo común.
SAJA
Vía / Ajaxian

Phalanger: compilador de PHP para .NET

phalanger.pngPhalanger es una implementación de PHP que permite incluir código PHP en el entorno del framework .NET de forma rápida y compatible con la mayoría del código PHP.
El desarrollador podrá beneficiarse de la facilidad y eficiencia de PHP y del poder y riqueza de .NET. Phalanger compila los scripts PHP en código MSIL, el cual puede ser ejecutado en .NET o Mono.
Phalanger incluye funciones de tratamiento de strings o arrays que han sido reimplementadas, teniendo un buen rendimiento. Lo único malo es que por ahora solo soporta código para PHP4.
Phalanger
Vía / AjaxLine

CodeIgniter: framework para PHP

codeigniter.pngCodeIgniter es otro framework para PHP, una alternativa a otros frameworks que hay disponibles. CodeIgniter es adecuado para desarrollos que no requieran un framework que marque mucho la aplicación, a parte para cuando sea necesario mucho rendimiento.
Pensado para aquellas aplicaciones que se ejecutan en hosting compartido que ejecutan muchas versiones de PHP con diferentes configuraciones. También te puede ser útil si no quieres usar un framework con configuraciones iniciales, o que sea necesaria la línea de comandos.
Lo que más me ha gustado es la documentación que ofrecen, acostumbrado a otros frameworks en los que los inicios son difíciles por la falta de esta documentación.
CodeIgniter
Vía / PHPDeveloper.org

| |

Serendipity: otro sistema de blogs

serendipity.pngSerendipity es un CMS basado en PHP que nos permite llevar nuestro blog o nuestra web completa. Ofrece flexibilidad, fácil de ampliar y con un framework sencillo de usar.

Aquellos usuarios casuales verán en la arquitectura de plugins un modo sencillo de modificar el aspecto y las características. Existe un repertorio de más de 120 plugins fáciles de instalar, sin necesidad de editar código.

Actualmente existen 40 plantillas para descargar, realizadas mediante el sistema de plantillas Smarty, para que aquellos usuarios expertos puedan modificarlas.

Las características que nos ofrece son las siguientes:

  • Editor WYSIWYG y HTML
  • Múltiples autores y sistema de usuarios/permisos configurable
  • Comentarios, categorías y entradas asignables a varias categorías
  • Internacionalización
  • Repositorio de plugins y plantillas para fácil instalación
  • Interesantes plugins: sub-blogs basados en categorías, podcasting, RSS, páginas estáticas
  • Anti-spam
  • Actualización de versión mediante un único click
  • Incrustable en otras páginas web
  • Bloggin remoto mediante XML-RPC
  • Soporte para SQLite, PostgreSQL, MySQL y MySQLi
  • Instalaciones compartidas pueden crear multiples blogs desde un única base
  • Importación de otros blogs (WordPress, Textpattern, Moveable Type, bblog, …)

Serendipity

Vía / Walhez