Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php namespace Faker\ORM\Doctrine; use Doctrine\Common\Persistence\ObjectManager; use Do..

Decoded Output download

<?php
 namespace Faker\ORM\Doctrine; use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\Mapping\ClassMetadata; class EntityPopulator { protected $class; protected $columnFormatters = array(); protected $modifiers = array(); public function __construct(ClassMetadata $class) { $this->class = $class; } public function getClass() { return $this->class->getName(); } public function setColumnFormatters($columnFormatters) { $this->columnFormatters = $columnFormatters; } public function getColumnFormatters() { return $this->columnFormatters; } public function mergeColumnFormattersWith($columnFormatters) { $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); } public function setModifiers(array $modifiers) { $this->modifiers = $modifiers; } public function getModifiers() { return $this->modifiers; } public function mergeModifiersWith(array $modifiers) { $this->modifiers = array_merge($this->modifiers, $modifiers); } public function guessColumnFormatters(\Faker\Generator $generator) { $formatters = array(); $nameGuesser = new \Faker\Guesser\Name($generator); $columnTypeGuesser = new ColumnTypeGuesser($generator); foreach ($this->class->getFieldNames() as $fieldName) { if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) { continue; } $size = isset($this->class->fieldMappings[$fieldName]["length"]) ? $this->class->fieldMappings[$fieldName]["length"] : null; if ($formatter = $nameGuesser->guessFormat($fieldName, $size)) { $formatters[$fieldName] = $formatter; continue; } if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) { $formatters[$fieldName] = $formatter; continue; } } foreach ($this->class->getAssociationNames() as $assocName) { if ($this->class->isCollectionValuedAssociation($assocName)) { continue; } $relatedClass = $this->class->getAssociationTargetClass($assocName); $unique = $optional = false; if ($this->class instanceof \Doctrine\ORM\Mapping\ClassMetadata) { $mappings = $this->class->getAssociationMappings(); foreach ($mappings as $mapping) { if ($mapping["targetEntity"] == $relatedClass) { if ($mapping["type"] == \Doctrine\ORM\Mapping\ClassMetadata::ONE_TO_ONE) { $unique = true; $optional = isset($mapping["joinColumns"][0]["nullable"]) ? $mapping["joinColumns"][0]["nullable"] : false; break; } } } } elseif ($this->class instanceof \Doctrine\ODM\MongoDB\Mapping\ClassMetadata) { $mappings = $this->class->associationMappings; foreach ($mappings as $mapping) { if ($mapping["targetDocument"] == $relatedClass) { if ($mapping["type"] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::ONE && $mapping["association"] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::REFERENCE_ONE) { $unique = true; $optional = isset($mapping["nullable"]) ? $mapping["nullable"] : false; break; } } } } $index = 0; $formatters[$assocName] = function ($inserted) use($relatedClass, &$index, $unique, $optional) { if (isset($inserted[$relatedClass])) { if ($unique) { $related = null; if (isset($inserted[$relatedClass][$index]) || !$optional) { $related = $inserted[$relatedClass][$index]; } $index++; return $related; } return $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)]; } return null; }; } return $formatters; } public function execute(ObjectManager $manager, $insertedEntities, $generateId = false) { $obj = $this->class->newInstance(); $this->fillColumns($obj, $insertedEntities); $this->callMethods($obj, $insertedEntities); if ($generateId) { $idsName = $this->class->getIdentifier(); foreach ($idsName as $idName) { $id = $this->generateId($obj, $idName, $manager); $this->class->reflFields[$idName]->setValue($obj, $id); } } $manager->persist($obj); return $obj; } private function fillColumns($obj, $insertedEntities) { foreach ($this->columnFormatters as $field => $format) { if (null !== $format) { try { $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; } catch (\InvalidArgumentException $ex) { throw new \InvalidArgumentException(sprintf("Failed to generate a value for %s::%s: %s", get_class($obj), $field, $ex->getMessage())); } $setter = sprintf("set%s", ucfirst($field)); if (is_callable(array($obj, $setter))) { $obj->{$setter}($value); } else { $this->class->reflFields[$field]->setValue($obj, $value); } } } } private function callMethods($obj, $insertedEntities) { foreach ($this->getModifiers() as $modifier) { $modifier($obj, $insertedEntities); } } private function generateId($obj, $column, ObjectManager $manager) { $repository = $manager->getRepository(get_class($obj)); $result = $repository->createQueryBuilder("e")->select(sprintf("e.%s", $column))->getQuery()->execute(); $ids = array_map("current", $result->toArray()); $id = null; do { $id = mt_rand(); } while (in_array($id, $ids)); return $id; } } ?>

Did this file decode correctly?

Original Code

