Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
match/app/src/Shell/ConsoleShell.php
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
81 lines (72 sloc)
2.47 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org) | |
* Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) | |
* | |
* Licensed under The MIT License | |
* For full copyright and license information, please see the LICENSE.txt | |
* Redistributions of files must retain the above copyright notice. | |
* | |
* @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) | |
* @link https://cakephp.org CakePHP(tm) Project | |
* @since 3.0.0 | |
* @license https://opensource.org/licenses/mit-license.php MIT License | |
*/ | |
namespace App\Shell; | |
use Cake\Console\ConsoleOptionParser; | |
use Cake\Console\Shell; | |
use Cake\Log\Log; | |
use Psy\Shell as PsyShell; | |
/** | |
* Simple console wrapper around Psy\Shell. | |
*/ | |
class ConsoleShell extends Shell | |
{ | |
/** | |
* Start the shell and interactive console. | |
* | |
* @return int|null | |
*/ | |
public function main() | |
{ | |
if (!class_exists('Psy\Shell')) { | |
$this->err('<error>Unable to load Psy\Shell.</error>'); | |
$this->err(''); | |
$this->err('Make sure you have installed psysh as a dependency,'); | |
$this->err('and that Psy\Shell is registered in your autoloader.'); | |
$this->err(''); | |
$this->err('If you are using composer run'); | |
$this->err(''); | |
$this->err('<info>$ php composer.phar require --dev psy/psysh</info>'); | |
$this->err(''); | |
return self::CODE_ERROR; | |
} | |
$this->out("You can exit with <info>`CTRL-C`</info> or <info>`exit`</info>"); | |
$this->out(''); | |
Log::drop('debug'); | |
Log::drop('error'); | |
$this->_io->setLoggers(false); | |
restore_error_handler(); | |
restore_exception_handler(); | |
$psy = new PsyShell(); | |
$psy->run(); | |
} | |
/** | |
* Display help for this console. | |
* | |
* @return \Cake\Console\ConsoleOptionParser | |
*/ | |
public function getOptionParser(): ConsoleOptionParser | |
{ | |
$parser = new ConsoleOptionParser('console'); | |
$parser->setDescription( | |
'This shell provides a REPL that you can use to interact ' . | |
'with your application in an interactive fashion. You can use ' . | |
'it to run adhoc queries with your models, or experiment ' . | |
'and explore the features of CakePHP and your application.' . | |
"\n\n" . | |
'You will need to have psysh installed for this Shell to work.' | |
); | |
return $parser; | |
} | |
} |