Comments (9)
There is already a -q
and --quiet
options. What am I missing?
from app.
$ echo 'use Cake\Datasource\ConnectionManager; var_export(ConnectionManager::config("default"));'
| bin/cake Console -q
Error: Unknown short option `q`
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.
You will need to have psysh installed for this Shell to work.
Usage:
cake console [-h]
Options:
--help, -h Display this help.
from app.
TIAS π
from app.
The issue may be that the ConsoleShell doesn't start with its parent OptionParser like the ServerShell does, for example.
ServerShell:
public function getOptionParser()
{
$parser = parent::getOptionParser();
public function getOptionParser()
{
$parser = new ConsoleOptionParser('console', false);
I don't think that will be entirely sufficient though to suppress PsyShell's native output.
from app.
Try changing new ConsoleOptionParser('console', false);
to new ConsoleOptionParser('console');
If it works for you, open a PR :D
from app.
Yep, that gets closer, but as I suspected, it doesn't fully suppress PsyShell's normal interface output:
$ echo 'use Cake\Datasource\ConnectionManager; var_export(ConnectionManager::config("default")); exit;' | bin/cake Console -q
array (
'className' => 'Cake\\Database\\Connection',
'driver' => 'Cake\\Database\\Driver\\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'vagrant',
'password' => 'vagrant',
'database' => 'vagrant',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'name' => 'default',
)β
(Note the funky "return" character at the end, even in spite of using an explicit exit;
in my input string.)
from app.
So for posterity:
The β
is something PsyShell is adding to var_export()
(along with anything else that doesn't explicitly provide a trailing newline). It doesn't get added to print_r()
or var_dump()
, both of which include a trailing newline already. Unfortunately, that character is also getting added to serialize()
, which is the one that would really help here.
To get sane output, there are two choices:
# Strip the visible newline, using sed.
$ echo 'echo serialize([1, 2, 3]); exit;' | bin/cake console -q | sed s/β//
a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}
# Include your own newline in the output.
$ echo 'echo serialize([1, 2, 3]) . PHP_EOL; exit;' | bin/cake console -q
a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}
Thanks for the feedback. I think the rest is Psy's problem now.
from app.
Created bobthecow/psysh#211.
from app.
Closing as PR is opened.
from app.
Related Issues (20)
- add config/events.php with an example event listener HOT 3
- Fatal error: Uncaught Error: Class 'Cake\Utility\Security' not found in composer\src\Console\Installer.php:182 HOT 2
- ApplicationTest::testBootstrap() doesn't test existence of each plugin HOT 1
- H
- dd use vendor\sympfony\var_dumper\dump.php instead vendor\cakephp\cakephp\src\basic.php HOT 4
- Filmes e sΓ©ries
- CSRF Token missing in error template HOT 7
- Locales path is wrong HOT 1
- Incorrect cache engine name in home page
- Tests fail not in debug mode HOT 1
- test/bootstrap.php and 'App.fullBaseUrl' HOT 3
- Error in session overwrite
- No installs cakephp/cakephp v4.4.4 (current) HOT 1
- Add git support for next gen picture. HOT 2
- Skip using ErrorHandlerMiddleware in cli mode HOT 3
- Re-enable migration plugin for 5.x once it's compatible with Cake 5 HOT 2
- Bug in new version of app for BeforeFilter / BeforeRender
- Unused config options _cake_routes_ HOT 1
- Global function usage only in error with phpstan but not in production/unit test despite migration doc HOT 5
- Error templates HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from app.