Cita: Hola Casuis .. bueno es muy interesante el tema del framework de Zend.. pero me gustaria que citaras las ventajas de PDO sobre ADOdb.. ya que estoy por comenzar a jugar con el framework pero pienso no utilizar su capa de persistencia sino la de ADOdb... y seria bueno tener tus opiniones antes de comenzar...
Bueno unas anotaciones antes de que empieces.
Diferencia entre Adodb y PDO
Adodb y PDO presentan una capa de abstracción de base de datos. Lo que significa que proporcionan una adaptación de acceso a la base de datos. Lo que significa que para ejecutar sentencias por ejemplo:
Código PHP:
$sql = " select * from mensajes";
$rs = $db->Execute($sql)
Esta sentencia seleccionará todos los registros de la tabla "mensajes" independientemente de si esa tabla está almacenada en una base de datos mysql, sqlite, postgress...
Lo único que hay que definir el dns de la base de datos nada más luego el acceso se hace transparente.
Esto es muy util para proyectos empresariales, sobre todo en migraciones de proyectos. De esta manera no tendremos que retocar código si decidimos pasar de mysql a postgress o de postgress a Oracle.
Ahora las diferencia para mi son bastante grandes.
ADODB está programado en PHP sin embargo PDO son librerias dinamicas programadas en C que es el lenguaje más rápido del mundo.
ejemplo de librerias de PDO:
Código:
extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
ADODB está diseñado para soportar diferentes versiones de PHP como la 4 o la 5.
PDO está diseñado exclusivamente para PHP5 y aprovecha todo su potencial, cosa que lo hace más eficiente
una muestra de código de PDO extraída del
manual php Código PHP:
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
Vemos como PDO utiliza el nuevo sistema de excepciones...
Ahora no todo es malo en Adodb nada más lejos de la realidad.
Adodb al estar tan extendido es muy adaptable para cualquier proyecto independiente de la versión que utilices, de hecho está preparado para utilizar las ventajas de la versión 5 de PHP.
Adodb es más maduro. PDO hasta no hace mucho era un repositorio PECL inestable.
Adodb tiene versiones compiladas
alguien las ha probado? para hacerlo más eficiente.
Adodb proporciona acceso a PDO también aunque no te lo recomiendan(puedes leerlo en la documentación).
En Zend Framework por ejemplo si creas un objeto Zend_Db_Table que representa una tabla en la base de datos y luego añades un campo extra a la tabla automaticamente se añadira al objeto tambien sin tener que tocar nada de código.
Una de las perlas que tiene Zend Framework.
Pero para mi uno de los mayores logros ha sido la implementación de Lucene a php.
Zend_Search es un clon de Apache Lucene. Apache lucene puede indexar más de 65000 documentos en menos de 1 o 2 segundos. Ahora con Zend Framework podemos implementar un buscador propio hecho a nuestra medida con dos clases nada más. Estas son algunas de las perlas de Zend Framework.
Por cierto tiene licencia new BSD !!!
Cualquier duda preguntar