Sfoglia il codice sorgente

[Technique] ParameterBag : service dédié à la récupération des paramètres système #1192

feature/souke
Guillaume Bourgeois 1 anno fa
parent
commit
8bfc7ca741
17 ha cambiato i file con 71 aggiunte e 32 eliminazioni
  1. +1
    -1
      backend/controllers/CronController.php
  2. +1
    -1
      backend/views/development/index.php
  3. +1
    -1
      backend/views/stats-admin/matomo.php
  4. +2
    -2
      backend/views/support/index.php
  5. +3
    -3
      common/components/MailerService.php
  6. +35
    -0
      common/components/ParameterBag.php
  7. +3
    -0
      common/config/main.php
  8. +7
    -7
      common/helpers/Alwaysdata.php
  9. +5
    -4
      common/helpers/GlobalParam.php
  10. +2
    -2
      common/logic/Producer/Producer/Service/ProducerUtils.php
  11. +1
    -1
      common/logic/User/User/Service/UserSolver.php
  12. +2
    -2
      common/mail/signup-html.php
  13. +2
    -2
      common/mail/signup-text.php
  14. +2
    -2
      common/views/matomo.php
  15. +2
    -2
      frontend/controllers/SiteController.php
  16. +1
    -1
      frontend/views/site/index.php
  17. +1
    -1
      frontend/views/site/service.php

+ 1
- 1
backend/controllers/CronController.php Vedi File

@@ -193,7 +193,7 @@ class CronController extends BackendController
'orders' => $arrayOrders
]
)
->setFrom([Yii::$app->params['adminEmail'] => 'distrib']);
->setFrom([Yii::$app->parameterBag->get('adminEmail') => 'distrib']);

