Skip to content

Commit

Permalink
Небольшой рефакторинг.
Browse files Browse the repository at this point in the history
  • Loading branch information
ProklUng committed Jun 28, 2021
1 parent f047c67 commit bd966ab
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 19 deletions.
2 changes: 1 addition & 1 deletion readme.MD
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ $serviceProvider = new ServiceProvider('local/configs/services.yaml');
1) Опция `compile.container` в подтягиваемом конфиге - компилировать ли контейнер в файл. Если не задана, то "нет, не компилировать".
Имеет смысл для окружения, не равного "dev". Т.е. опция управляет дампированием контейнера на проде.

Место, где хранятся дампы контейнеров: `/bitrix/cache/s1/containers`
Место, где хранятся дампы контейнеров: `/bitrix/cache/<SITE_ID>/containers`

## Поддержка бандлов

Expand Down
42 changes: 24 additions & 18 deletions src/ServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpKernel\Config\FileLocator;
use Symfony\Component\HttpKernel\KernelEvents;
use Throwable;

/**
* Class ServiceProvider
Expand Down Expand Up @@ -77,7 +79,7 @@ class ServiceProvider
/**
* @const string COMPILED_CONTAINER_DIR Путь к скомпилированному контейнеру.
*/
private const COMPILED_CONTAINER_DIR = '/bitrix/cache/s1';
private const COMPILED_CONTAINER_DIR = '/bitrix/cache/';

/**
* @const string CONFIG_EXTS Расширения конфигурационных файлов.
Expand Down Expand Up @@ -279,8 +281,7 @@ private function initContainer(string $fileName)
$this->createCacheDirectory();

/** Путь к скомпилированному контейнеру. */
$compiledContainerFile = $this->getPathCacheDirectory($this->filename)
. self::COMPILED_CONTAINER_FILE;
$compiledContainerFile = $this->getPathCacheDirectory($this->filename) . self::COMPILED_CONTAINER_FILE;

$containerConfigCache = new ConfigCache($compiledContainerFile, true);
// Класс скомпилированного контейнера.
Expand Down Expand Up @@ -316,8 +317,7 @@ private function initContainer(string $fileName)

return static::$containerBuilder;
}

} catch (\Throwable $e) {
} catch (Throwable $e) {
} finally {
error_reporting($errorLevel);
}
Expand Down Expand Up @@ -547,9 +547,10 @@ private function initialize(string $fileName): ?ContainerBuilder
// Дополнить переменные приложения сведениями о зарегистрированных бандлах.
static::$containerBuilder->get('kernel')->registerStandaloneBundles();

static::$containerBuilder->getParameterBag()->add(
static::$containerBuilder->get('kernel')->getKernelParameters()
);
/** @var array $kernelParams */
$kernelParams = static::$containerBuilder->get('kernel')->getKernelParameters();

static::$containerBuilder->getParameterBag()->add($kernelParams);

$this->bundlesLoader->registerExtensions(static::$containerBuilder);

Expand Down Expand Up @@ -588,9 +589,10 @@ private function setDefaultParamsContainer() : void
;
}

static::$containerBuilder->getParameterBag()->add(
static::$containerBuilder->get('kernel')->getKernelParameters()
);
/** @var array $kernelParams */
$kernelParams = static::$containerBuilder->get('kernel')->getKernelParameters();

static::$containerBuilder->getParameterBag()->add($kernelParams);
}

/**
Expand Down Expand Up @@ -619,10 +621,16 @@ private function createCacheDirectory() : void
* @return string
*
* @since 03.03.2021
* @since 28.06.2021 Путь к кэшу в зависимости от SITE_ID.
*/
private function getPathCacheDirectory(string $filename) : string
{
return $this->projectRoot . self::COMPILED_CONTAINER_DIR .'/containers/'. md5($filename);
$siteId = 's1';
if (defined(SITE_ID)) {
$siteId = SITE_ID;
}

return $this->projectRoot . self::COMPILED_CONTAINER_DIR . $siteId . '/containers/'. md5($filename);
}

/**
Expand Down Expand Up @@ -725,7 +733,7 @@ private function runPostLoadingPasses(): void
* @param ContainerBuilder $containerBuilder Контейнер.
*
* @return boolean
* @throws Exception
* @throws Exception Ошибки контейнера.
*
* @since 20.03.2021
*/
Expand Down Expand Up @@ -786,15 +794,13 @@ private function configureContainer(ContainerBuilder $container, LoaderInterface
* @param ContainerBuilder $container Контейнер.
*
* @return DelegatingLoader The loader
* @throws Exception Ошибки контейнера.
* @throws Exception Ошибки контейнера.
*
* @since 06.11.2020
*/
private function getContainerLoader(ContainerBuilder $container): DelegatingLoader
{
$locator = new \Symfony\Component\HttpKernel\Config\FileLocator(
static::$containerBuilder->get('kernel')
);
$locator = new FileLocator(static::$containerBuilder->get('kernel'));

$resolver = new LoaderResolver([
new XmlFileLoader($container, $locator),
Expand All @@ -821,7 +827,7 @@ private function getContainerLoader(ContainerBuilder $container): DelegatingLoad
public static function __callStatic(string $method, $args = null)
{
if ($method === 'instance') {
if (!empty(static::$containerBuilder)) {
if (static::$containerBuilder !== null) {
return static::$containerBuilder;
}

Expand Down

0 comments on commit bd966ab

Please sign in to comment.