|
@@ -49,15 +49,11 @@ class PackageRepository extends EntityRepository
|
|
|
}
|
|
|
|
|
|
if (!is_array($names)) {
|
|
|
- $names = array();
|
|
|
-
|
|
|
$query = $this->getEntityManager()
|
|
|
->createQuery("SELECT p.name FROM Packagist\WebBundle\Entity\Package p");
|
|
|
|
|
|
- foreach ($query->getScalarResult() as $package) {
|
|
|
- $names[$package['name']] = strtolower($package['name']);
|
|
|
- }
|
|
|
-
|
|
|
+ $names = $this->getPackageNamesForQuery($query);
|
|
|
+ $names = array_combine($names, array_map('strtolower', $names));
|
|
|
if ($apc) {
|
|
|
apc_store('packagist_package_names', $names, 3600);
|
|
|
}
|
|
@@ -72,6 +68,20 @@ class PackageRepository extends EntityRepository
|
|
|
->createQuery("SELECT p.name FROM Packagist\WebBundle\Entity\Package p WHERE p.type = :type")
|
|
|
->setParameters(array('type' => $type));
|
|
|
|
|
|
+ return $this->getPackageNamesForQuery($query);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getPackageNamesByVendor($vendor)
|
|
|
+ {
|
|
|
+ $query = $this->getEntityManager()
|
|
|
+ ->createQuery("SELECT p.name FROM Packagist\WebBundle\Entity\Package p WHERE p.name LIKE :vendor")
|
|
|
+ ->setParameters(array('vendor' => $vendor.'/%'));
|
|
|
+
|
|
|
+ return $this->getPackageNamesForQuery($query);
|
|
|
+ }
|
|
|
+
|
|
|
+ private function getPackageNamesForQuery($query)
|
|
|
+ {
|
|
|
$names = array();
|
|
|
foreach ($query->getScalarResult() as $row) {
|
|
|
$names[] = $row['name'];
|