PHPackages                             proklung/container-locator-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. proklung/container-locator-bundle

ActiveSymfony-bundle

proklung/container-locator-bundle
=================================

Container locator bundle for custom Symfony

1.0.2(4y ago)23MITPHPPHP &gt;=7.3 || ^8.0

Since May 29Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ProklUng/container.locator.bundle)[ Packagist](https://packagist.org/packages/proklung/container-locator-bundle)[ RSS](/packages/proklung-container-locator-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (5)Versions (4)Used By (0)

Служебный бандл, позволяющий получить экземпляр контейнера за пределами Symfony в кастомных (Wordpress, Bitrix) вариантах использования
=======================================================================================================================================

[](#служебный-бандл-позволяющий-получить-экземпляр-контейнера-за-пределами-symfony-в-кастомных-wordpress-bitrix-вариантах-использования)

***INTERNAL***

Установка
---------

[](#установка)

composer.json:

```
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/proklung/container.locator.bundle"
        }
    ]
```

```
composer require proklung/container-locator-bundle
```

Зачем?
------

[](#зачем)

Эксперимент. Сейчас хэлпер `container` в [моих](https://github.com/ProklUng/bitrix.core.symfony) пакетах обращается к основному классу `ServiceProvider`, что нормально. Способ, реализуемый в этом бандле - альтернативный, представялется, что выглядит малость "чище".

Основан на знании, что в каждый инициированый бандл по методу `boot` загоняется экземпляр контейнера.

Все, что делается в этом бандле - декорируется метод `setContainer` бандла, сохраняя контейнер в статическое свойство. Плюс отвязывается от конкретной реализации контейнера.

Как достать контейнер
---------------------

[](#как-достать-контейнер)

Класс `ContainerLocator`:

- статический метод `instanceFromBundles()` - из файла конфигураций бандлов. Стоимость - загрузка файла и перебор классов, пока не будет найден бандл, имеющий метод `getContainer`.
- статический метод `instance()` - из класса этого бандла.

В результате хэлпер `container` может выглядеть как-то так:

```
    function container($classContainer = ContainerLocator::class)
    {
        $container = $classContainer::instance();
        if ($container === null) {
            throw new RuntimeException(
              'Service container '. is_object($classContainer) ? get_class($classContainer) : $classContainer.
                      ' not initialized.'
            );
        }

        return $container;
    }
```

Синтаксический сахарок
----------------------

[](#синтаксический-сахарок)

Для использования в неконтейнеродружелюбных местах (внутри компонентов Битрикс и т.п)

Класс `ContainerHelper`:

- `public static function kernel()` - Kernel
- `public static function kernelParameters()` - Параметры Kernel
- `public static function parameter(string $param)` - Конкретный параметр Kernel.
- `public static function twig()` - Twig.
- `public static function session()` - Session.
- `public static function logger()` - Logger (сервис `public.logger`).

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~35 days

Total

3

Last Release

1734d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.3

1.0.2PHP &gt;=7.3 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/9210c86ee6734e537eaf22c0f2fe7a965451e340e39e1aae2b74013f24c2660d?d=identicon)[gedovan](/maintainers/gedovan)

---

Top Contributors

[![ProklUng](https://avatars.githubusercontent.com/u/19857467?v=4)](https://github.com/ProklUng "ProklUng (4 commits)")

---

Tags

bitrix-symfonyphp7symfony-bundlewordpress-symfony

### Embed Badge

![Health badge](/badges/proklung-container-locator-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/proklung-container-locator-bundle/health.svg)](https://phpackages.com/packages/proklung-container-locator-bundle)
```

###  Alternatives

[symfony/security-bundle

Provides a tight integration of the Security component into the Symfony full-stack framework

2.5k172.9M1.8k](/packages/symfony-security-bundle)[sonata-project/entity-audit-bundle

Audit for Doctrine Entities

644989.8k1](/packages/sonata-project-entity-audit-bundle)[scheb/2fa

Two-factor authentication for Symfony applications (please use scheb/2fa-bundle to install)

578630.7k1](/packages/scheb-2fa)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M385](/packages/shopware-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
