/** * Get project. * * @param string|null $projectFilename * @param string|null $projectLockFilename * * @return \ComponentManager\Project\Project */ protected function getProject($projectFilename = null, $projectLockFilename = null) { $workingDirectory = $this->platform->getWorkingDirectory(); if ($this->project === null) { if ($projectFilename === null) { $projectFilename = $this->platform->joinPaths([$workingDirectory, static::PROJECT_FILENAME]); } else { $projectFilename = $this->platform->expandPath($projectFilename); } if ($projectLockFilename === null) { $projectLockFilename = $this->platform->joinPaths([$workingDirectory, static::PROJECT_LOCK_FILENAME]); } else { $projectLockFilename = $this->platform->expandPath($projectLockFilename); } $this->logger->info('Parsing project file', ['filename' => $projectFilename]); $this->project = new Project(new ProjectFile($projectFilename), new ProjectLockFile($projectLockFilename), $this->packageRepositoryFactory, $this->packageSourceFactory, $this->packageFormatFactory); } return $this->project; }