Completed
Push — master ( 844367...ab725b )
by Aimeos
02:57
created

Locale   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 73
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
c 1
b 0
f 0
lcom 1
cbo 6
dl 0
loc 73
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A get() 0 16 2
A getBackend() 0 17 2
1
<?php
2
3
/**
4
 * @license MIT, http://opensource.org/licenses/MIT
5
 * @copyright Aimeos (aimeos.org), 2016
6
 * @package laravel
7
 * @subpackage Base
8
 */
9
10
namespace Aimeos\Shop\Base;
11
12
13
use Illuminate\Support\Facades\Input;
14
use Illuminate\Support\Facades\Route;
15
16
17
/**
18
 * Service providing the context objects
19
 *
20
 * @package laravel
21
 * @subpackage Base
22
 */
23
class Locale
24
{
25
	/**
26
	 * @var \Illuminate\Contracts\Config\Repository
27
	 */
28
	private $config;
29
30
	/**
31
	 * @var \Aimeos\MShop\Locale\Item\Iface
32
	 */
33
	private $locale;
34
35
36
	/**
37
	 * Initializes the object
38
	 *
39
	 * @param \Illuminate\Contracts\Config\Repository $config Configuration object
40
	 */
41
	public function __construct( \Illuminate\Contracts\Config\Repository $config )
42
	{
43
		$this->config = $config;
44
	}
45
46
47
	/**
48
	 * Returns the locale item for the current request
49
	 *
50
	 * @param \Aimeos\MShop\Context\Item\Iface $context Context object
51
	 * @return \Aimeos\MShop\Locale\Item\Iface Locale item object
52
	 */
53
	public function get( \Aimeos\MShop\Context\Item\Iface $context )
54
	{
55
		if( $this->locale === null )
56
		{
57
			$site = Route::input( 'site', Input::get( 'site', 'default' ) );
58
			$currency = Route::input( 'currency', Input::get( 'currency', '' ) );
59
			$lang = Route::input( 'locale', Input::get( 'locale', '' ) );
60
61
			$disableSites = $this->config->get( 'shop.disableSites', true );
62
63
			$localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager( $context );
64
			$this->locale = $localeManager->bootstrap( $site, $lang, $currency, $disableSites );
65
		}
66
67
		return $this->locale;
68
	}
69
70
71
	/**
72
	 * Returns the locale item for the current request
73
	 *
74
	 * @param \Aimeos\MShop\Context\Item\Iface $context Context object
75
	 * @param string $site Unique site code
76
	 * @return \Aimeos\MShop\Locale\Item\Iface Locale item object
77
	 */
78
	public function getBackend( \Aimeos\MShop\Context\Item\Iface $context, $site )
79
	{
80
		$localeManager = \Aimeos\MShop\Factory::createManager( $context, 'locale' );
81
82
		try
83
		{
84
			$localeItem = $localeManager->bootstrap( $site, '', '', false );
85
			$localeItem->setLanguageId( null );
86
			$localeItem->setCurrencyId( null );
87
		}
88
		catch( \Aimeos\MShop\Locale\Exception $e )
89
		{
90
			$localeItem = $localeManager->createItem();
91
		}
92
93
		return $localeItem;
94
	}
95
}
96