Upgrade Piwik 2.0 codebase to PHP 5.3!
|Reported by:||halfdan||Owned by:||mattab|
|Priority:||critical||Milestone:||2.0 - Piwik 2.0|
Description (last modified by matt)
This ticket should serve as a placeholder ticket for discussion and future changes related to Piwik 2.0.
With Piwik 2.0 in sight we should raise the minimum PHP version to 5.3. PHP 5.1 has EOL'd more than 7 years ago, and PHP 5.2 more than 2 years ago. http://php.net/eol.php
PHP 5.3 introduced several interesting features that we can utilize.
For Piwik 2.0 I propose the following changes regarding namespaces.
We use \Piwik as central namespace. Everything else will go into subnamespaces. This will allow us to get rid of long class names like Piwik_Plugin_Config (which will become the class Config in the namespace \Piwik\Core\Plugin.
I propose the following namespaces:
and so on. We should discuss if the "Core" namespace is necessary however.
PHP 5.3 also introduced anonymous functions, which we can use as callback methods in some places.
It also introduced better XML support with XMLReader/XMLWriter, which could act as a replacement for SimpleXML and solve #1522.
This will break backwards compatibility, but since 2.0 is a major release we should use this to bring Piwik to the latest standard in PHP development.
This will also allow us to upgrade or change some of our dependencies that have moved to PHP 5.3 as well.
Bringing Piwik to PHP 5.3 is no easy task and will very likely be a joint effort. We need to decide on a feature freeze date. At this date, no new features will be implemented in the master branch. We will then create a "Piwik 1.x" branch which we can maintain for security patches and backports of Piwik 2.0 features. The master branch will then be used to upgrade Piwik to PHP 5.3.
Feel free to add to this ticket!
Change History (13)
comment:5 Changed 10 months ago by matt (mattab)
- Description modified (diff)
- Milestone changed from 1.x - Piwik 1.x to 2.0 - Piwik 2.0
comment:9 Changed 4 months ago by matt (mattab)
- Owner set to mattab
- Resolution set to fixed
- Status changed from new to closed