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