Fuente: https://github.com/chamilo/chamilo-lms/releases/download/v1.11.40/chamilo-1.11.40.zip sha256: 1cf4bf2cc7bae1ef1a1eff643235db1d552f78ddf4b6dd1e2d2dac9868679439 Snapshot independiente (rama huerfana); diffable vs 1.11.38. vendor incluido.
70 lines
1.4 KiB
PHP
70 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/*
|
|
* This file is part of the Sonata Project package.
|
|
*
|
|
* (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Sonata\BlockBundle\Block;
|
|
|
|
use Sonata\BlockBundle\Exception\BlockNotFoundException;
|
|
|
|
/**
|
|
* @final since sonata-project/block-bundle 3.0
|
|
*/
|
|
class BlockLoaderChain implements BlockLoaderInterface
|
|
{
|
|
/**
|
|
* @var BlockLoaderInterface[]
|
|
*/
|
|
protected $loaders;
|
|
|
|
/**
|
|
* @param BlockLoaderInterface[] $loaders
|
|
*/
|
|
public function __construct(array $loaders)
|
|
{
|
|
$this->loaders = $loaders;
|
|
}
|
|
|
|
/**
|
|
* Check if a given block type exists.
|
|
*
|
|
* @param string $type Block type to check for
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function exists($type)
|
|
{
|
|
foreach ($this->loaders as $loader) {
|
|
if ($loader->exists($type)) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function load($block)
|
|
{
|
|
foreach ($this->loaders as $loader) {
|
|
if ($loader->support($block)) {
|
|
return $loader->load($block);
|
|
}
|
|
}
|
|
|
|
throw new BlockNotFoundException();
|
|
}
|
|
|
|
public function support($name)
|
|
{
|
|
return true;
|
|
}
|
|
}
|