Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Local mods to Zend Framework should be subclassed #632

Closed
anonymous-piwik-user opened this Issue · 6 comments

3 participants

Anonymous Piwik user Matthieu Aubry Anthon Pang
Anonymous Piwik user

i have tried to use piwik in a zend framework project so i have copy the example on the [Calling the API From within PHP](http://dev.piwik.org/trac/wiki/API/CallingTechniques) page and paste it in a zf controller after hacking the include_path to avoid ‘cannot redeclare class exception’ (see #631)

then i got the following error :

``` Fatal error: Call to undefined method Zend_Db_Adapter_Pdo_Mysql::resetConfigArray() in D:\WORK\SITES WEB\JC2\SRC\lib\piwik\core\Piwik.php on line 1184

—> Piwik::createDatabaseObject( ) ..\FrontController.php:234 ```

Matthieu said on the forum that’s because resetConfigArray() is a custom method from piwik, but now the classes are added from the standart library used for the whole project. i suggest any custom method like this one to be moove in new classes extending the original classes (eg Zenwik_Db_Adpater)

while looking at this i also noticed that piwik is using Zend_Registry to store data throw the process. Any user using already zf will surely use Zend_Registry too so every entry in it should be prefixed to avoid scope issue

``` Zend_Registry::set(‘piwik_config’,$config) ```

maybe something similar should be done for zend_session and zend_auth

PS : maybe same pb can happen with other third party librarys (smarty is used a lot too …)

Matthieu Aubry
Owner

(In 1030) – renaming all constants that were not prefixed by PIWIK_ refs #632

Anthon Pang
Collaborator

co-depends in #497

Anthon Pang
Collaborator

Adding resetConfigArray() to Zend_Db_Adapter_Abstract is much cleaner/simpler than subclassing all the adapters and changing the factory to use our subclassed adapters. I'll add a method_exists() check.

Anthon Pang
Collaborator

In [1453], check that resetConfigArray() method exists

Matthieu Aubry
Owner

I think we might be able to call _construct() with empty parameter, rather than having to keep the hack ->resetConfig()

I will investigate

Anthon Pang
Collaborator

In [1465], fixes #632 - move local mods to subclassed ZF classes; the duplication in Db/Mysqli.php and Db/Pdo/Mysql.php is unavoidable because PHP doesn't support multiple inheritance

Anonymous Piwik user anonymous-piwik-user added this to the Piwik 0.4.4 milestone
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.