[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/src/Service/Provider/ -> Router.php (source)

   1  <?php
   2  
   3  /**
   4   * Joomla! Content Management System
   5   *
   6   * @copyright  (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
   7   * @license    GNU General Public License version 2 or later; see LICENSE.txt
   8   */
   9  
  10  namespace Joomla\CMS\Service\Provider;
  11  
  12  use Joomla\CMS\Application\ApiApplication;
  13  use Joomla\CMS\Application\SiteApplication;
  14  use Joomla\CMS\Router\AdministratorRouter;
  15  use Joomla\CMS\Router\ApiRouter;
  16  use Joomla\CMS\Router\SiteRouter;
  17  use Joomla\DI\Container;
  18  use Joomla\DI\ServiceProviderInterface;
  19  
  20  // phpcs:disable PSR1.Files.SideEffects
  21  \defined('JPATH_PLATFORM') or die;
  22  // phpcs:enable PSR1.Files.SideEffects
  23  
  24  /**
  25   * Service provider for the application's API router dependency
  26   *
  27   * @since  4.0.0
  28   */
  29  class Router implements ServiceProviderInterface
  30  {
  31      /**
  32       * Registers the service provider with a DI container.
  33       *
  34       * @param   Container  $container  The DI container.
  35       *
  36       * @return  void
  37       *
  38       * @since   4.0.0
  39       */
  40      public function register(Container $container)
  41      {
  42          $container->alias('SiteRouter', SiteRouter::class)
  43              ->alias('JRouterSite', SiteRouter::class)
  44              ->share(
  45                  SiteRouter::class,
  46                  function (Container $container) {
  47                      return new SiteRouter($container->get(SiteApplication::class));
  48                  },
  49                  true
  50              );
  51  
  52          $container->alias('AdministratorRouter', AdministratorRouter::class)
  53              ->alias('JRouterAdministrator', AdministratorRouter::class)
  54              ->share(
  55                  AdministratorRouter::class,
  56                  function (Container $container) {
  57                      return new AdministratorRouter();
  58                  },
  59                  true
  60              );
  61  
  62          $container->alias('ApiRouter', ApiRouter::class)
  63              ->share(
  64                  ApiRouter::class,
  65                  function (Container $container) {
  66                      return new ApiRouter($container->get(ApiApplication::class));
  67                  },
  68                  true
  69              );
  70      }
  71  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer