123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
-
- namespace Illuminate\Support;
-
- use Illuminate\Filesystem\Filesystem;
- use Symfony\Component\Process\Process;
- use Symfony\Component\Process\PhpExecutableFinder;
-
- class Composer
- {
- /**
- * The filesystem instance.
- *
- * @var \Illuminate\Filesystem\Filesystem
- */
- protected $files;
-
- /**
- * The working path to regenerate from.
- *
- * @var string
- */
- protected $workingPath;
-
- /**
- * Create a new Composer manager instance.
- *
- * @param \Illuminate\Filesystem\Filesystem $files
- * @param string|null $workingPath
- * @return void
- */
- public function __construct(Filesystem $files, $workingPath = null)
- {
- $this->files = $files;
- $this->workingPath = $workingPath;
- }
-
- /**
- * Regenerate the Composer autoloader files.
- *
- * @param string $extra
- * @return void
- */
- public function dumpAutoloads($extra = '')
- {
- $process = $this->getProcess();
-
- $process->setCommandLine(trim($this->findComposer().' dump-autoload '.$extra));
-
- $process->run();
- }
-
- /**
- * Regenerate the optimized Composer autoloader files.
- *
- * @return void
- */
- public function dumpOptimized()
- {
- $this->dumpAutoloads('--optimize');
- }
-
- /**
- * Get the composer command for the environment.
- *
- * @return string
- */
- protected function findComposer()
- {
- if ($this->files->exists($this->workingPath.'/composer.phar')) {
- return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)).' composer.phar';
- }
-
- return 'composer';
- }
-
- /**
- * Get a new Symfony process instance.
- *
- * @return \Symfony\Component\Process\Process
- */
- protected function getProcess()
- {
- return (new Process('', $this->workingPath))->setTimeout(null);
- }
-
- /**
- * Set the working path used by the class.
- *
- * @param string $path
- * @return $this
- */
- public function setWorkingPath($path)
- {
- $this->workingPath = realpath($path);
-
- return $this;
- }
- }
|