This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/HttpKernel/DependencyInjection/Extension.php

94 lines
2.3 KiB
PHP
Raw Normal View History

<?php
namespace Symfony\Component\HttpKernel\DependencyInjection;
use Symfony\Component\DependencyInjection\Extension\Extension as BaseExtension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Container;
/*
* This file is part of the Symfony framework.
*
* (c) Fabien Potencier <fabien.potencier@symfony-project.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
/**
* Provides useful features shared by many extensions.
*
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
*/
abstract class Extension extends BaseExtension
{
protected $classes = array();
protected $classMap = array();
/**
* Gets the classes to cache.
*
* @return array An array of classes
*/
public function getClassesToCompile()
{
return $this->classes;
}
/**
* Adds classes to the class cache.
*
* @param array $classes An array of classes
*/
protected function addClassesToCompile(array $classes)
{
$this->classes = array_merge($this->classes, $classes);
}
/**
* Gets the autoload class map.
*
* @return array An array of classes
*/
public function getAutoloadClassMap()
{
return $this->classMap;
}
/**
* Adds classes to the autoload class map.
*
* @param array $classes An array of classes
*/
public function addClassesToAutoloadMap(array $classes)
{
$this->classMap = array_merge($this->classMap, $classes);
}
/**
* Returns the base path for the XSD files.
*
* @return string The XSD base path
*/
public function getXsdValidationBasePath()
{
return false;
}
public function getNamespace()
{
return false;
}
public function getAlias()
{
$className = get_class($this);
if (substr($className, -9) != 'Extension') {
throw new \BadMethodCallException('This extension does not follow the normal naming, so you must overwrite the getAlias method');
}
$classBaseName = substr(strrchr($className, '\\'), 1, -9);
return Container::underscore($classBaseName);
}
}