function FilesystemRepository::initialize
Initializes repository (reads file, or remote address).
Overrides ArrayRepository::initialize
1 call to FilesystemRepository::initialize()
- FilesystemRepository::reload in vendor/
composer/ composer/ src/ Composer/ Repository/ FilesystemRepository.php - @inheritDoc
File
-
vendor/
composer/ composer/ src/ Composer/ Repository/ FilesystemRepository.php, line 75
Class
- FilesystemRepository
- Filesystem repository.
Namespace
Composer\RepositoryCode
protected function initialize() {
parent::initialize();
if (!$this->file
->exists()) {
return;
}
try {
$data = $this->file
->read();
if (isset($data['packages'])) {
$packages = $data['packages'];
}
else {
$packages = $data;
}
if (isset($data['dev-package-names'])) {
$this->setDevPackageNames($data['dev-package-names']);
}
if (isset($data['dev'])) {
$this->devMode = $data['dev'];
}
if (!is_array($packages)) {
throw new \UnexpectedValueException('Could not parse package list from the repository');
}
} catch (\Exception $e) {
throw new InvalidRepositoryException('Invalid repository data in ' . $this->file
->getPath() . ', packages could not be loaded: [' . get_class($e) . '] ' . $e->getMessage());
}
$loader = new ArrayLoader(null, true);
foreach ($packages as $packageData) {
$package = $loader->load($packageData);
$this->addPackage($package);
}
}