<?php
 namespace Faker\ORM\Doctrine; use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\Mapping\ClassMetadata; class EntityPopulator { protected $class; protected $columnFormatters = array(); protected $modifiers = array(); public function __construct(ClassMetadata $class) { $this->class = $class; } public function getClass() { return $this->class->getName(); } public function setColumnFormatters($columnFormatters) { $this->columnFormatters = $columnFormatters; } public function getColumnFormatters() { return $this->columnFormatters; } public function mergeColumnFormattersWith($columnFormatters) { $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); } public function setModifiers(array $modifiers) { $this->modifiers = $modifiers; } public function getModifiers() { return $this->modifiers; } public function mergeModifiersWith(array $modifiers) { $this->modifiers = array_merge($this->modifiers, $modifiers); } public function guessColumnFormatters(\Faker\Generator $generator) { $formatters = array(); $nameGuesser = new \Faker\Guesser\Name($generator); $columnTypeGuesser = new ColumnTypeGuesser($generator); foreach ($this->class->getFieldNames() as $fieldName) { if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) { continue; } $size = isset($this->class->fieldMappings[$fieldName]["\x6c\x65\156\147\164\150"]) ? $this->class->fieldMappings[$fieldName]["\x6c\145\156\x67\x74\x68"] : null; if ($formatter = $nameGuesser->guessFormat($fieldName, $size)) { $formatters[$fieldName] = $formatter; continue; } if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) { $formatters[$fieldName] = $formatter; continue; } } foreach ($this->class->getAssociationNames() as $assocName) { if ($this->class->isCollectionValuedAssociation($assocName)) { continue; } $relatedClass = $this->class->getAssociationTargetClass($assocName); $unique = $optional = false; if ($this->class instanceof \Doctrine\ORM\Mapping\ClassMetadata) { $mappings = $this->class->getAssociationMappings(); foreach ($mappings as $mapping) { if ($mapping["\164\x61\x72\147\145\164\x45\156\164\151\164\x79"] == $relatedClass) { if ($mapping["\164\x79\x70\145"] == \Doctrine\ORM\Mapping\ClassMetadata::ONE_TO_ONE) { $unique = true; $optional = isset($mapping["\152\x6f\151\x6e\103\157\x6c\165\x6d\156\x73"][0]["\x6e\x75\x6c\x6c\x61\x62\x6c\145"]) ? $mapping["\x6a\157\151\156\103\x6f\154\x75\155\x6e\163"][0]["\156\165\154\x6c\141\x62\x6c\145"] : false; break; } } } } elseif ($this->class instanceof \Doctrine\ODM\MongoDB\Mapping\ClassMetadata) { $mappings = $this->class->associationMappings; foreach ($mappings as $mapping) { if ($mapping["\x74\x61\x72\x67\145\164\104\157\143\x75\155\x65\x6e\x74"] == $relatedClass) { if ($mapping["\x74\x79\x70\145"] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::ONE && $mapping["\x61\x73\x73\157\143\x69\x61\164\x69\x6f\156"] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::REFERENCE_ONE) { $unique = true; $optional = isset($mapping["\x6e\165\154\154\141\x62\x6c\x65"]) ? $mapping["\156\x75\x6c\x6c\x61\x62\x6c\145"] : false; break; } } } } $index = 0; $formatters[$assocName] = function ($inserted) use($relatedClass, &$index, $unique, $optional) { if (isset($inserted[$relatedClass])) { if ($unique) { $related = null; if (isset($inserted[$relatedClass][$index]) || !$optional) { $related = $inserted[$relatedClass][$index]; } $index++; return $related; } return $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)]; } return null; }; } return $formatters; } public function execute(ObjectManager $manager, $insertedEntities, $generateId = false) { $obj = $this->class->newInstance(); $this->fillColumns($obj, $insertedEntities); $this->callMethods($obj, $insertedEntities); if ($generateId) { $idsName = $this->class->getIdentifier(); foreach ($idsName as $idName) { $id = $this->generateId($obj, $idName, $manager); $this->class->reflFields[$idName]->setValue($obj, $id); } } $manager->persist($obj); return $obj; } private function fillColumns($obj, $insertedEntities) { foreach ($this->columnFormatters as $field => $format) { if (null !== $format) { try { $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; } catch (\InvalidArgumentException $ex) { throw new \InvalidArgumentException(sprintf("\106\141\151\x6c\x65\144\x20\164\157\40\x67\x65\x6e\145\x72\x61\164\x65\40\141\x20\166\x61\154\x75\145\x20\x66\157\x72\x20\x25\163\72\72\45\163\72\x20\x25\163", get_class($obj), $field, $ex->getMessage())); } $setter = sprintf("\163\145\164\x25\x73", ucfirst($field)); if (is_callable(array($obj, $setter))) { $obj->{$setter}($value); } else { $this->class->reflFields[$field]->setValue($obj, $value); } } } } private function callMethods($obj, $insertedEntities) { foreach ($this->getModifiers() as $modifier) { $modifier($obj, $insertedEntities); } } private function generateId($obj, $column, ObjectManager $manager) { $repository = $manager->getRepository(get_class($obj)); $result = $repository->createQueryBuilder("\145")->select(sprintf("\x65\56\x25\x73", $column))->getQuery()->execute(); $ids = array_map("\x63\x75\x72\162\x65\156\164", $result->toArray()); $id = null; do { $id = mt_rand(); } while (in_array($id, $ids)); return $id; } }

Function Calls

None

Variables

None

Stats

MD5 c328311b1c1d398a0e4107ad4e4cc79a
Eval Count 0
Decode Time 88 ms