Skip to content
Extraits de code Groupes Projets
Valider 20e002f5 rédigé par Matthieu Aubry's avatar Matthieu Aubry
Parcourir les fichiers

Merge pull request #7408 from piwik/di-in-widgets-menus-tasks

Dependency injection in widgets, menus, settings and tasks
parents 0bbc42c4 a7a8c717
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
*/ */
namespace Piwik; namespace Piwik;
use Piwik\Container\StaticContainer;
use Piwik\Plugin\Dependency; use Piwik\Plugin\Dependency;
use Piwik\Plugin\MetadataLoader; use Piwik\Plugin\MetadataLoader;
...@@ -359,7 +360,7 @@ class Plugin ...@@ -359,7 +360,7 @@ class Plugin
$this->cache->save($cacheId, $classname); $this->cache->save($cacheId, $classname);
} }
return new $classname; return StaticContainer::get($classname);
} }
public function findMultipleComponents($directoryWithinPlugin, $expectedSubclass) public function findMultipleComponents($directoryWithinPlugin, $expectedSubclass)
......
...@@ -30,16 +30,6 @@ use Piwik\Plugins\UsersManager\UserPreferences; ...@@ -30,16 +30,6 @@ use Piwik\Plugins\UsersManager\UserPreferences;
*/ */
class Menu class Menu
{ {
protected $module = '';
/**
* @ignore
*/
public function __construct()
{
$this->module = $this->getModule();
}
private function getModule() private function getModule()
{ {
$className = get_class($this); $className = get_class($this);
...@@ -69,7 +59,7 @@ class Menu ...@@ -69,7 +59,7 @@ class Menu
{ {
$params = (array) $additionalParams; $params = (array) $additionalParams;
$params['action'] = ''; $params['action'] = '';
$params['module'] = $this->module; $params['module'] = $this->getModule();
return $params; return $params;
} }
...@@ -88,11 +78,12 @@ class Menu ...@@ -88,11 +78,12 @@ class Menu
*/ */
protected function urlForAction($controllerAction, $additionalParams = array()) protected function urlForAction($controllerAction, $additionalParams = array())
{ {
$this->checkisValidCallable($this->module, $controllerAction); $module = $this->getModule();
$this->checkisValidCallable($module, $controllerAction);
$params = (array) $additionalParams; $params = (array) $additionalParams;
$params['action'] = $controllerAction; $params['action'] = $controllerAction;
$params['module'] = $this->module; $params['module'] = $module;
return $params; return $params;
} }
......
...@@ -25,16 +25,6 @@ class Widgets ...@@ -25,16 +25,6 @@ class Widgets
protected $category = ''; protected $category = '';
protected $widgets = array(); protected $widgets = array();
private $module = '';
/**
* @ignore
*/
public function __construct()
{
$this->module = $this->getModule();
}
/** /**
* @ignore * @ignore
*/ */
...@@ -77,7 +67,7 @@ class Widgets ...@@ -77,7 +67,7 @@ class Widgets
'name' => $name, 'name' => $name,
'params' => $parameters, 'params' => $parameters,
'method' => $method, 'method' => $method,
'module' => $this->module); 'module' => $this->getModule());
} }
/** /**
...@@ -182,7 +172,7 @@ class Widgets ...@@ -182,7 +172,7 @@ class Widgets
return; return;
} }
$controllerClass = '\\Piwik\\Plugins\\' . $this->module . '\\Controller'; $controllerClass = 'Piwik\\Plugins\\' . $this->getModule() . '\\Controller';
if (!Development::methodExists($this, $method) && if (!Development::methodExists($this, $method) &&
!Development::methodExists($controllerClass, $method)) { !Development::methodExists($controllerClass, $method)) {
......
...@@ -10,12 +10,23 @@ namespace Piwik\Plugins\CoreHome; ...@@ -10,12 +10,23 @@ namespace Piwik\Plugins\CoreHome;
use Piwik\Common; use Piwik\Common;
use Piwik\Piwik; use Piwik\Piwik;
use Piwik\Translation\Translator;
use Piwik\View; use Piwik\View;
class Widgets extends \Piwik\Plugin\Widgets class Widgets extends \Piwik\Plugin\Widgets
{ {
protected $category = 'Example Widgets'; protected $category = 'Example Widgets';
/**
* @var Translator
*/
private $translator;
public function __construct(Translator $translator)
{
$this->translator = $translator;
}
protected function init() protected function init()
{ {
$this->addWidget('CoreHome_SupportPiwik', 'getDonateForm'); $this->addWidget('CoreHome_SupportPiwik', 'getDonateForm');
...@@ -31,7 +42,7 @@ class Widgets extends \Piwik\Plugin\Widgets ...@@ -31,7 +42,7 @@ class Widgets extends \Piwik\Plugin\Widgets
if (Common::getRequestVar('widget', false) if (Common::getRequestVar('widget', false)
&& Piwik::hasUserSuperUserAccess()) { && Piwik::hasUserSuperUserAccess()) {
$view->footerMessage = Piwik::translate('CoreHome_OnlyForSuperUserAccess'); $view->footerMessage = $this->translator->translate('CoreHome_OnlyForSuperUserAccess');
} }
return $view->render(); return $view->render();
...@@ -43,8 +54,8 @@ class Widgets extends \Piwik\Plugin\Widgets ...@@ -43,8 +54,8 @@ class Widgets extends \Piwik\Plugin\Widgets
public function getPromoVideo() public function getPromoVideo()
{ {
$view = new View('@CoreHome/getPromoVideo'); $view = new View('@CoreHome/getPromoVideo');
$view->shareText = Piwik::translate('CoreHome_SharePiwikShort'); $view->shareText = $this->translator->translate('CoreHome_SharePiwikShort');
$view->shareTextLong = Piwik::translate('CoreHome_SharePiwikLong'); $view->shareTextLong = $this->translator->translate('CoreHome_SharePiwikLong');
$view->promoVideoUrl = 'https://www.youtube.com/watch?v=OslfF_EH81g'; $view->promoVideoUrl = 'https://www.youtube.com/watch?v=OslfF_EH81g';
return $view->render(); return $view->render();
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter