File: /home/petsclubcc/shop/modules/ps_checkout/classes/Environment/Env.php
<?php
/**
* 2007-2020 PrestaShop and Contributors
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2020 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
namespace PrestaShop\Module\PrestashopCheckout\Environment;
use Dotenv\Dotenv;
/**
* Get the current environment used: prod or test // sandbox or live
*/
class Env
{
/**
* Const that define all environment possible to use.
* Top of the list are taken in first if they exist in the project.
* eg: If .env.test is present in the module it will be loaded, if not present
* we try to load the next one etc ...
*
* @var array
*/
const FILE_ENV_LIST = [
'test' => '.env.test',
'prod' => '.env',
];
/**
* Environment name: can be 'prod' or 'test'
*
* @var string
*/
protected $name;
/**
* Environment mode: can be 'live' or 'sandbox'
*
* @var string
*/
protected $mode;
public function __construct()
{
foreach (self::FILE_ENV_LIST as $env => $fileName) {
if (!file_exists(_PS_MODULE_DIR_ . 'ps_checkout/' . $fileName)) {
continue;
}
$dotenv = Dotenv::create(_PS_MODULE_DIR_ . 'ps_checkout/', $fileName);
$dotenv->load();
$this->setName($env);
break;
}
if (true === $this->isLive()) {
$this->setMode('live');
} else {
$this->setMode('sandbox');
}
}
/**
* Check if the module is in SANDBOX or LIVE mode
*
* @return bool true if the module is in LIVE mode
*/
private function isLive()
{
$mode = \Configuration::get(
'PS_CHECKOUT_MODE',
null,
null,
(int) \Context::getContext()->shop->id
);
if ('LIVE' === $mode) {
return true;
}
return false;
}
/**
* getter for name
*/
public function getName()
{
return $this->name;
}
/**
* getter for mode
*/
public function getMode()
{
return $this->mode;
}
/**
* setter for name
*
* @param string $name
*/
private function setName($name)
{
$this->name = $name;
}
/**
* setter for mode
*
* @param string $mode
*/
private function setMode($mode)
{
$this->mode = $mode;
}
}