/
home
/
obinna
/
html
/
restaurants
/
vendor
/
doctrine
/
orm
/
lib
/
Doctrine
/
ORM
/
Mapping
/
Upload File
HOME
<?php /* * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * This software consists of voluntary contributions made by many individuals * and is licensed under the MIT license. For more information, see * <http://www.doctrine-project.org>. */ namespace Doctrine\ORM\Mapping; /** * The default DefaultEntityListener * * @since 2.4 * @author Fabio B. Silva <fabio.bat.silva@gmail.com> */ class DefaultEntityListenerResolver implements EntityListenerResolver { /** * @var array Map to store entity listener instances. * * @psalm-var array<class-string, object> */ private $instances = []; /** * {@inheritdoc} */ public function clear($className = null) { if ($className === null) { $this->instances = []; return; } if (isset($this->instances[$className = trim($className, '\\')])) { unset($this->instances[$className]); } } /** * {@inheritdoc} */ public function register($object) { if ( ! is_object($object)) { throw new \InvalidArgumentException(sprintf('An object was expected, but got "%s".', gettype($object))); } $this->instances[get_class($object)] = $object; } /** * {@inheritdoc} */ public function resolve($className) { if (isset($this->instances[$className = trim($className, '\\')])) { return $this->instances[$className]; } return $this->instances[$className] = new $className(); } }