CARVIEW |
Select Language
HTTP/2 200
date: Sat, 26 Jul 2025 15:42:02 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"7e0c6985fe10da436a78a529e79ed7d5"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=B6v%2Bti0%2Fwu%2FbYtNds6WETHwxWWqJP6B0DKFrmvyE21nu5HvGllCCKe%2FFqm4fJj9nflyIJmFk9tAA7lIU491ewoFsXL3wmix96faNVvyBzFbgomZhVuq%2FDnnclNlTHTAEB3JK6aj4uLV4xF49gAj7jgHrKVA9WSRMpfCIdwrD4VYGBkaJ8EJrpNcPBOs3FBCt7CS6qIORQ9bg0USWcGdF0ABAjbcX6TrRvFzz9P3VWzyZjghTJXtpkmU7STpgz8iF0JgOm7KJzT0rAKvf%2F9EpiA%3D%3D--%2BxWFGZehRQVGN9lh--g6JBz88sEP3txHylLnlyxw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.309980856.1753544522; Path=/; Domain=github.com; Expires=Sun, 26 Jul 2026 15:42:02 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sun, 26 Jul 2026 15:42:02 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: EA9C:37D5F1:6DBC3F:8DF91B:6884F74A
v3 upgrade to v4 · inhere/php-console Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 48
v3 upgrade to v4
Inhere edited this page Oct 18, 2021
·
8 revisions
推荐升级到 v4 版本,v4使用上更加简单易用
大部分都是兼容的,唯有选项参数的解析、绑定变动较大。之前获取输入参数、选项都是通过 Input 对象,v4 重构了选项参数的解析。
升级改动说明:
- PHP 版本需要
7.3+
- 将原来的
$input->getXXXOpt()
替换为$fs->getOpt()
- 将原来的
$input->getXXXArg()
替换为$fs->getArg()
- 方法上的
@options
@arguments
注释内容会被严格解析,因此名称和后面的规则至少需要间隔两个空格
v4示例 - 通过注释绑定选项参数:
/**
* show next execution datetime for an cron expression.
*
* @arguments
* expression string;The cronTab expression. eg: `20 10 * * *`;required
*
* @options
* -n, --next int;Show next number exec datetime. default number is 3.
* -p, --prev bool;Show previsions exec datetime
*
* @param FlagsParser $fs
* @param Output $output
*
* @throws Exception
*/
public function someCommand(FlagsParser $fs, Output $output): void
{
$expr = $fs->getArg('expression'); // will get string value
$prev = $fs->getOpt('prev'); // will get bool value
$nextNum = $fs->getOpt('next', 3); // will get int value
$output->colored('Cron Expression: ' . $expr);
}
v4示例 - 通过 FlagsParsr
对象绑定选项参数:
/**
* Configure for the subcommand `some`
*/
protected function someConfigure(): void
{
// 在独立命令里
// $fs = $this->getFlags();
// 在group的子命令里
$fs = $this->getActionFlags();
$fs->addArg('topic', 'The language/topic for search. eg: go, php, java, lua, python, js ...');
$fs->addArg('question', 'The question search.');
$fs->addOpt('search', 's', 'search by the keywords');
// $fs->addOpt('T', 't', 'query');
$fs->setMoreHelp(<<<HELP
<b>Special pages</b>
There are several special pages that are not cheat sheets. Their names start with colon and have special meaning.
.... ...
HELP
);
$fs->setExampleHelp([
'{fullCmd} go reverse list'
]);
}
我的其他PHP项目
- inhere/kite 方便本地开发和使用的个人CLI工具应用
- php-toolkit/pflag PHP编写的,通用的命令行标志(选项和参数)解析库
- phppkg/easytpl 使用简单且快速的 PHP 模板引擎
- inhere/php-validate 一个简洁小巧且功能完善的php验证库
- inhere/sroute 轻量且快速的HTTP请求路由库
You can’t perform that action at this time.