Files
Chamilo/vendor/gedmo/doctrine-extensions/lib/Gedmo/Mapping/Driver/Chain.php
T
Xes 73154ae174
Behat tests 1.11.x 🐞 / PHP 7.4 Test on ubuntu-latest (push) Canceled after 0s
PHP-CS-Fixer / composer_install (7.4) (push) Canceled after 0s
Chamilo 1.11.40 (ZIP oficial v1.11.40)
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.
2026-08-06 17:59:45 +02:00

104 lines
2.2 KiB
PHP

<?php
namespace Gedmo\Mapping\Driver;
use Gedmo\Mapping\Driver;
/**
* The chain mapping driver enables chained
* extension mapping driver support
*
* @author Gediminas Morkevicius <gediminas.morkevicius@gmail.com>
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
class Chain implements Driver
{
/**
* The default driver
*
* @var Driver|null
*/
private $defaultDriver;
/**
* List of drivers nested
* @var Driver[]
*/
private $_drivers = array();
/**
* Add a nested driver.
*
* @param Driver $nestedDriver
* @param string $namespace
*/
public function addDriver(Driver $nestedDriver, $namespace)
{
$this->_drivers[$namespace] = $nestedDriver;
}
/**
* Get the array of nested drivers.
*
* @return Driver[] $drivers
*/
public function getDrivers()
{
return $this->_drivers;
}
/**
* Get the default driver.
*
* @return Driver|null
*/
public function getDefaultDriver()
{
return $this->defaultDriver;
}
/**
* Set the default driver.
*
* @param Driver $driver
*/
public function setDefaultDriver(Driver $driver)
{
$this->defaultDriver = $driver;
}
/**
* {@inheritDoc}
*/
public function readExtendedMetadata($meta, array &$config)
{
foreach ($this->_drivers as $namespace => $driver) {
if (strpos($meta->name, $namespace) === 0) {
$driver->readExtendedMetadata($meta, $config);
return;
}
}
if (null !== $this->defaultDriver) {
$this->defaultDriver->readExtendedMetadata($meta, $config);
return;
}
// commenting it for customized mapping support, debugging of such cases might get harder
//throw new \Gedmo\Exception\UnexpectedValueException('Class ' . $meta->name . ' is not a valid entity or mapped super class.');
}
/**
* Passes in the mapping read by original driver
*
* @param $driver
* @return void
*/
public function setOriginalDriver($driver)
{
//not needed here
}
}