home
/
zktecojo
/
public_html
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Workbench
/
Console
➕ New
📤 Upload
✎ Editing:
WorkbenchMakeCommand.php
← Back
<?php namespace Illuminate\Workbench\Console; use Illuminate\Console\Command; use Illuminate\Workbench\Package; use Illuminate\Workbench\PackageCreator; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\InputArgument; class WorkbenchMakeCommand extends Command { /** * The console command name. * * @var string */ protected $name = 'workbench'; /** * The console command description. * * @var string */ protected $description = 'Create a new package workbench'; /** * The package creator instance. * * @var \Illuminate\Workbench\PackageCreator */ protected $creator; /** * Create a new make workbench command instance. * * @param \Illuminate\Workbench\PackageCreator $creator * @return void */ public function __construct(PackageCreator $creator) { parent::__construct(); $this->creator = $creator; } /** * Execute the console command. * * @return void */ public function fire() { $workbench = $this->runCreator($this->buildPackage()); $this->info('Package workbench created!'); $this->callComposerUpdate($workbench); } /** * Run the package creator class for a given Package. * * @param \Illuminate\Workbench\Package $package * @return string */ protected function runCreator($package) { $path = $this->laravel['path.base'].'/workbench'; $plain = ! $this->option('resources'); return $this->creator->create($package, $path, $plain); } /** * Call the composer update routine on the path. * * @param string $path * @return void */ protected function callComposerUpdate($path) { chdir($path); passthru('composer install --dev'); } /** * Build the package details from user input. * * @return \Illuminate\Workbench\Package * * @throws \UnexpectedValueException */ protected function buildPackage() { list($vendor, $name) = $this->getPackageSegments(); $config = $this->laravel['config']['workbench']; if (is_null($config['email'])) { throw new \UnexpectedValueException("Please set the author's email in the workbench configuration file."); } return new Package($vendor, $name, $config['name'], $config['email']); } /** * Get the package vendor and name segments from the input. * * @return array */ protected function getPackageSegments() { $package = $this->argument('package'); return array_map('studly_case', explode('/', $package, 2)); } /** * Get the console command arguments. * * @return array */ protected function getArguments() { return array( array('package', InputArgument::REQUIRED, 'The name (vendor/name) of the package.'), ); } /** * Get the console command options. * * @return array */ protected function getOptions() { return array( array('resources', null, InputOption::VALUE_NONE, 'Create Laravel specific directories.'), ); } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel