Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Update Zend Framework classes to their latest version + backport some changes #497

Closed
mattab opened this Issue · 12 comments

3 participants

@mattab
Owner

Piwik is using ZF 1.0 classes. We should update to the latest ZF classes, as long as they don’t add an enormous overhead.

Also, we had to patch some files in the early days: look at core/misc/TODO. I noted some changes I had to make in ZF libraries due to some limitations. I created bugs in ZF bug tracker for some of them so some should be fixed by now. we may have to backport some of these changes though.

CHANGES DONE TO LIBRARIES #####===

  • edited Zend/Db/Adapter/Abstract.php added resetConfigArray()
  • edited zend_log and changed attr to protected
  • fixed bug fwrite in zend_log stream writer
  • ~fixed PEAR so that it works under PHP5 with STRICT MODE enabled~
  • edited line 145 registry.php from require_once ‘Zend/Exception.php’; to require_once ‘Exception.php’; so that it works when calling Piwik in CLI mode
@robocoder
Collaborator

ZF 1.7 has ballooned in size from 1.0. Would you propose to import the whole thing or piecemeal?

@robocoder
Collaborator

Having worked through ticket #243, it’s perhaps premature to contemplate this, but I will note (given comments about replacing some of the jquery plugins) that ZF includes the dojo toolkit.

@robocoder
Collaborator

Should we include the complete ZF 1.7.x library?

Benefits:

  • 3rd party plugins can assume all Zend components available
  • wouldn’t have to test for interdependies between Zend components that we include vs exclude

Negatives:

  • increases size of distribution (Piwik uses a 6 MB subset from ZF 1.0; the library in ZF 1.7.6 is ~22MB)
  • increases number of inodes used (could be an issue for some hosting accounts)
@mattab
Owner

no we should defintely not include all libs, small piwik.zip size is critical feature. we only include modules that we know we’re using. If plugins need special modules then they can include it in the plugin code.

I think zend is pretty good as having each module autonomous so testing for dependency would be small effort.

@robocoder
Collaborator

... ZF 1.8 preview released earlier this month; looks like they're targeting for a release at the end of this month ...

@robocoder
Collaborator

According to http://www.zendframework.com/manual/en/requirements.html, ZF "supports" PHP 5.2.4 or later. Should Piwik raise its minimum PHP requirement?

@halfdan
Collaborator

Refering to zend.com they are targetting 1.9.0 for late July of this year.

I concur with matt, piwik should only use the required subset of Zend classes.

@mattab
Owner

piwik should not raise php minimum requirements as long as the subset of zend we need to use doesn't require higher php version. if this is the case that a zend lib we use require a higher php version, we might want to make sure this is necessary - as increasing php versions might mean lose a few users on the way :)

@robocoder
Collaborator

The minimum requirements should be increased periodically for practical purposes, otherwise "costs" (time, effort, opportunity, etc) increase to provide end-user support and to maintain backwards compatibility (e.g., workarounds).

Does anyone still have a box running PHP 5.1.3 and MySQL 4.1 to test releases?

@robocoder
Collaborator

PEAR isn't part of ZF and won't be addressed by this ticket.

The following changes have (since 1.0) been fixed/resolved upstream:

  • edited line 145 registry.php from require_once 'Zend/Exception.php'; to require_once 'Exception.php'; so that it works when calling Piwik in CLI mode
  • ![ZF-1791] edited zend_log and changed attr to protected
  • ![ZF-1790] fixed bug fwrite in zend_log stream writer
  • ![ZF-1832] Zend_Date bug
  • ![ZF-1796] Mysql adapter assumes Mysqli class is available

I submitted ![ZF-7788] for the resetConfigArray() enhancement.

@robocoder
Collaborator

In [1454], fixes #497 - update to Zend Framework 1.9.2 (subset); remove svn:keywords to preserve the original $Id; misc changes to handle fetchRow() sometimes returning null (instead of false)

@robocoder
Collaborator

In [1457], refs #497 - fix regression; remove call to Zend_Session::destroy()

@mattab mattab added this to the Piwik 0.4.4 milestone
@robocoder robocoder was assigned by mattab
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.