ヤミRoot VoidGate
User / IP
:
216.73.216.143
Host / Server
:
146.88.233.70 / dev.loger.cm
System
:
Linux hybrid1120.fr.ns.planethoster.net 3.10.0-957.21.2.el7.x86_64 #1 SMP Wed Jun 5 14:26:44 UTC 2019 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
logercm
/
dev.loger.cm
/
vendor
/
gedmo
/
doctrine-extensions
/
src
/
Loggable
/
Mapping
/
Driver
/
Viewing: Xml.php
<?php /* * This file is part of the Doctrine Behavioral Extensions package. * (c) Gediminas Morkevicius <gediminas.morkevicius@gmail.com> http://www.gediminasm.org * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Gedmo\Loggable\Mapping\Driver; use Doctrine\Persistence\Mapping\ClassMetadata; use Gedmo\Exception\InvalidMappingException; use Gedmo\Mapping\Driver\Xml as BaseXml; /** * This is a xml mapping driver for Loggable * behavioral extension. Used for extraction of extended * metadata from xml specifically for Loggable * extension. * * @author Boussekeyt Jules <jules.boussekeyt@gmail.com> * @author Gediminas Morkevicius <gediminas.morkevicius@gmail.com> * @author Miha Vrhovnik <miha.vrhovnik@gmail.com> * * @internal */ class Xml extends BaseXml { public function readExtendedMetadata($meta, array &$config) { /** * @var \SimpleXmlElement */ $xml = $this->_getMapping($meta->getName()); $xmlDoctrine = $xml; $xml = $xml->children(self::GEDMO_NAMESPACE_URI); if ('entity' === $xmlDoctrine->getName() || 'document' === $xmlDoctrine->getName() || 'mapped-superclass' === $xmlDoctrine->getName()) { if (isset($xml->loggable)) { /** * @var \SimpleXMLElement; */ $data = $xml->loggable; $config['loggable'] = true; if ($this->_isAttributeSet($data, 'log-entry-class')) { $class = $this->_getAttribute($data, 'log-entry-class'); if (!$cl = $this->getRelatedClassName($meta, $class)) { throw new InvalidMappingException("LogEntry class: {$class} does not exist."); } $config['logEntryClass'] = $cl; } } } if (isset($xmlDoctrine->field)) { $this->inspectElementForVersioned($xmlDoctrine->field, $config, $meta); } foreach ($xmlDoctrine->{'attribute-overrides'}->{'attribute-override'} ?? [] as $overrideMapping) { $this->inspectElementForVersioned($overrideMapping, $config, $meta); } if (isset($xmlDoctrine->{'many-to-one'})) { $this->inspectElementForVersioned($xmlDoctrine->{'many-to-one'}, $config, $meta); } if (isset($xmlDoctrine->{'one-to-one'})) { $this->inspectElementForVersioned($xmlDoctrine->{'one-to-one'}, $config, $meta); } if (isset($xmlDoctrine->{'reference-one'})) { $this->inspectElementForVersioned($xmlDoctrine->{'reference-one'}, $config, $meta); } if (isset($xmlDoctrine->{'embedded'})) { $this->inspectElementForVersioned($xmlDoctrine->{'embedded'}, $config, $meta); } if (!$meta->isMappedSuperclass && $config) { if (is_array($meta->getIdentifier()) && count($meta->getIdentifier()) > 1) { throw new InvalidMappingException("Loggable does not support composite identifiers in class - {$meta->getName()}"); } if (isset($config['versioned']) && !isset($config['loggable'])) { throw new InvalidMappingException("Class must be annotated with Loggable annotation in order to track versioned fields in class - {$meta->getName()}"); } } } /** * Searches mappings on element for versioned fields */ private function inspectElementForVersioned(\SimpleXMLElement $element, array &$config, ClassMetadata $meta): void { foreach ($element as $mapping) { $mappingDoctrine = $mapping; /** * @var \SimpleXmlElement */ $mapping = $mapping->children(self::GEDMO_NAMESPACE_URI); $isAssoc = $this->_isAttributeSet($mappingDoctrine, 'field'); $field = $this->_getAttribute($mappingDoctrine, $isAssoc ? 'field' : 'name'); if (isset($mapping->versioned)) { if ($isAssoc && !$meta->associationMappings[$field]['isOwningSide']) { throw new InvalidMappingException("Cannot version [{$field}] as it is not the owning side in object - {$meta->getName()}"); } $config['versioned'][] = $field; } } } }
Coded With 💗 by
0x6ick