public function generateContainers()
    {
        $containers = array();
        $containers['_global'] = new Container();

        // global extensions
        $globalExtensions = $this->getExtensions();

        // configClasses
        $configClasses = new \ArrayObject();
        foreach ($this->getConfigClasses() as $class => $configClass) {
            $configClasses[$class] = new \ArrayObject($configClass);
        }

        // classes extensions
        $classesExtensions = new \ArrayObject();
        $this->generateContainersClassesExtensions($globalExtensions, $classesExtensions, $configClasses);

        // config class process
        foreach ($classesExtensions as $class => $classExtensions) {
            foreach ($classExtensions as $classExtension) {
                $classExtension->configClassProcess($class, $configClasses);
            }
        }

        // pre global process
        foreach ($globalExtensions as $globalExtension) {
            $globalExtension->preGlobalProcess($configClasses, $containers['_global']);
        }

        // class process
        foreach ($classesExtensions as $class => $classExtensions) {
            $containers[$class] = $container = new Container();
            foreach ($classExtensions as $classExtension) {
                $classExtension->classProcess($class, $configClasses, $container);
            }
        }

        // post global process
        foreach ($globalExtensions as $globalExtension) {
            $globalExtension->postGlobalProcess($configClasses, $containers['_global']);
        }

        return $containers;
    }
public function generateContainers()
    {
        $containers = array();
        $containers['_global'] = new Container();

        // global extensions
        $globalExtensions = $this->getExtensions();

        // configClasses
        $configClasses = new \ArrayObject();
        foreach ($this->getConfigClasses() as $class => $configClass) {
            $configClasses[$class] = new \ArrayObject($configClass);
        }

        // classes extensions
        $classesExtensions = new \ArrayObject();
        $this->generateContainersClassesExtensions($globalExtensions, $classesExtensions, $configClasses);

        // config class process
        foreach ($classesExtensions as $class => $classExtensions) {
            foreach ($classExtensions as $classExtension) {
                $classExtension->configClassProcess($class, $configClasses);
            }
        }

        // pre global process
        foreach ($globalExtensions as $globalExtension) {
            $globalExtension->preGlobalProcess($configClasses, $containers['_global']);
        }

        // class process
        foreach ($classesExtensions as $class => $classExtensions) {
            $containers[$class] = $container = new Container();
            foreach ($classExtensions as $classExtension) {
                $classExtension->classProcess($class, $configClasses, $container);
            }
        }

        // post global process
        foreach ($globalExtensions as $globalExtension) {
            $globalExtension->postGlobalProcess($configClasses, $containers['_global']);
        }

        return $containers;
    }
public function generateContainers ( ) { $ containers = array ( ) ; $ containers [ '_global' ] = new Container ( ) ; // global extensions $ globalExtensions = $ this -> getExtensions ( ) ; // configClasses $ configClasses = new \ ArrayObject ( ) ; foreach ( $ this -> getConfigClasses ( ) as $ class => $ configClass ) { $ configClasses [ $ class ] = new \ ArrayObject ( $ configClass ) ; } // classes extensions $ classesExtensions = new \ ArrayObject ( ) ; $ this -> generateContainersClassesExtensions ( $ globalExtensions , $ classesExtensions , $ configClasses ) ; // config class process foreach ( $ classesExtensions as $ class => $ classExtensions ) { foreach ( $ classExtensions as $ classExtension ) { $ classExtension -> configClassProcess ( $ class , $ configClasses ) ; } } // pre global process foreach ( $ globalExtensions as $ globalExtension ) { $ globalExtension -> preGlobalProcess ( $ configClasses , $ containers [ '_global' ] ) ; } // class process foreach ( $ classesExtensions as $ class => $ classExtensions ) { $ containers [ $ class ] = $ container = new Container ( ) ; foreach ( $ classExtensions as $ classExtension ) { $ classExtension -> classProcess ( $ class , $ configClasses , $ container ) ; } } // post global process foreach ( $ globalExtensions as $ globalExtension ) { $ globalExtension -> postGlobalProcess ( $ configClasses , $ containers [ '_global' ] ) ; } return $ containers ; }
Generate the containers.

@return array The containers.

@api
Generate the containers .