each module is available in the container with name module.ModuleName
This commit is contained in:
@@ -33,8 +33,10 @@ namespace Thelia\Core;
|
||||
*/
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
use Symfony\Component\Validator\Tests\Fixtures\Reference;
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
|
||||
|
||||
@@ -107,6 +109,16 @@ class Thelia extends Kernel
|
||||
foreach ($modules as $module) {
|
||||
|
||||
try {
|
||||
|
||||
$defintion = new Definition();
|
||||
$defintion->setClass($module->getCode() ."\\". ucfirst($module->getCode()));
|
||||
$defintion->addMethodCall("setContainer", array('service_container'));
|
||||
|
||||
$container->setDefinition(
|
||||
"module.".$module->getCode(),
|
||||
$defintion
|
||||
);
|
||||
|
||||
$loader = new XmlFileLoader($container, new FileLocator(THELIA_MODULE_DIR . "/" . ucfirst($module->getCode()) . "/Config"));
|
||||
$loader->load("config.xml");
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
|
||||
namespace Thelia\Module;
|
||||
|
||||
abstract class BaseModule
|
||||
use Symfony\Component\DependencyInjection\ContainerAware;
|
||||
|
||||
abstract class BaseModule extends ContainerAware
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
|
||||
37
core/lib/Thelia/Module/BaseModuleInterface.php
Normal file
37
core/lib/Thelia/Module/BaseModuleInterface.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*************************************************************************************/
|
||||
/* */
|
||||
/* Thelia */
|
||||
/* */
|
||||
/* Copyright (c) OpenStudio */
|
||||
/* email : info@thelia.net */
|
||||
/* web : http://www.thelia.net */
|
||||
/* */
|
||||
/* This program 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 */
|
||||
/* */
|
||||
/* This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
/* */
|
||||
/*************************************************************************************/
|
||||
|
||||
namespace Thelia\Module;
|
||||
|
||||
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
interface BaseModuleInterface {
|
||||
|
||||
public function setRequest(Request $request);
|
||||
public function getRequest();
|
||||
|
||||
public function setDispatcher(EventDispatcherInterface $dispatcher);
|
||||
public function getDispatcher();
|
||||
}
|
||||
36
core/lib/Thelia/Module/DeliveryModuleInterface.php
Normal file
36
core/lib/Thelia/Module/DeliveryModuleInterface.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/*************************************************************************************/
|
||||
/* */
|
||||
/* Thelia */
|
||||
/* */
|
||||
/* Copyright (c) OpenStudio */
|
||||
/* email : info@thelia.net */
|
||||
/* web : http://www.thelia.net */
|
||||
/* */
|
||||
/* This program 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 */
|
||||
/* */
|
||||
/* This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
/* */
|
||||
/*************************************************************************************/
|
||||
|
||||
namespace Thelia\Module;
|
||||
|
||||
|
||||
interface DeliveryModuleInterface extends BaseModuleInterface {
|
||||
|
||||
/**
|
||||
*
|
||||
* calculate and return delivery price
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function calculate();
|
||||
}
|
||||
@@ -17,8 +17,6 @@ INSERT INTO `config` (`name`, `value`, `secured`, `hidden`, `created_at`, `updat
|
||||
('currency_rate_update_url', 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml', 0, 0, NOW(), NOW()),
|
||||
('page_not_found_view', '404.html', 0, 0, NOW(), NOW());
|
||||
|
||||
INSERT INTO `module` (`code`, `type`, `activate`, `position`, `created_at`, `updated_at`) VALUES ('test', '1', '1', '1', NOW(), NOW());
|
||||
|
||||
INSERT INTO `customer_title`(`id`, `by_default`, `position`, `created_at`, `updated_at`) VALUES
|
||||
(1, 1, 1, NOW(), NOW()),
|
||||
(2, 0, 2, NOW(), NOW()),
|
||||
|
||||
Reference in New Issue
Block a user