PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / doctrine / orm / src / EntityRepository.php
mailpoet / vendor-prefixed / doctrine / orm / src Last commit date
Cache 9 months ago Decorator 9 months ago Event 9 months ago Exception 9 months ago Id 9 months ago Internal 9 months ago Mapping 9 months ago Persisters 8 months ago Proxy 9 months ago Query 9 months ago Repository 9 months ago Tools 9 months ago Utility 9 months ago AbstractQuery.php 9 months ago Cache.php 9 months ago Configuration.php 9 months ago EntityManager.php 9 months ago EntityManagerInterface.php 9 months ago EntityNotFoundException.php 9 months ago EntityRepository.php 9 months ago Events.php 9 months ago LazyCriteriaCollection.php 9 months ago NativeQuery.php 9 months ago NoResultException.php 9 months ago NonUniqueResultException.php 9 months ago ORMException.php 9 months ago ORMInvalidArgumentException.php 9 months ago ORMSetup.php 9 months ago OptimisticLockException.php 9 months ago PersistentCollection.php 9 months ago PessimisticLockException.php 9 months ago Query.php 9 months ago QueryBuilder.php 9 months ago TransactionRequiredException.php 9 months ago UnexpectedResultException.php 9 months ago UnitOfWork.php 9 months ago Version.php 9 months ago index.php 9 months ago
EntityRepository.php
139 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\ORM;
4 if (!defined('ABSPATH')) exit;
5 use BadMethodCallException;
6 use MailPoetVendor\Doctrine\Common\Collections\AbstractLazyCollection;
7 use MailPoetVendor\Doctrine\Common\Collections\Criteria;
8 use MailPoetVendor\Doctrine\Common\Collections\Selectable;
9 use MailPoetVendor\Doctrine\Common\Persistence\PersistentObject;
10 use MailPoetVendor\Doctrine\DBAL\LockMode;
11 use MailPoetVendor\Doctrine\Deprecations\Deprecation;
12 use MailPoetVendor\Doctrine\Inflector\Inflector;
13 use MailPoetVendor\Doctrine\Inflector\InflectorFactory;
14 use MailPoetVendor\Doctrine\ORM\Exception\NotSupported;
15 use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadata;
16 use MailPoetVendor\Doctrine\ORM\Query\ResultSetMappingBuilder;
17 use MailPoetVendor\Doctrine\ORM\Repository\Exception\InvalidMagicMethodCall;
18 use MailPoetVendor\Doctrine\Persistence\ObjectRepository;
19 use function array_slice;
20 use function class_exists;
21 use function lcfirst;
22 use function sprintf;
23 use function str_starts_with;
24 use function substr;
25 class EntityRepository implements ObjectRepository, Selectable
26 {
27 protected $_entityName;
28 protected $_em;
29 protected $_class;
30 private static $inflector;
31 public function __construct(EntityManagerInterface $em, ClassMetadata $class)
32 {
33 $this->_entityName = $class->name;
34 $this->_em = $em;
35 $this->_class = $class;
36 }
37 public function createQueryBuilder($alias, $indexBy = null)
38 {
39 return $this->_em->createQueryBuilder()->select($alias)->from($this->_entityName, $alias, $indexBy);
40 }
41 public function createResultSetMappingBuilder($alias)
42 {
43 $rsm = new ResultSetMappingBuilder($this->_em, ResultSetMappingBuilder::COLUMN_RENAMING_INCREMENT);
44 $rsm->addRootEntityFromClassMetadata($this->_entityName, $alias);
45 return $rsm;
46 }
47 public function createNamedQuery($queryName)
48 {
49 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8592', 'Named Queries are deprecated, here "%s" on entity %s. Move the query logic into EntityRepository', $queryName, $this->_class->name);
50 return $this->_em->createQuery($this->_class->getNamedQuery($queryName));
51 }
52 public function createNativeNamedQuery($queryName)
53 {
54 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8592', 'Named Native Queries are deprecated, here "%s" on entity %s. Move the query logic into EntityRepository', $queryName, $this->_class->name);
55 $queryMapping = $this->_class->getNamedNativeQuery($queryName);
56 $rsm = new Query\ResultSetMappingBuilder($this->_em);
57 $rsm->addNamedNativeQueryMapping($this->_class, $queryMapping);
58 return $this->_em->createNativeQuery($queryMapping['query'], $rsm);
59 }
60 public function clear()
61 {
62 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8460', 'Calling %s() is deprecated and will not be supported in Doctrine ORM 3.0.', __METHOD__);
63 if (!class_exists(PersistentObject::class)) {
64 throw NotSupported::createForPersistence3(sprintf('Partial clearing of entities for class %s', $this->_class->rootEntityName));
65 }
66 $this->_em->clear($this->_class->rootEntityName);
67 }
68 public function find($id, $lockMode = null, $lockVersion = null)
69 {
70 return $this->_em->find($this->_entityName, $id, $lockMode, $lockVersion);
71 }
72 public function findAll()
73 {
74 return $this->findBy([]);
75 }
76 public function findBy(array $criteria, ?array $orderBy = null, $limit = null, $offset = null)
77 {
78 $persister = $this->_em->getUnitOfWork()->getEntityPersister($this->_entityName);
79 return $persister->loadAll($criteria, $orderBy, $limit, $offset);
80 }
81 public function findOneBy(array $criteria, ?array $orderBy = null)
82 {
83 $persister = $this->_em->getUnitOfWork()->getEntityPersister($this->_entityName);
84 return $persister->load($criteria, null, null, [], null, 1, $orderBy);
85 }
86 public function count(array $criteria)
87 {
88 return $this->_em->getUnitOfWork()->getEntityPersister($this->_entityName)->count($criteria);
89 }
90 public function __call($method, $arguments)
91 {
92 if (str_starts_with($method, 'findBy')) {
93 return $this->resolveMagicCall('findBy', substr($method, 6), $arguments);
94 }
95 if (str_starts_with($method, 'findOneBy')) {
96 return $this->resolveMagicCall('findOneBy', substr($method, 9), $arguments);
97 }
98 if (str_starts_with($method, 'countBy')) {
99 return $this->resolveMagicCall('count', substr($method, 7), $arguments);
100 }
101 throw new BadMethodCallException(sprintf('Undefined method "%s". The method name must start with ' . 'either findBy, findOneBy or countBy!', $method));
102 }
103 protected function getEntityName()
104 {
105 return $this->_entityName;
106 }
107 public function getClassName()
108 {
109 return $this->getEntityName();
110 }
111 protected function getEntityManager()
112 {
113 return $this->_em;
114 }
115 protected function getClassMetadata()
116 {
117 return $this->_class;
118 }
119 public function matching(Criteria $criteria)
120 {
121 $persister = $this->_em->getUnitOfWork()->getEntityPersister($this->_entityName);
122 return new LazyCriteriaCollection($persister, $criteria);
123 }
124 private function resolveMagicCall(string $method, string $by, array $arguments)
125 {
126 if (!$arguments) {
127 throw InvalidMagicMethodCall::onMissingParameter($method . $by);
128 }
129 if (self::$inflector === null) {
130 self::$inflector = InflectorFactory::create()->build();
131 }
132 $fieldName = lcfirst(self::$inflector->classify($by));
133 if (!($this->_class->hasField($fieldName) || $this->_class->hasAssociation($fieldName))) {
134 throw InvalidMagicMethodCall::becauseFieldNotFoundIn($this->_entityName, $fieldName, $method . $by);
135 }
136 return $this->{$method}([$fieldName => $arguments[0]], ...array_slice($arguments, 1));
137 }
138 }
139