private function loadFullBundles()
    {
        $data = [];
        foreach ($this->bundlesBaseDir as $serviceId => $baseDir) {
            $config = $this->loadAndGetBundleConfigByBaseDir($serviceId, $baseDir);
            $bundleConfig = $config->getSection('bundle');
            if (isset($bundleConfig['enable']) && !((boolean) $bundleConfig['enable'])) {
                continue;
            }

            $recipes = $this->getLoaderRecipesByConfig($config);

            $data[] = [$config, $recipes];

            $this->loadServices($config, $serviceId, $this->getCallbackFromRecipes(self::SERVICE_RECIPE_KEY, $recipes));
        }

        foreach ($data as $row) {
            list($config, $recipes) = $row;

            $this->loadEvents($config, $this->getCallbackFromRecipes(self::EVENT_RECIPE_KEY, $recipes));
            $this->loadRoutes($config, $this->getCallbackFromRecipes(self::ROUTE_RECIPE_KEY, $recipes));
            $this->addClassContentDir($config, $this->getCallbackFromRecipes(self::CLASSCONTENT_RECIPE_KEY, $recipes));
            $this->addTemplatesDir($config, $this->getCallbackFromRecipes(self::TEMPLATE_RECIPE_KEY, $recipes));
            $this->addHelpersDir($config, $this->getCallbackFromRecipes(self::HELPER_RECIPE_KEY, $recipes));
            $this->addResourcesDir($config, $this->getCallbackFromRecipes(self::RESOURCE_RECIPE_KEY, $recipes));
            $this->addNamespaces($config, $this->getCallbackFromRecipes(self::NAMESPACE_RECIPE_KEY, $recipes));
            $this->runRecipe($config, $this->getCallbackFromRecipes(self::CUSTOM_RECIPE_KEY, $recipes));
        }
    }