This is correct. In future releases of Zend_Db we'll be moving away from the confined naming schemed required by Zend_Db::factory(). The problem is (as noted by many developers in the issue tracker), that they do not want the factory to assume they have named their classes with the Uppercaselower naming since it does not work well with names any acronyms that may have multiple upper case letters:

   PDO -> Pdo
   PDF -> Pdf
   ABC -> Abc

So moving forward, the idea is to simply use the name as it is on the filesystem and in your class. This has the added benefit of maintaining of consistency and transparency between your config (and/or bootstrap) and the actual class file that is being loaded and instantiated.

I'll have a few words up on DevZone today about it.

-ralph

Jonathan Maron wrote:
This modification is important to note in ZF 1.9.3:

http://framework.zend.com/issues/browse/ZF-5606

The change will probably break some (older) applications.

Correct:

$db = Zend_Db::factory('Pdo_Mysql', $params);

Incorrect (as of ZF 1.9.3)

$db = Zend_Db::factory('PDO_MYSQL', $params);

There are many examples online and in books that use 'PDO_MYSQL'
instead of 'Pdo_Mysql'.

This issue effects applications on file systems that are case-sensitive.

You can check your code with the following:

find -name "*.php" | xargs grep -H "PDO_MYSQL" 2> /dev/null

This shows all occurrences of 'PDO_MYSQL' in all .php files.

Hope this helps someone!

:-)

Jonathan Maron

Reply via email to