Skip to content
Snippets Groups Projects
Select Git revision
  • c0aade671ebcf6afe6c918e1d2192fe5cf4cb32c
  • main default protected
  • studip-rector
  • ci-opt
  • course-members-export-as-word
  • data-vue-app
  • pipeline-improvements
  • webpack-optimizations
  • rector
  • icon-renewal
  • http-client-and-factories
  • jsonapi-atomic-operations
  • vueify-messages
  • tic-2341
  • 135-translatable-study-areas
  • extensible-sorm-action-parameters
  • sorm-configuration-trait
  • jsonapi-mvv-routes
  • docblocks-for-magic-methods
19 results

postcss.config.js

Blame
  • Forked from Stud.IP / Stud.IP
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    DIContainer.php 1.82 KiB
    <?php
    
    namespace Studip;
    
    use DI\ContainerBuilder;
    use Psr\Container\ContainerInterface;
    
    class DIContainer
    {
        /**
         * The current globally available container.
         *
         * @var static
         */
        protected static $instance;
    
        /**
         * Get the globally available instance of the container.
         *
         * @return ContainerInterface
         */
        public static function getInstance()
        {
            if (is_null(static::$instance)) {
                $builder = static::createBuilder();
                static::$instance = $builder->build();
            }
    
            return static::$instance;
        }
    
        /**
         * Set the instance of the container.
         *
         * @param  \Psr\Container\ContainerInterface|null  $container
         * @return \Psr\Container\ContainerInterface|static
         */
        public static function setInstance(ContainerInterface $container = null)
        {
            return static::$instance = $container;
        }
    
        /**
         * Set up the ContainerBuilder.
         */
        protected static function createBuilder(): ContainerBuilder
        {
            $builder = new ContainerBuilder();
            if (\Studip\ENV == 'production') {
                $builder->enableCompilation(
                    self::getCompilationPath(),
                    self::getCompilationClass()
                );
            }
            $builder->ignorePhpDocErrors(true);
            $builder->addDefinitions('lib/bootstrap-definitions.php');
    
            $jsonapiSettings = require 'lib/classes/JsonApi/settings.php';
            $jsonapiSettings($builder);
    
            $jsonapiDependencies = require 'lib/classes/JsonApi/dependencies.php';
            $jsonapiDependencies($builder);
    
            return $builder;
        }
    
        public static function getCompilationPath(): string
        {
            return $GLOBALS['TMP_PATH'];
        }
    
        public static function getCompilationClass(): string
        {
            return 'CompiledContainer';
        }
    }