protected function getConfigurationDirectory()
    {
        $reflector = new \ReflectionClass($this);
        $fileName = $reflector->getFileName();

        if (!is_dir($directory = realpath(dirname($fileName) . $this->configDirectory))) {
            throw new \Exception(sprintf('The configuration directory "%s" does not exists.', $directory));
        }

        return $directory;
    }