From 527c711149a9986055f86d436f99204e5548a46a Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 29 Oct 2011 07:43:26 +0200 Subject: [PATCH] Move loader creation to avoid creating it more than once, unified the way packages are loading across repository classes --- src/Composer/Repository/ComposerRepository.php | 13 ++++--------- src/Composer/Repository/GitRepository.php | 7 +------ src/Composer/Repository/PackageRepository.php | 2 +- src/Composer/Repository/PearRepository.php | 2 +- 4 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/Composer/Repository/ComposerRepository.php b/src/Composer/Repository/ComposerRepository.php index 630f726ea..57c19becd 100644 --- a/src/Composer/Repository/ComposerRepository.php +++ b/src/Composer/Repository/ComposerRepository.php @@ -43,16 +43,11 @@ class ComposerRepository extends ArrayRepository throw new \UnexpectedValueException('Could not parse package list from the '.$this->url.' repository'); } + $loader = new ArrayLoader($this->repositoryManager); foreach ($packages as $data) { - $this->createPackages($data); - } - } - - private function createPackages($data) - { - foreach ($data['versions'] as $rev) { - $loader = new ArrayLoader($this->repositoryManager); - $this->addPackage($loader->load($rev)); + foreach ($data['versions'] as $rev) { + $this->addPackage($loader->load($rev)); + } } } } diff --git a/src/Composer/Repository/GitRepository.php b/src/Composer/Repository/GitRepository.php index 3fece37cd..d78c71e98 100644 --- a/src/Composer/Repository/GitRepository.php +++ b/src/Composer/Repository/GitRepository.php @@ -58,12 +58,7 @@ class GitRepository extends ArrayRepository throw new \InvalidArgumentException('Could not find repository at url '.$this->url); } - $this->createPackage($config); - } - - protected function createPackage($data) - { $loader = new ArrayLoader($this->repositoryManager); - $this->addPackage($loader->load($data)); + $this->addPackage($loader->load($config)); } } diff --git a/src/Composer/Repository/PackageRepository.php b/src/Composer/Repository/PackageRepository.php index 5def69030..50779ab37 100644 --- a/src/Composer/Repository/PackageRepository.php +++ b/src/Composer/Repository/PackageRepository.php @@ -47,8 +47,8 @@ class PackageRepository extends ArrayRepository $this->config = array($this->config); } + $loader = new ArrayLoader($this->repositoryManager); foreach ($this->config as $package) { - $loader = new ArrayLoader($this->repositoryManager); $package = $loader->load($package); $this->addPackage($package); } diff --git a/src/Composer/Repository/PearRepository.php b/src/Composer/Repository/PearRepository.php index 27371c469..1484b5b5b 100644 --- a/src/Composer/Repository/PearRepository.php +++ b/src/Composer/Repository/PearRepository.php @@ -57,6 +57,7 @@ class PearRepository extends ArrayRepository $packagesXML = $this->requestXml($this->url . $categoryLink); $packages = $packagesXML->getElementsByTagName('p'); + $loader = new ArrayLoader($this->repositoryManager); foreach ($packages as $package) { $packageName = $package->nodeValue; @@ -101,7 +102,6 @@ class PearRepository extends ArrayRepository } } - $loader = new ArrayLoader($this->repositoryManager); $this->addPackage($loader->load($packageData)); } }