Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
16.67% |
2 / 12 |
CRAP | |
21.74% |
5 / 23 |
| FormBase | |
0.00% |
0 / 1 |
|
16.67% |
2 / 12 |
138.71 | |
21.74% |
5 / 23 |
| create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| validateForm | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| config | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| configFactory | |
0.00% |
0 / 1 |
2.15 | |
66.67% |
2 / 3 |
|||
| setConfigFactory | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| resetConfigFactory | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getRequest | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 3 |
|||
| getRouteMatch | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 3 |
|||
| setRequestStack | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| currentUser | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| container | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| logger | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 3 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Form\FormBase. | |
| */ | |
| namespace Drupal\Core\Form; | |
| use Drupal\Core\Config\ConfigFactoryInterface; | |
| use Drupal\Core\DependencyInjection\ContainerInjectionInterface; | |
| use Drupal\Core\DependencyInjection\DependencySerializationTrait; | |
| use Drupal\Core\Routing\LinkGeneratorTrait; | |
| use Drupal\Core\Routing\RedirectDestinationTrait; | |
| use Drupal\Core\Routing\UrlGeneratorTrait; | |
| use Drupal\Core\StringTranslation\StringTranslationTrait; | |
| use Symfony\Component\DependencyInjection\ContainerInterface; | |
| use Symfony\Component\HttpFoundation\RequestStack; | |
| /** | |
| * Provides a base class for forms. | |
| * | |
| * @ingroup form_api | |
| */ | |
| abstract class FormBase implements FormInterface, ContainerInjectionInterface { | |
| use DependencySerializationTrait; | |
| use LinkGeneratorTrait; | |
| use RedirectDestinationTrait; | |
| use StringTranslationTrait; | |
| use UrlGeneratorTrait; | |
| /** | |
| * The request stack. | |
| * | |
| * @var \Symfony\Component\HttpFoundation\RequestStack | |
| */ | |
| protected $requestStack; | |
| /** | |
| * The config factory. | |
| * | |
| * Subclasses should use the self::config() method, which may be overridden to | |
| * address specific needs when loading config, rather than this property | |
| * directly. See \Drupal\Core\Form\ConfigFormBase::config() for an example of | |
| * this. | |
| * | |
| * @var \Drupal\Core\Config\ConfigFactoryInterface | |
| */ | |
| protected $configFactory; | |
| /** | |
| * The logger factory. | |
| * | |
| * @var \Drupal\Core\Logger\LoggerChannelFactoryInterface | |
| */ | |
| protected $loggerFactory; | |
| /** | |
| * The route match. | |
| * | |
| * @var \Drupal\Core\Routing\RouteMatchInterface | |
| */ | |
| protected $routeMatch; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function create(ContainerInterface $container) { | |
| return new static(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function validateForm(array &$form, FormStateInterface $form_state) { | |
| // Validation is optional. | |
| } | |
| /** | |
| * Retrieves a configuration object. | |
| * | |
| * This is the main entry point to the configuration API. Calling | |
| * @code $this->config('book.admin') @endcode will return a configuration | |
| * object in which the book module can store its administrative settings. | |
| * | |
| * @param string $name | |
| * The name of the configuration object to retrieve. The name corresponds to | |
| * a configuration file. For @code \Drupal::config('book.admin') @endcode, | |
| * the config object returned will contain the contents of book.admin | |
| * configuration file. | |
| * | |
| * @return \Drupal\Core\Config\ImmutableConfig | |
| * A configuration object. | |
| */ | |
| protected function config($name) { | |
| return $this->configFactory()->get($name); | |
| } | |
| /** | |
| * Gets the config factory for this form. | |
| * | |
| * When accessing configuration values, use $this->config(). Only use this | |
| * when the config factory needs to be manipulated directly. | |
| * | |
| * @return \Drupal\Core\Config\ConfigFactoryInterface | |
| */ | |
| protected function configFactory() { | |
| if (!$this->configFactory) { | |
| $this->configFactory = $this->container()->get('config.factory'); | |
| } | |
| return $this->configFactory; | |
| } | |
| /** | |
| * Sets the config factory for this form. | |
| * | |
| * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory | |
| * The config factory. | |
| * | |
| * @return $this | |
| */ | |
| public function setConfigFactory(ConfigFactoryInterface $config_factory) { | |
| $this->configFactory = $config_factory; | |
| return $this; | |
| } | |
| /** | |
| * Resets the configuration factory. | |
| */ | |
| public function resetConfigFactory() { | |
| $this->configFactory = NULL; | |
| } | |
| /** | |
| * Gets the request object. | |
| * | |
| * @return \Symfony\Component\HttpFoundation\Request $request | |
| * The request object. | |
| */ | |
| protected function getRequest() { | |
| if (!$this->requestStack) { | |
| $this->requestStack = \Drupal::service('request_stack'); | |
| } | |
| return $this->requestStack->getCurrentRequest(); | |
| } | |
| /** | |
| * Gets the route match. | |
| * | |
| * @return \Drupal\Core\Routing\RouteMatchInterface | |
| */ | |
| protected function getRouteMatch() { | |
| if (!$this->routeMatch) { | |
| $this->routeMatch = \Drupal::routeMatch(); | |
| } | |
| return $this->routeMatch; | |
| } | |
| /** | |
| * Sets the request stack object to use. | |
| * | |
| * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack | |
| * The request stack object. | |
| * | |
| * @return $this | |
| */ | |
| public function setRequestStack(RequestStack $request_stack) { | |
| $this->requestStack = $request_stack; | |
| return $this; | |
| } | |
| /** | |
| * Gets the current user. | |
| * | |
| * @return \Drupal\Core\Session\AccountInterface | |
| * The current user. | |
| */ | |
| protected function currentUser() { | |
| return \Drupal::currentUser(); | |
| } | |
| /** | |
| * Returns the service container. | |
| * | |
| * This method is marked private to prevent sub-classes from retrieving | |
| * services from the container through it. Instead, | |
| * \Drupal\Core\DependencyInjection\ContainerInjectionInterface should be used | |
| * for injecting services. | |
| * | |
| * @return \Symfony\Component\DependencyInjection\ContainerInterface $container | |
| * The service container. | |
| */ | |
| private function container() { | |
| return \Drupal::getContainer(); | |
| } | |
| /** | |
| * Gets the logger for a specific channel. | |
| * | |
| * @param string $channel | |
| * The name of the channel. | |
| * | |
| * @return \Psr\Log\LoggerInterface | |
| * The logger for this channel. | |
| */ | |
| protected function logger($channel) { | |
| if (!$this->loggerFactory) { | |
| $this->loggerFactory = $this->container()->get('logger.factory'); | |
| } | |
| return $this->loggerFactory->get($channel); | |
| } | |
| } |