if (is_array($arrayOrders) && count($arrayOrders)) {
$subject = '[Opendistrib] Commandes du ' . date('d/m', strtotime($date));

+ 1
- 1
backend/views/development/index.php Vedi File

@@ -80,7 +80,7 @@ $this->addBreadcrumb($this->getTitle());
<ul class="contacts">
<li>
<span class="glyphicon glyphicon-earphone"></span>
<p><?= Html::a('Prendre rendez-vous', Yii::$app->params['appointmentUrl'], ['class' => '', 'target' => '_blank']); ?></p>
<p><?= Html::a('Prendre rendez-vous', Yii::$app->parameterBag->get('appointmentUrl'), ['class' => '', 'target' => '_blank']); ?></p>
</li>
<li>
<span class="glyphicon glyphicon-envelope"></span>

+ 1
- 1
backend/views/stats-admin/matomo.php Vedi File

@@ -5,4 +5,4 @@ $this->addBreadcrumb('Statistiques Matomo') ;

?>

<iframe id="matomoframe" src="<?= Yii::$app->params['matomoWidgetDashbordUrl']; ?>" frameborder="0" marginheight="0" marginwidth="0" width="100%" height="800px"></iframe>
<iframe id="matomoframe" src="<?= Yii::$app->parameterBag->get('matomoWidgetDashbordUrl'); ?>" frameborder="0" marginheight="0" marginwidth="0" width="100%" height="800px"></iframe>

+ 2
- 2
backend/views/support/index.php Vedi File

@@ -58,7 +58,7 @@ $this->addBreadcrumb($this->getTitle());
<span class="info-box-text">Me contacter directement</span>
<span class="info-box-text">
<br/>
<strong><?= Yii::$app->params['adminPhoneNumber'] ?></strong>
<strong><?= Yii::$app->parameterBag->get('adminPhoneNumber'); ?></strong>
</span>
</div>
</div>
@@ -68,7 +68,7 @@ $this->addBreadcrumb($this->getTitle());
<span class="info-box-icon bg-yellow"><i class="fa fa-calendar"></i></span>
<div class="info-box-content">
<span class="info-box-text"><br/>
<?= Html::a('Prendre rendez-vous', Yii::$app->params['appointmentUrl'], ['class' => 'btn btn-sm btn-default', 'target' => '_blank']); ?>
<?= Html::a('Prendre rendez-vous', Yii::$app->parameterBag->get('appointmentUrl'), ['class' => 'btn btn-sm btn-default', 'target' => '_blank']); ?>
</span>
</div>
</div>

+ 3
- 3
common/components/MailerService.php Vedi File

@@ -23,7 +23,7 @@ class MailerService

public function sendAdmin(string $subject, string $view, array $params = [])
{
$message = $this->composeBase(\Yii::$app->params['adminEmail'], $view, $params);
$message = $this->composeBase(\Yii::$app->parameterBag->get('adminEmail'), $view, $params);
$this->initMessageFromSite($message, $subject);
$message->send();
}
@@ -40,8 +40,8 @@ class MailerService

private function initMessageFromSite(MessageInterface $message, string $subject)
{
$message->setFrom([\Yii::$app->params['adminEmail'] => \Yii::$app->params['siteName']]);
$message->setSubject($this->buildSubject(\Yii::$app->params['siteName'], $subject));
$message->setFrom([\Yii::$app->parameterBag->get('adminEmail') => \Yii::$app->parameterBag->get('siteName')]);
$message->setSubject($this->buildSubject(\Yii::$app->parameterBag->get('siteName'), $subject));
return $message;
}


+ 35
- 0
common/components/ParameterBag.php Vedi File

@@ -0,0 +1,35 @@
<?php

namespace common\components;

use yii\base\ErrorException;

class ParameterBag
{
protected array $parameters = [];

public function __construct()
{
$this->parameters = \Yii::$app->params;
}

public function get(string $name)
{
if(isset($this->parameters[$name])) {
return $this->parameters[$name];
}
else {
throw new ErrorException('Paramètre '.$name.' non défini.');
}
}

public function has(string $name)
{
return \array_key_exists($name, $this->parameters);
}

public function set(string $name, $value)
{
$this->parameters[$name] = $value;
}
}

+ 3
- 0
common/config/main.php Vedi File

@@ -60,6 +60,9 @@ return [
}
},
'components' => [
'parameterBag' => [
'class' => 'common\components\ParameterBag'
],
'assetManager' => [
'linkAssets' => YII_ENV == "dev" ? 'true' : false,
],

+ 7
- 7
common/helpers/Alwaysdata.php Vedi File

@@ -11,7 +11,7 @@ class Alwaysdata
public static function createProducerEmailRedirection(Producer $producer)
{
return self::post('mailbox',[
'domain' => \Yii::$app->params['alwaysdataDomainOpendistribId'],
'domain' => \Yii::$app->parameterBag->get('alwaysdataDomainOpendistribId'),
'name' => $producer->slug,
'password' => Password::generate(13),
'redirect_enabled' => true,
@@ -44,17 +44,17 @@ class Alwaysdata
self::checkConfiguration();

return new Client([
'base_uri' => \Yii::$app->params['alwaysdataApiUrl'].$resource.'/',
'auth' => [\Yii::$app->params['alwaysdataApiKey'].' account='.\Yii::$app->params['alwaysdataAccount'], ''],
'base_uri' => \Yii::$app->parameterBag->get('alwaysdataApiUrl').$resource.'/',
'auth' => [\Yii::$app->parameterBag->get('alwaysdataApiKey').' account='.\Yii::$app->parameterBag->get('alwaysdataAccount'), ''],
]);
}

private static function checkConfiguration()
{
if(!isset(\Yii::$app->params['alwaysdataApiUrl'])
|| !isset(\Yii::$app->params['alwaysdataAccount'])
|| !isset(\Yii::$app->params['alwaysdataApiKey'])
|| !isset(\Yii::$app->params['alwaysdataDomainOpendistribId'])) {
if(!\Yii::$app->parameterBag->has('alwaysdataApiUrl')
|| !\Yii::$app->parameterBag->has('alwaysdataAccount')
|| !\Yii::$app->parameterBag->has('alwaysdataApiKey')
|| !\Yii::$app->parameterBag->has('alwaysdataDomainOpendistribId')) {

throw new ErrorException('Configuration API Alwaysdata absente ou incomplète dans params-local.php');
}

+ 5
- 4
common/helpers/GlobalParam.php Vedi File

@@ -49,7 +49,7 @@ class GlobalParam
return self::getCurrentProducer();
} else {

return \Yii::$app->params[$key];
return \Yii::$app->parameterBag->get($key);
}
}

@@ -60,10 +60,11 @@ class GlobalParam

public static function getCurrentProducer()
{
if (\Yii::$app->params['producer'] == false) {
\Yii::$app->params['producer'] = Producer::searchOne();
if(!\Yii::$app->parameterBag->has('producer') || !\Yii::$app->parameterBag->get('producer')) {
\Yii::$app->parameterBag->set('producer', Producer::searchOne());
}
return \Yii::$app->params['producer'];

return \Yii::$app->parameterBag->get('producer');
}

/**

+ 2
- 2
common/logic/Producer/Producer/Service/ProducerUtils.php Vedi File

@@ -17,8 +17,8 @@ class ProducerUtils extends AbstractService implements UtilsInterface
], [
'producer' => $producer
])
->setTo(\Yii::$app->params['adminEmail'])
->setFrom([\Yii::$app->params['adminEmail'] => 'distrib'])
->setTo(\Yii::$app->parameterBag->get('adminEmail'))
->setFrom([\Yii::$app->parameterBag->get('adminEmail') => 'Opendistrib'])
->setSubject('[Opendistrib] Nouveau producteur')
->send();
}

+ 1
- 1
common/logic/User/User/Service/UserSolver.php Vedi File

@@ -99,7 +99,7 @@ class UserSolver extends AbstractService implements SolverInterface
if (empty($token)) {
return false;
}
$expire = \Yii::$app->params['user.passwordResetTokenExpire'];
$expire = \Yii::$app->parameterBag->get('user.passwordResetTokenExpire');
$parts = explode('_', $token);
$timestamp = (int)end($parts);
return $timestamp + $expire >= time();

+ 2
- 2
common/mail/signup-html.php Vedi File

@@ -50,7 +50,7 @@ use common\logic\User\User\Model\User;

<?php if($user->status == User::STATUS_PRODUCER): ?>
<p>Vous pouvez dès maintenant vous connecter à l'<a href="<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>">administration</a> pour configurer votre compte producteur.</p>
<p>Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <strong><?= Yii::$app->params['adminPhoneNumber'] ?></strong>.</p>
<p>Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <strong><?= Yii::$app->parameterBag->get('adminPhoneNumber') ?></strong>.</p>
<?php else: ?>
<?php if(!is_null($producer)): ?>
<p>Vous pouvez maintenant <a href="<?= Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index', 'slug_producer' => $producer->slug]); ?>">passer commande</a> chez votre producteur <strong><?= Html::encode($producer->name); ?></strong>.</p>
@@ -60,4 +60,4 @@ use common\logic\User\User\Model\User;
<?php endif; ?>

<p>À bientôt,<br />
<?= Yii::$app->params['adminFirstname'] ?></p>
<?= Yii::$app->parameterBag->get('adminFirstname') ?></p>

+ 2
- 2
common/mail/signup-text.php Vedi File

@@ -51,7 +51,7 @@ Voici votre identifiant de connexion :
Vous pouvez dès maintenant vous connecter à l'administration pour configurer votre compte :
<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>

Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <?= Yii::$app->params['adminPhoneNumber'] ?>.
Si vous avez des questions ou si vous avez besoin d'être accompagné lors de cette étape, n'hésitez pas à me contacter en réponse à ce mail ou directement au <?= Yii::$app->parameterBag->get('adminPhoneNumber'); ?>.
<?= Yii::$app->urlManagerBackend->createAbsoluteUrl(['site/index']); ?>
<?php else: ?>
<?php if(!is_null($producer)): ?>
@@ -63,4 +63,4 @@ Vous pouvez maintenant passer commande chez votre producteur.
<?php endif; ?>

À bientôt,
<?= Yii::$app->params['adminFirstname'] ?>
<?= Yii::$app->parameterBag->get('adminFirstname') ?>

+ 2
- 2
common/views/matomo.php Vedi File

@@ -5,9 +5,9 @@
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//<?= Yii::$app->params['matomoUrl']; ?>/";
var u="//<?= Yii::$app->parameterBag->get('matomoUrl'); ?>/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '<?= Yii::$app->params['matomoIdSite']; ?>']);
_paq.push(['setSiteId', '<?= Yii::$app->parameterBag->get('matomoIdSite'); ?>']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();

+ 2
- 2
frontend/controllers/SiteController.php Vedi File

@@ -183,7 +183,7 @@ class SiteController extends FrontendController
$countUsersActive = $userManager->countUsersActiveLastThreeMonths();
$averageOrdersPerDay = $orderManager->countGlobalUserOrdersAverageLastSevenDays();
$averageTurnover = $orderManager->getAverageTurnoverLastThreeMonths();
$resultMatomoApiVisitSummary = json_decode(file_get_contents(Yii::$app->params['matomoApiVisitSummaryUrl']));
$resultMatomoApiVisitSummary = json_decode(file_get_contents(Yii::$app->parameterBag->get('matomoApiVisitSummaryUrl')));
$numberVisitsMonth = $resultMatomoApiVisitSummary->nb_uniq_visitors;

return $this->renderPartial('_about_few_numbers', [
@@ -296,7 +296,7 @@ class SiteController extends FrontendController
$model = new ContactForm();

if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
if ($model->sendEmail(Yii::$app->parameterBag->get('adminEmail'))) {
$this->setFlash('success', 'Votre message a bien été envoyé. Nous vous répondrons dès que possible.');
}
else {

+ 1
- 1
frontend/views/site/index.php Vedi File

@@ -69,7 +69,7 @@ $this->setMeta('description', 'Simplifiez la distribution de vos produits en cir
<span class="glyphicon glyphicon-plus-sign"></span> En savoir plus
</a>
<?php if (Yii::$app->user->isGuest): ?><br /><?php endif; ?>
<a class="btn btn-default" href="<?= \Yii::$app->params['appointmentUrl']; ?>" target="_blank">
<a class="btn btn-default" href="<?= \Yii::$app->parameterBag->get('appointmentUrl'); ?>" target="_blank">
<span class="glyphicon glyphicon-education"></span> Je demande une démo
</a>
<?php if (Yii::$app->user->isGuest): ?>

+ 1
- 1
frontend/views/site/service.php Vedi File

@@ -161,7 +161,7 @@ $this->setIcon('console');
href="<?= $this->getUrlManagerFrontend()->createUrl(['site/producer', 'id' => 32]); ?>">
<span class="glyphicon glyphicon-check"></span> Je teste le logiciel
</a>
<a class="btn btn-default" href="<?= \Yii::$app->params['appointmentUrl']; ?>"
<a class="btn btn-default" href="<?= \Yii::$app->parameterBag->get('appointmentUrl'); ?>"
target="_blank">
<span class="glyphicon glyphicon-education"></span> Je demande une démo
</a>

Loading…
Annulla
Salva