Download the PHP package proklung/wp-symfony-router-bundle without Composer
On this page you can find all versions of the php package proklung/wp-symfony-router-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download proklung/wp-symfony-router-bundle
More information about proklung/wp-symfony-router-bundle
Files in proklung/wp-symfony-router-bundle
Package wp-symfony-router-bundle
Short Description Symfony Router for custom implementation Wordpress-Symfony
License MIT
Homepage https://github.com/ProklUng/wp.symfony.router.bundle
Informations about the package wp-symfony-router-bundle
Бандл для подключения Symfony Router к кастомным вариантам Wordpress-Symfony
Зачем?
INTERNAL. Нужен для максимального разнесения функционала по пакетам. Плюс борьба с копипастой инструментов на проектах.
Установка
1) composer require proklung/wp.symfony.router.bundle
2) Подключение бандла в standalone_bundles.php
Параметры
Файл symfony_router.yaml
в конфигурации бандлов:
enabled
- Использовать бандл. По умолчаниюtrue
.controller_annotations_path
- массив с путями к контроллерам, использующим аннотации.router_cache_path
- путь к кэшу аннотаций (вида%kernel.cache.dir%/routes
). По умолчаниюnull
. Если задан, то роуты будут кэшироваться.router_config_file
- путь к файлу с конфигурацией роутов. По умолчаниюapp/routes.yaml
. Файл может быть в любом поддерживаемом Symfony формате - Yaml, PHP, XML и т.д.router_check_exists_controller
- проверять на существование классы-контроллеры. По умолчаниюfalse
.resource
- путь к конфигурационному файлу роутов. По умолчанию:%kernel.project_dir%/app/routes.yaml
.native_resource
- путь к конфигурации "нативных" обработчиков роутов. По умолчанию:%kernel.project_dir%/app/wp_routes.yaml
.
"Нативные" Wordpress обработчики AJAX (через wp-admin.php)
Yaml файл типа (обычный файл с описаниями роутов):
Для реализации контроллера на нативный обработчик Ajax предлагается использовать класс Prokl\WpSymfonyRouterBundle\Services\NativeAjax\AbstractWPAjaxController
.
Он представляет собой наследника от AbstractController
с добавлением конструктора, принимающего одну зависимость -
объект класса Request
. Приходится так действовать, потому что в ajax обработчик Wordpress никак нелльзя передать
параметры снаружи (за исключением супер-глобалов типа $_POST
и $_GET
).
Дополнительно в Request контроллера пробрасываются всякие параметры из свойств роута. Например methods
.
Это делает возможным, например, отсекать неправильные типа запроса в action
обработчика.
Или писать каку-нибудь логику для операций с defaults
, requirements
или options
из параметров роута.
Использование роутера без контейнера и вне фреймворка
functions.php
:
Все. Подтянутся роуты из /local/configs/standalone_routes.yaml
. Автоматически подцепятся события.
Допускается наличие нескольких таких "агностических" роутеров в один момент.
Прочее
1) Экземпляр Symfony\Component\Routing\Router
можно получить снаружи так:
2) Как загрузить роуты бандлы:
В файле Extension
бандла:
Или воспользоваться трэйтом Prokl\WpSymfonyRouterBundle\Services\Utils\LoaderBundleRoutesTrait
,
куда вынесен этот метод.
All versions of wp-symfony-router-bundle with dependencies
symfony/dependency-injection Version ^4.4 || ^5.0
symfony/http-kernel Version ^4.4 || ^5.0
symfony/config Version ^4.4 || ^5.0
symfony/framework-bundle Version ^4.4 || ^5.0
symfony/filesystem Version ^4.4 || ^5.0
symfony/routing Version ^4.4 || ^5.0
symfony/http-foundation Version ^4.4 || ^5.0
symfony/event-dispatcher Version ^4.4 || ^5.0
symfony/property-access Version ^4.4 || ^5.0
symfony/expression-language Version ^4.4 || ^5.0
symfony/serializer Version ^4.4 || ^5.0