phpbook/console
Composer 安装命令:
composer require phpbook/console
包简介
PHP Console Library
关键字:
README 文档
README
- About Console
- Composer Install
- Declare Configurations
- Declare Console Controller
- Console Run Resource
- Generate Request Proxies
- Start Request Proxies
- Start Application Console
- Scheduler
About Console
- A PHP library to run asynchronous task in console.
- Requires PHP Extension COM on Windows.
Composer Install
composer require phpbook/console
Declare Configurations
<?php /******************************************** * * Declare Configurations * * ******************************************/ //you php bin path //Default "php" \PHPBook\Console\Configuration\Request::setPHPPath('php/bin/path'); //the php script console file, read below the link [Start Application Console] //Default null \PHPBook\Console\Configuration\Request::setConsoleScriptPath(__DIR__ . DIRECTORY_SEPARATOR . 'console.php'); //Controllers path, the phpbook will load all controllers by folders recursively inside //Default null. But its required to set if you want use phpbook console. \PHPBook\Console\Configuration\Request::setControllersPathRoot('controllers'); //Controllers proxies path, the phpbook will generate the proxies based on controllers //Default null. But its required to set if you want use phpbook console. \PHPBook\Console\Configuration\Request::setProxiesPathRoot('proxies'); //Controllers proxies namespace, the phpbook will generate the proxies classes using this namespace //Default null. But its required to set if you want use phpbook console. \PHPBook\Console\Configuration\Request::setProxiesNamespace('App\Controllers');
Declare Console Controller
PHPBook Console uses docs notations to declare request resources.
<?php /*************************************************** * * Declare Console Controller * * *************************************************/ class ConsoleController { /** * @PHPBookConsoleRequestResource{ * "setName": "'greetings'" * "setNotes": "'Any important note'" * "setArguments": "['name', 'age']" * } */ public function runConsole($name, $age) { //your console here //when a parameter is not defined in prompt the value will be null. $name; $age; //set the time to the script finish, zero to unlimited time //if you set again, the current timer reset the counter to zero, and starts counting again \PHPBook\Console\Script::setSecondsScriptLimits(0); //you can check the O.S. switch(\PHPBook\Console\Script::getOS()) { case \PHPBook\Console\Script::$OS_WINDOWS: break; case \PHPBook\Console\Script::$OS_UNIX; break; }; //you can write script line with auto break line \PHPBook\Console\Script::echoLine('Hello Jhon'); //you can write a break line, but echoLine auto breaks the line also \PHPBook\Console\Script::echoBreakLine(); //you can write a table \PHPBook\Console\Script::echoTable( 'My Table Label', ['name' => 'Name', 'age' => 'Age'], [ ['name' => 'Jhon', 'age' => 20], ['name' => 'Ana', 'age' => 21] ] ); //you can kill the script process \PHPBook\Console\Script::kill(); //you can call another asynchronous console $run = \PHPBook\Console\Console::run('resource-name', ['parameter-one', 'parameter-two']); if ($run) { //start success } else { //start error }; } }
Console Run Resource
<?php /*************************************************** * * Console Run Resource * * *************************************************/ //run a asynchronous console on php $run = \PHPBook\Console\Console::run('resource-name', ['parameter-one', 'parameter-two']); if ($run) { //start success } else { //start error };
Generate Request Proxies
<?php /*************************************************** * * Generate Request Proxies * * *************************************************/ /* The Directory will be cleared recursively before generate, so you should have a unique folder to this proxies.*/ /* You must generate or re-generate de proxy file when create or change controllers notations */ /* You cannot start console without proxies */ \PHPBook\Console\Proxy::generate(); ?>
Start Request Proxies
<?php /*************************************************** * * Start Request Proxies * * *************************************************/ /* You must start proxies before start the console */ \PHPBook\Console\Proxy::start(); ?>
Start Application Console
<?php /*************************************************** * * Start Application Console * * *************************************************/ /* FILE console.php */ if (\PHPBook\Console\Script::isConsole()) { \PHPBook\Console\Console::start(); };
You can execute console with "php console.php" and all your available resources will be shown.
You can execute console with "php console.php resoure-name parameter-one parameter-two" to run a resource.
Scheduler
- You need register the php console scripts inside your s.o. server environment scheduler. Each operating system and its server has its way to register.
phpbook/console 适用场景与选型建议
phpbook/console 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 45 次下载、GitHub Stars 达 1, 最近一次更新时间为 2018 年 06 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「console」 「lightweight」 「fast」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 phpbook/console 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 phpbook/console 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 phpbook/console 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This class provides you with an easy-to-use interface to progress bars.
A Laravel package to retrieve data from Google Search Console
Additional artisan commands for Laravel
A table generator class for the PHP CLI.
Splot Framework. Lightweight, fully featured framework for rapid web development.
Alfabank REST API integration
统计信息
- 总下载量: 45
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-06-25