phpbook/console 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

phpbook/console

Composer 安装命令:

composer require phpbook/console

包简介

PHP Console Library

README 文档

README

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 phpbook/console 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 45
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-06-25