-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModule.php
More file actions
74 lines (62 loc) · 2.67 KB
/
Module.php
File metadata and controls
74 lines (62 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
namespace SpeckCheckout;
use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
use Zend\Mvc\ModuleRouteListener;
use Zend\Session\Container;
class Module implements AutoloaderProviderInterface
{
public function getServiceConfig()
{
return array(
'invokables' => array(
'speckcheckout_step_pluginmanager' => 'SpeckCheckout\Strategy\Step\StepPluginManager',
'speckcheckout_paymentmethod_pluginmanager' => 'SpeckCheckout\PaymentMethod\PaymentMethodPluginManager',
),
'factories' => array(
'speck_checkout_strategy' => function($sm) {
$config = $sm->get('Config');
$steps = array();
$stepPluginManager = $sm->get('speckcheckout_step_pluginmanager');
foreach ($config['speck-checkout']['steps'] as $step) {
$steps[] = $stepPluginManager->get($step);
}
return new $config['speck-checkout']['strategy']($steps);
},
'SpeckCheckout\Service\Checkout' => function($sm) {
$service = new Service\Checkout;
$service->setOptions($sm->get('SpeckCheckout\Options\CheckoutOptions'));
return $service;
},
'SpeckCheckout\Options\CheckoutOptions' => function($sm) {
$config = $sm->get('application')->getConfig();
$options = new Options\CheckoutOptions();
$options->setStrategy($sm->get('speck_checkout_strategy'));
$paymentMethods = array();
$paymentMethodPluginManager = $sm->get('speckcheckout_paymentmethod_pluginmanager');
foreach ($config['speck-checkout']['payment_methods'] as $index => $paymentMethod) {
$paymentMethods[$index] = $paymentMethodPluginManager->get($paymentMethod);
}
$options->setPaymentMethods($paymentMethods);
return $options;
},
),
);
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . str_replace('\\', '/' , __NAMESPACE__),
),
),
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
}