1
0
mirror of synced 2025-02-14 14:03:15 +03:00
Neur0toxine 5f69051859
Программа лояльности
* New module structure (refactoring)
* Simple serializer and deserializer with models, new architecture
* Move logic to strategies
* Partial api client facade implementation (full implementation is not necessary for now)
* Loyalty feature installer
* Sms verification order (#167)
* Make updater self-sufficient
* Fix for order submit & fix for incorrect component rendering in the constructor
* Fix for loyalty personal area error handling
* Fix for cart component identity
* Fix for softlock when customer cannot be registered in loyalty

Co-authored-by: Сергей Чазов <45812598+Chazovs@users.noreply.github.com>
Co-authored-by: Sergey Chazov <oitv18@gmail.com>
2021-11-16 10:48:26 +03:00

54 lines
1.3 KiB
PHP
Executable File

<?php
namespace Tests\Intaro\RetailCrm;
use Intaro\RetailCrm\Component\ConfigProvider;
class Helpers
{
/** @var \ReflectionClass */
private static $configReflection;
/**
* Sets property into config provider
*
* @param string $propertyName
* @param mixed $value
*
* @throws \ReflectionException
*/
public static function setConfigProperty(string $propertyName, $value)
{
static::regenerateConfigReflection();
$property = static::$configReflection->getProperty($propertyName);
$property->setAccessible(true);
$property->setValue($value);
}
/**
* Sets property into config provider
*
* @param string $propertyName
*
* @return mixed
* @throws \ReflectionException
*/
public static function getConfigProperty(string $propertyName): mixed
{
static::regenerateConfigReflection();
$property = static::$configReflection->getProperty($propertyName);
$property->setAccessible(true);
return $property->getValue();
}
/**
* Regenerates config reflection
*/
protected static function regenerateConfigReflection(): void
{
if (null === static::$configReflection) {
static::$configReflection = new \ReflectionClass(ConfigProvider::class);
}
}
}