Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.119
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
php /
Composer /
Repository /
Delete
Unzip
Name
Size
Permission
Date
Action
Pear
[ DIR ]
drwxr-xr-x
2022-03-20 10:35
Vcs
[ DIR ]
drwxr-xr-x
2022-03-20 10:35
ArrayRepository.php
5.58
KB
-rw-r--r--
2016-11-03 17:43
ArtifactRepository.php
4.87
KB
-rw-r--r--
2016-11-03 17:43
BaseRepository.php
7.61
KB
-rw-r--r--
2016-11-03 17:43
ComposerRepository.php
28.19
KB
-rw-r--r--
2016-11-03 17:43
CompositeRepository.php
3.83
KB
-rw-r--r--
2016-11-03 17:43
ConfigurableRepositoryInterface.php
478
B
-rw-r--r--
2016-11-03 17:43
FilesystemRepository.php
2.12
KB
-rw-r--r--
2016-11-03 17:43
InstalledArrayRepository.php
584
B
-rw-r--r--
2016-11-03 17:43
InstalledFilesystemRepository.php
504
B
-rw-r--r--
2016-11-03 17:43
InstalledRepositoryInterface.php
579
B
-rw-r--r--
2016-11-03 17:43
InvalidRepositoryException.php
479
B
-rw-r--r--
2016-11-03 17:43
PackageRepository.php
1.59
KB
-rw-r--r--
2016-11-03 17:43
PathRepository.php
4.6
KB
-rw-r--r--
2016-11-03 17:43
PearRepository.php
8.54
KB
-rw-r--r--
2016-11-03 17:43
PlatformRepository.php
8.94
KB
-rw-r--r--
2016-11-03 17:43
RepositoryFactory.php
6.47
KB
-rw-r--r--
2016-11-03 17:43
RepositoryInterface.php
2.18
KB
-rw-r--r--
2016-11-03 17:43
RepositoryManager.php
5.42
KB
-rw-r--r--
2016-11-03 17:43
RepositorySecurityException.php
482
B
-rw-r--r--
2016-11-03 17:43
VcsRepository.php
11.24
KB
-rw-r--r--
2016-11-03 17:43
WritableArrayRepository.php
1.48
KB
-rw-r--r--
2016-11-03 17:43
WritableRepositoryInterface.php
1.22
KB
-rw-r--r--
2016-11-03 17:43
Save
Rename
<?php /* * This file is part of Composer. * * (c) Nils Adermann <naderman@naderman.de> * Jordi Boggiano <j.boggiano@seld.be> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Composer\Repository; use Composer\IO\IOInterface; use Composer\Json\JsonFile; use Composer\Package\Loader\ArrayLoader; use Composer\Package\Loader\LoaderInterface; /** * @author Serge Smertin <serg.smertin@gmail.com> */ class ArtifactRepository extends ArrayRepository implements ConfigurableRepositoryInterface { /** @var LoaderInterface */ protected $loader; protected $lookup; protected $repoConfig; public function __construct(array $repoConfig, IOInterface $io) { parent::__construct(); if (!extension_loaded('zip')) { throw new \RuntimeException('The artifact repository requires PHP\'s zip extension'); } $this->loader = new ArrayLoader(); $this->lookup = $repoConfig['url']; $this->io = $io; $this->repoConfig = $repoConfig; } public function getRepoConfig() { return $this->repoConfig; } protected function initialize() { parent::initialize(); $this->scanDirectory($this->lookup); } private function scanDirectory($path) { $io = $this->io; $directory = new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::FOLLOW_SYMLINKS); $iterator = new \RecursiveIteratorIterator($directory); $regex = new \RegexIterator($iterator, '/^.+\.(zip|phar)$/i'); foreach ($regex as $file) { /* @var $file \SplFileInfo */ if (!$file->isFile()) { continue; } $package = $this->getComposerInformation($file); if (!$package) { $io->writeError("File <comment>{$file->getBasename()}</comment> doesn't seem to hold a package", true, IOInterface::VERBOSE); continue; } $template = 'Found package <info>%s</info> (<comment>%s</comment>) in file <info>%s</info>'; $io->writeError(sprintf($template, $package->getName(), $package->getPrettyVersion(), $file->getBasename()), true, IOInterface::VERBOSE); $this->addPackage($package); } } /** * Find a file by name, returning the one that has the shortest path. * * @param \ZipArchive $zip * @param $filename * @return bool|int */ private function locateFile(\ZipArchive $zip, $filename) { $indexOfShortestMatch = false; $lengthOfShortestMatch = -1; for ($i = 0; $i < $zip->numFiles; $i++) { $stat = $zip->statIndex($i); if (strcmp(basename($stat['name']), $filename) === 0) { $directoryName = dirname($stat['name']); if ($directoryName == '.') { //if composer.json is in root directory //it has to be the one to use. return $i; } if (strpos($directoryName, '\\') !== false || strpos($directoryName, '/') !== false) { //composer.json files below first directory are rejected continue; } $length = strlen($stat['name']); if ($indexOfShortestMatch === false || $length < $lengthOfShortestMatch) { //Check it's not a directory. $contents = $zip->getFromIndex($i); if ($contents !== false) { $indexOfShortestMatch = $i; $lengthOfShortestMatch = $length; } } } } return $indexOfShortestMatch; } private function getComposerInformation(\SplFileInfo $file) { $zip = new \ZipArchive(); $zip->open($file->getPathname()); if (0 == $zip->numFiles) { return false; } $foundFileIndex = $this->locateFile($zip, 'composer.json'); if (false === $foundFileIndex) { return false; } $configurationFileName = $zip->getNameIndex($foundFileIndex); $composerFile = "zip://{$file->getPathname()}#$configurationFileName"; $json = file_get_contents($composerFile); $package = JsonFile::parseJson($json, $composerFile); $package['dist'] = array( 'type' => 'zip', 'url' => strtr($file->getPathname(), '\\', '/'), 'shasum' => sha1_file($file->getRealPath()), ); try { $package = $this->loader->load($package); } catch (\UnexpectedValueException $e) { throw new \UnexpectedValueException('Failed loading package in '.$file.': '.$e->getMessage(), 0, $e); } return $package; } }