2008-08-11 11 views
10

He heredado un viejo y crujiente PHP application, y me gustaría refactorizarlo en algo un poco más agradable de tratar, pero de forma gradual. En CPAN de perl, hay una serie de clases alrededor de Class :: DBI que le permiten usar filas de bases de datos como base para objetos en su código, con la biblioteca generando accessor methods etc. según corresponda, pero también permitiéndole agregar métodos adicionales.Class :: DBI-like library for php?

¿Alguien sabe de algo como esto para PHP? Especialmente algo que no requiere la adopción al por mayor de un "marco" ... puntos de bonificación si también funciona en PHP4, pero para ser sincero, me gustaría tener otra razón para dejarlo. :-)

Respuesta

3

Ahora está desaparecido, pero phpdbi es posiblemente digno de un vistazo. Si está dispuesto a dejar de lado algunas de sus advertencias (la del framework), he encontrado que Doctrine es una manera bastante clara de acceder a los DB en PHP. Vale la pena investigar de todos modos.

0

Lo correcto es acceder a la base de datos a través de una capa de abstracción de forma que si cambia su RDBMS o cómo implementó ese acceso, solo tiene que modificar esta capa mientras el resto de su aplicación permanece intacta.

Para hacer que su aplicación deje de saber cómo tratar con la base de datos, su capa de abstracción para acceso a bases de datos debe implementarse mediante un marco como ADODB.

Todos los archivos relacionados con esta capa deben estar ubicados en un subdirectorio:

  • /ado

En esta directorios que voy a poner todos los archivos que contiene .php.inc métodos generales para acceder a la base de datos.

0

¿Qué tal MDB2 de pear?

Proporciona una API común para todos los RDBMS compatibles con . La diferencia principal con la mayoría de los demás paquetes de abstracción DB es que MDB2 va mucho más allá de para garantizar la portabilidad.

Btw: @GaryF ¿Cuáles son esos extraños atributos de título que tienen tus enlaces? ¿Los agregó o los agregó SO?

1

Clase :: DBI es un ORM (Object Relational Mapper) por perl. La búsqueda de "PHP ORM" en google ofrece buenos resultados, incluido Doctrin, con los que he tenido buena suerte. Comenzaría allí y trabajaría hacia arriba.

1

Estoy tratando de obtener más información sobre mis propios proyectos, así que voy a sugerir mi opinión sobre ORM: ORMer

ejemplos de uso son here

Puede eliminar en ella, no lo hace requiere que adoptes MVC, y requiere muy poca configuración.