DBAL-125: Add Informix Support #1200

doctrinebot opened this Issue Jun 8, 2011 · 3 comments

2 participants


Jira issue originally created by user adolfof:

Today exist many customers with Informix 11.50 and they will deveoplment with php+simphony, but doctrine will be an alternative inside the framework but it isn't supported.
My customers can't migration ( they are happy with informix) your application and he need a framework as simphony and an abstration of your environment as Doctrine.
There is a possibility to support Informix in Doctrine?
Thanks and regards

Adolfo Flores


Comment created by @beberlei:

There is a possibility to support Informix, this is described here:


I don't know informix and never worked with it, if you would volunteer to code this i would be enternelly grateful :-) I could help you with the details of implementation.

I think a working prototype can be implemented in 4-6h of time.


Comment created by adolfof:

good idea, I am an expert in informix database and I may need support in doctrine.

Is there any template to follow? I have read the required structure in the url given, it seems feasible.

What next step?

I am installing Informix, php 5.3 on RHES 5.2 All 32-bit



Note: .I have no time basis, so that one week would be a reasonable time for this activity


Comment created by @beberlei:

I added some more details to the chapter, here is the part:

Implementation Steps in Detail

  1. Add your driver shortcut to class-name Doctrine\DBAL\DriverManager.
  2. Make a copy of tests/dbproperties.xml.dev and adjust the values to your driver shortcut and testdatabase.
  3. Create three new classes implementing \Doctrine\DBAL\Driver\Driver, \Doctrine\DBAL\Driver\Statement and Doctrine\DBAL\Driver. You can take a look at the Doctrine\DBAL\Driver\OCI8 driver.
  4. You can run the testsuite of your new database driver by calling "cd tests/ && phpunit -c myconfig.xml Doctrine/Tess/AllTests.php"
  5. Start implementing AbstractPlatform and AbstractSchemaManager. Other implementations should serve as good example.

Essentially Driver, Statement are the PDO equivalents of "PDO" and "PDOStatement", they even have the exact same API. OCI8 is a good example to see how it works. If Informix works with PDO then its even simpler, take a look at Doctrine\DBAL\Driver\PDO namespace, you don't need to implement the connection and statement then, just the driver taking care of the configuraiton.

The most complicated thing is to get the Platform and SchemaManager to work. Both are responsible for SQL generation for DDL statements for example. It makes sense to run the phpunit testsuite and fix the bugs when occuring until all tests pass.

Also looking at the platform and schema managers of other databases is a very good help

@beberlei beberlei was assigned by doctrinebot Dec 6, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment