123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- class Psr4Autoloader
- {
-
- protected $prefixes = array();
-
- public function register()
- {
- spl_autoload_register(array($this, 'loadClass'));
- }
-
- public function addNamespace($prefix, $base_dir, $prepend = false)
- {
-
- $prefix = trim($prefix, '\\') . '\\';
-
- $base_dir = rtrim($base_dir, DIRECTORY_SEPARATOR) . '/';
-
- if (isset($this->prefixes[$prefix]) === false) {
- $this->prefixes[$prefix] = array();
- }
-
- if ($prepend) {
- array_unshift($this->prefixes[$prefix], $base_dir);
- } else {
- array_push($this->prefixes[$prefix], $base_dir);
- }
- }
-
- public function loadClass($class)
- {
-
- $prefix = $class;
-
-
- while (false !== $pos = strrpos($prefix, '\\')) {
-
- $prefix = substr($class, 0, $pos + 1);
-
- $relative_class = substr($class, $pos + 1);
-
- $mapped_file = $this->loadMappedFile($prefix, $relative_class);
- if ($mapped_file) {
- return $mapped_file;
- }
-
-
- $prefix = rtrim($prefix, '\\');
- }
-
- return false;
- }
-
- protected function loadMappedFile($prefix, $relative_class)
- {
-
- if (isset($this->prefixes[$prefix]) === false) {
- return false;
- }
-
- foreach ($this->prefixes[$prefix] as $base_dir) {
-
-
-
- $file = $base_dir
- . str_replace('\\', '/', $relative_class)
- . '.php';
-
- if ($this->requireFile($file)) {
-
- return $file;
- }
- }
-
- return false;
- }
-
- protected function requireFile($file)
- {
- if (file_exists($file)) {
- require $file;
- return true;
- }
- return false;
- }
- }
- $basePath = realpath(__DIR__ . '/../');
- $loader = new Psr4Autoloader();
- $loader->register();
- $loader->addNamespace('Hhxsv5\LaravelS', $basePath . '/vendor/hhxsv5/laravel-s/src');
- $loader->addNamespace('Symfony\Component\Console', $basePath . '/vendor/symfony/console');
- $loader->addNamespace('Symfony\Contracts\Service', $basePath . '/vendor/symfony/service-contracts');
- $loader->addNamespace('Symfony\Contracts', $basePath . '/vendor/symfony/contracts');
- $command = new Hhxsv5\LaravelS\Console\Portal($basePath);
- $input = new Symfony\Component\Console\Input\ArgvInput();
- $output = new Symfony\Component\Console\Output\ConsoleOutput();
- $code = $command->run($input, $output);
- exit($code);
|