@mattab opened this Issue on March 22nd 2009 Member

Piwik should use autoload to automatically load the classes.

This would simplify the code, would make loading pages faster, as unecessary includes wouldn't be loaded, and would greatly increase reusability of the code.

For example, Zend does it via Zend_Loader::registerAutoload();
see the code on http://www.google.com/codesearch/p?hl=en#1oUPVh-C1Wg/trunk/eval/gx/zendframework/library/Zend/Loader.php&q=%22spl_autoload_register(array($class,%27autoload%27))%3B&l=32

Once implemented we can remove all requireonce from all .php files.
The includes for the Piwik
* (core/PluginsFunctions/*) shortcut functions would still be required and could all be merged in one include file.

@robocoder commented on May 26th 2009 Contributor

Reference: http://www.zendframework.com/manual/en/performance.classloading.html

Suggests it would be as easy as adding this to index.php and piwik.php:

require_once 'Zend/Loader/Autoloader.php';
@robocoder commented on May 26th 2009 Contributor

Silly me... RTFM, we would still have to define an autoloader callback to map classes in our namespace to actual files.

@mattab commented on May 29th 2009 Member

vipsoft, this ticket means:

  • using autoloading for all zend classes (if this is not already the case) by calling their autoloader
  • adding an autoloader in Piwik (can we somehow reuse the zend one?) and keep it as simple as possible (as in zend). This will most likely mean that a few classes will have to be moved/renamed. most classes should be OK as we used a similar structure to the zend structure.
@robocoder commented on June 15th 2009 Contributor

(In [1220]) refs #620 - class renaming for consistency

@robocoder commented on June 15th 2009 Contributor

(In [1221]) fixes #801, fixes #620 - implement autoloader; remove require_once
FrontController.php from ./index.php to test autoloader; add "false"
parameter to all class_exists() calls to not trigger autoloader

@robocoder commented on June 15th 2009 Contributor

Confirming that [1220] was a global search and replace, including tests/*.

@robocoder commented on June 15th 2009 Contributor

(In [1224]) refs #620, refs #803 - refactor autoloader into core/Loader.php (class
Piwik_Loader); remove unnecessary require_once in core/Common.php

This Issue was closed on August 13th 2009
Powered by GitHub Issue Mirror