[event] adding experimental support for user events
parent
1123603f64
commit
8505a34292
|
@ -13,6 +13,7 @@
|
||||||
"phpmailer/phpmailer": "5.2.6",
|
"phpmailer/phpmailer": "5.2.6",
|
||||||
"symfony/config": "2.6.*",
|
"symfony/config": "2.6.*",
|
||||||
"symfony/dependency-injection": "2.6.*",
|
"symfony/dependency-injection": "2.6.*",
|
||||||
|
"symfony/event-dispatcher": "2.6.*",
|
||||||
"symfony/http-foundation": "2.6.*",
|
"symfony/http-foundation": "2.6.*",
|
||||||
"php-pushover/php-pushover": "dev-master",
|
"php-pushover/php-pushover": "dev-master",
|
||||||
"twig/twig": "1.*"
|
"twig/twig": "1.*"
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"hash": "deb9fd4bbeb05c2d3cf1fc7cf51c6f00",
|
"hash": "d7d015288768a22125a8c66b13a95d41",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "php-pushover/php-pushover",
|
"name": "php-pushover/php-pushover",
|
||||||
|
@ -193,6 +193,64 @@
|
||||||
"homepage": "http://symfony.com",
|
"homepage": "http://symfony.com",
|
||||||
"time": "2015-01-25 04:39:26"
|
"time": "2015-01-25 04:39:26"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/event-dispatcher",
|
||||||
|
"version": "v2.6.4",
|
||||||
|
"target-dir": "Symfony/Component/EventDispatcher",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/EventDispatcher.git",
|
||||||
|
"reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/f75989f3ab2743a82fe0b03ded2598a2b1546813",
|
||||||
|
"reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"psr/log": "~1.0",
|
||||||
|
"symfony/config": "~2.0,>=2.0.5",
|
||||||
|
"symfony/dependency-injection": "~2.6",
|
||||||
|
"symfony/expression-language": "~2.6",
|
||||||
|
"symfony/stopwatch": "~2.3"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/dependency-injection": "",
|
||||||
|
"symfony/http-kernel": ""
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.6-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Symfony\\Component\\EventDispatcher\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "http://symfony.com/contributors"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony EventDispatcher Component",
|
||||||
|
"homepage": "http://symfony.com",
|
||||||
|
"time": "2015-02-01 16:10:57"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/filesystem",
|
"name": "symfony/filesystem",
|
||||||
"version": "v2.6.4",
|
"version": "v2.6.4",
|
||||||
|
|
|
@ -6,6 +6,14 @@ xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/sc
|
||||||
<parameters>
|
<parameters>
|
||||||
<parameter key="config.theme" type="constant">PSM_THEME</parameter>
|
<parameter key="config.theme" type="constant">PSM_THEME</parameter>
|
||||||
|
|
||||||
|
<parameter key="modules" type="collection">
|
||||||
|
<parameter>module.config</parameter>
|
||||||
|
<parameter>module.error</parameter>
|
||||||
|
<parameter>module.server</parameter>
|
||||||
|
<parameter>module.user</parameter>
|
||||||
|
<parameter>module.install</parameter>
|
||||||
|
</parameter>
|
||||||
|
|
||||||
<parameter key="path.src" type="constant">PSM_PATH_SRC</parameter>
|
<parameter key="path.src" type="constant">PSM_PATH_SRC</parameter>
|
||||||
<parameter key="path.templates">%path.src%templates</parameter>
|
<parameter key="path.templates">%path.src%templates</parameter>
|
||||||
|
|
||||||
|
|
|
@ -27,9 +27,16 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module\Config;
|
namespace psm\Module\Config;
|
||||||
|
|
||||||
use psm\Module\ModuleInterface;
|
use psm\Module\ModuleInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class ConfigModule implements ModuleInterface {
|
class ConfigModule implements ModuleInterface {
|
||||||
|
|
||||||
|
public function load(ContainerBuilder $container) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function getControllers() {
|
public function getControllers() {
|
||||||
return array(
|
return array(
|
||||||
'config' => __NAMESPACE__ . '\Controller\ConfigController',
|
'config' => __NAMESPACE__ . '\Controller\ConfigController',
|
||||||
|
|
|
@ -27,9 +27,16 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module\Error;
|
namespace psm\Module\Error;
|
||||||
|
|
||||||
use psm\Module\ModuleInterface;
|
use psm\Module\ModuleInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class ErrorModule implements ModuleInterface {
|
class ErrorModule implements ModuleInterface {
|
||||||
|
|
||||||
|
public function load(ContainerBuilder $container) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function getControllers() {
|
public function getControllers() {
|
||||||
return array(
|
return array(
|
||||||
'error' => __NAMESPACE__ . '\Controller\ErrorController',
|
'error' => __NAMESPACE__ . '\Controller\ErrorController',
|
||||||
|
|
|
@ -27,9 +27,16 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module\Install;
|
namespace psm\Module\Install;
|
||||||
|
|
||||||
use psm\Module\ModuleInterface;
|
use psm\Module\ModuleInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class InstallModule implements ModuleInterface {
|
class InstallModule implements ModuleInterface {
|
||||||
|
|
||||||
|
public function load(ContainerBuilder $container) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function getControllers() {
|
public function getControllers() {
|
||||||
return array(
|
return array(
|
||||||
'install' => __NAMESPACE__ . '\Controller\InstallController',
|
'install' => __NAMESPACE__ . '\Controller\InstallController',
|
||||||
|
|
|
@ -27,8 +27,11 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module;
|
namespace psm\Module;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
interface ModuleInterface {
|
interface ModuleInterface {
|
||||||
|
|
||||||
|
public function load(ContainerBuilder $container);
|
||||||
|
|
||||||
public function getControllers();
|
public function getControllers();
|
||||||
}
|
}
|
|
@ -27,9 +27,16 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module\Server;
|
namespace psm\Module\Server;
|
||||||
|
|
||||||
use psm\Module\ModuleInterface;
|
use psm\Module\ModuleInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class ServerModule implements ModuleInterface {
|
class ServerModule implements ModuleInterface {
|
||||||
|
|
||||||
|
public function load(ContainerBuilder $container) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function getControllers() {
|
public function getControllers() {
|
||||||
return array(
|
return array(
|
||||||
'server' => __NAMESPACE__ . '\Controller\ServerController',
|
'server' => __NAMESPACE__ . '\Controller\ServerController',
|
||||||
|
|
|
@ -123,6 +123,10 @@ class ProfileController extends AbstractController {
|
||||||
unset($clean['password_repeat']);
|
unset($clean['password_repeat']);
|
||||||
|
|
||||||
$this->db->save(PSM_DB_PREFIX.'users', $clean, array('user_id' => $this->getUser()->getUserId()));
|
$this->db->save(PSM_DB_PREFIX.'users', $clean, array('user_id' => $this->getUser()->getUserId()));
|
||||||
|
$this->container->get('event')->dispatch(
|
||||||
|
\psm\Module\User\UserEvents::USER_EDIT,
|
||||||
|
new \psm\Module\User\Event\UserEvent($this->getUser()->getUserId())
|
||||||
|
);
|
||||||
if(isset($password)) {
|
if(isset($password)) {
|
||||||
$this->getUser()->changePassword($this->getUser()->getUserId(), $password);
|
$this->getUser()->changePassword($this->getUser()->getUserId(), $password);
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,12 +253,20 @@ class UserController extends AbstractController {
|
||||||
unset($clean['password']); // password update is executed separately
|
unset($clean['password']); // password update is executed separately
|
||||||
$this->db->save(PSM_DB_PREFIX.'users', $clean, array('user_id' => $user_id));
|
$this->db->save(PSM_DB_PREFIX.'users', $clean, array('user_id' => $user_id));
|
||||||
$this->addMessage(psm_get_lang('users', 'updated'), 'success');
|
$this->addMessage(psm_get_lang('users', 'updated'), 'success');
|
||||||
|
|
||||||
|
$event = \psm\Module\User\UserEvents::USER_EDIT;
|
||||||
} else {
|
} else {
|
||||||
// add user
|
// add user
|
||||||
$clean['password'] = ''; // password update is executed separately
|
$clean['password'] = ''; // password update is executed separately
|
||||||
$user_id = $this->db->save(PSM_DB_PREFIX.'users', $clean);
|
$user_id = $this->db->save(PSM_DB_PREFIX.'users', $clean);
|
||||||
$this->addMessage(psm_get_lang('users', 'inserted'), 'success');
|
$this->addMessage(psm_get_lang('users', 'inserted'), 'success');
|
||||||
|
|
||||||
|
$event = \psm\Module\User\UserEvents::USER_ADD;
|
||||||
}
|
}
|
||||||
|
$this->container->get('event')->dispatch(
|
||||||
|
$event,
|
||||||
|
new \psm\Module\User\Event\UserEvent($user_id, $this->getUser()->getUserId())
|
||||||
|
);
|
||||||
if(isset($password)) {
|
if(isset($password)) {
|
||||||
$this->getUser()->changePassword($user_id, $password);
|
$this->getUser()->changePassword($user_id, $password);
|
||||||
}
|
}
|
||||||
|
@ -294,6 +302,12 @@ class UserController extends AbstractController {
|
||||||
|
|
||||||
$this->db->delete(PSM_DB_PREFIX . 'users', array('user_id' => $id,));
|
$this->db->delete(PSM_DB_PREFIX . 'users', array('user_id' => $id,));
|
||||||
$this->db->delete(PSM_DB_PREFIX.'users_servers', array('user_id' => $id));
|
$this->db->delete(PSM_DB_PREFIX.'users_servers', array('user_id' => $id));
|
||||||
|
|
||||||
|
$this->container->get('event')->dispatch(
|
||||||
|
\psm\Module\User\UserEvents::USER_DELETE,
|
||||||
|
new \psm\Module\User\Event\UserEvent($id, $this->getUser()->getUserId())
|
||||||
|
);
|
||||||
|
|
||||||
$this->addMessage(psm_get_lang('users', 'deleted'), 'success');
|
$this->addMessage(psm_get_lang('users', 'deleted'), 'success');
|
||||||
} catch(\InvalidArgumentException $e) {
|
} catch(\InvalidArgumentException $e) {
|
||||||
$this->addMessage(psm_get_lang('users', 'error_' . $e->getMessage()), 'error');
|
$this->addMessage(psm_get_lang('users', 'error_' . $e->getMessage()), 'error');
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP Server Monitor
|
||||||
|
* Monitor your servers and websites.
|
||||||
|
*
|
||||||
|
* This file is part of PHP Server Monitor.
|
||||||
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @package phpservermon
|
||||||
|
* @author Pepijn Over <pep@peplab.net>
|
||||||
|
* @copyright Copyright (c) 2008-2015 Pepijn Over <pep@peplab.net>
|
||||||
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
|
* @version Release: @package_version@
|
||||||
|
* @link http://www.phpservermonitor.org/
|
||||||
|
* @since phpservermon 3.2
|
||||||
|
**/
|
||||||
|
|
||||||
|
namespace psm\Module\User\Event;
|
||||||
|
|
||||||
|
use Symfony\Component\EventDispatcher\Event;
|
||||||
|
|
||||||
|
class UserEvent extends Event {
|
||||||
|
|
||||||
|
protected $user_id;
|
||||||
|
|
||||||
|
protected $user_id_by;
|
||||||
|
|
||||||
|
public function __construct($user_id, $user_id_by = null) {
|
||||||
|
$this->user_id = $user_id;
|
||||||
|
$this->user_id_by = $user_id_by;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getUserId() {
|
||||||
|
return $this->user_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getUserIdBy() {
|
||||||
|
return $this->user_id_by;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP Server Monitor
|
||||||
|
* Monitor your servers and websites.
|
||||||
|
*
|
||||||
|
* This file is part of PHP Server Monitor.
|
||||||
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @package phpservermon
|
||||||
|
* @author Pepijn Over <pep@peplab.net>
|
||||||
|
* @copyright Copyright (c) 2008-2015 Pepijn Over <pep@peplab.net>
|
||||||
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
|
* @version Release: @package_version@
|
||||||
|
* @link http://www.phpservermonitor.org/
|
||||||
|
* @since phpservermon 3.2
|
||||||
|
**/
|
||||||
|
|
||||||
|
namespace psm\Module\User\EventListener;
|
||||||
|
|
||||||
|
use psm\Module\User\UserEvents;
|
||||||
|
use psm\Module\User\Event\UserEvent;
|
||||||
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
|
|
||||||
|
class UserSubscriber implements EventSubscriberInterface {
|
||||||
|
|
||||||
|
public static function getSubscribedEvents() {
|
||||||
|
return array(
|
||||||
|
UserEvents::USER_ADD => array('onUserAdd', 0),
|
||||||
|
UserEvents::USER_EDIT => array('onUserEdit', 0),
|
||||||
|
UserEvents::USER_DELETE => array('onUserDelete', 0),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onUserAdd(UserEvent $event) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onUserEdit(UserEvent $event) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onUserDelete(UserEvent $event) {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP Server Monitor
|
||||||
|
* Monitor your servers and websites.
|
||||||
|
*
|
||||||
|
* This file is part of PHP Server Monitor.
|
||||||
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @package phpservermon
|
||||||
|
* @author Pepijn Over <pep@peplab.net>
|
||||||
|
* @copyright Copyright (c) 2008-2015 Pepijn Over <pep@peplab.net>
|
||||||
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
|
* @version Release: @package_version@
|
||||||
|
* @link http://www.phpservermonitor.org/
|
||||||
|
* @since phpservermon 3.2
|
||||||
|
**/
|
||||||
|
|
||||||
|
namespace psm\Module\User;
|
||||||
|
|
||||||
|
final class UserEvents {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const USER_ADD = 'user.add';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const USER_EDIT = 'user.edit';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const USER_DELETE = 'user.delete';
|
||||||
|
|
||||||
|
}
|
|
@ -27,9 +27,17 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module\User;
|
namespace psm\Module\User;
|
||||||
|
|
||||||
use psm\Module\ModuleInterface;
|
use psm\Module\ModuleInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class UserModule implements ModuleInterface {
|
class UserModule implements ModuleInterface {
|
||||||
|
|
||||||
|
public function load(ContainerBuilder $container) {
|
||||||
|
$event = $container->get('event');
|
||||||
|
$event->addSubscriber(new EventListener\UserSubscriber);
|
||||||
|
}
|
||||||
|
|
||||||
public function getControllers() {
|
public function getControllers() {
|
||||||
return array(
|
return array(
|
||||||
'user' => __NAMESPACE__ . '\Controller\UserController',
|
'user' => __NAMESPACE__ . '\Controller\UserController',
|
||||||
|
@ -38,4 +46,4 @@ class UserModule implements ModuleInterface {
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -51,6 +51,13 @@ class Router {
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->container = $this->buildServiceContainer();
|
$this->container = $this->buildServiceContainer();
|
||||||
|
|
||||||
|
$mods = $this->container->getParameter('modules');
|
||||||
|
|
||||||
|
foreach($mods as $mod) {
|
||||||
|
$mod_loader = $this->container->get($mod);
|
||||||
|
$mod_loader->load($this->container);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -110,7 +117,7 @@ class Router {
|
||||||
$controller_id = $module_id;
|
$controller_id = $module_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$module = $this->getModule($module_id);
|
$module = $this->container->get('module.' . $module_id);
|
||||||
$controllers = $module->getControllers();
|
$controllers = $module->getControllers();
|
||||||
if(!isset($controllers[$controller_id]) || !class_exists($controllers[$controller_id])) {
|
if(!isset($controllers[$controller_id]) || !class_exists($controllers[$controller_id])) {
|
||||||
throw new \InvalidArgumentException('Controller "' . $controller_id . '" is not registered or does not exist.');
|
throw new \InvalidArgumentException('Controller "' . $controller_id . '" is not registered or does not exist.');
|
||||||
|
@ -138,16 +145,6 @@ class Router {
|
||||||
return $this->container->get($id);
|
return $this->container->get($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a module
|
|
||||||
* @param string $module_id
|
|
||||||
* @return \psm\Module\ModuleInterface
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
protected function getModule($module_id) {
|
|
||||||
return $this->container->get('module.' . $module_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build a new service container
|
* Build a new service container
|
||||||
* @return \Symfony\Component\DependencyInjection\ContainerBuilder
|
* @return \Symfony\Component\DependencyInjection\ContainerBuilder
|
||||||
|
|
Loading…
Reference in New Issue