daspors/shellphp

PHP命令行工具

0.1 2018-01-04 18:05 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:29 UTC


README

ShellPHP可以帮助你将PHP的强大功能和便捷安装带到命令行。
它旨在为开发者提供一个工具箱,以便他们可以开发将在bash而不是WebServer环境中运行的PHP程序。

功能概述

  • 命令行参数处理
  • 进程管理
  • 高级(基于Sqlite)数据存储
  • Web界面(实验性)

\ShellPHP\CmdLine

命令行处理器使定义标志、选项和参数变得简单,甚至提供了创建将应用程序分割成逻辑部分(如apt-get和其他许多工具)的命令的能力。

$cli = \ShellPHP\CmdLine\CmdLine::Make("ShellPHP Test Script","Version 0.0.0.2")
	->command('list')
		->opt('-f','none')->map('filter')
		->arrayArg('folder')
		->handler(function($args)
		{
			extract($args);
			var_dump($args);
			var_dump(get_defined_vars());
			echo "\n --> $filter $folder\n\n";
		})
		->end()
	->command('add')
		->opt('-p')->map('path')->text('Local folder to add')
		->handler(function($args)
		{
			extract($args);
			echo "Add --> $path\n\n";
		})
		->end();
$cli->command('remove')->opt('-f');
$cli->go();

\ShellPHP\Process

这是一个有助于列举、查找和运行进程的类。

\ShellPHP\Storage

真正强大且易于使用的存储。每个应用程序都需要在某个时候存储一些数据。
存储类提供了一个高级接口,因此大多数情况下,你不需要执行任何SQL查询。

class MyModel extends \ShellPHP\Storage\StoredObject
{
	public $id = 'int primary autoinc';
	public $name = 'text unique';
	public $desc = 'text';
}
\ShellPHP\Storage\Storage::Make('my_app_database.sqlite');

$obj1 = MyModel::Make(array('name'=>'obj1'));
$obj1->Save();
MyModel::Make()->set('name','obj2')->Save();

var_dump(MyModel::Select()->like('name','obj%')->results());
$obj1->Delete();
var_dump(MyModel::Select()->results());

\ShellPHP\WebInterface

目前有一个提供Web界面的实验性功能。

$webinterface = \ShellPHP\WebInterface\WebInterface::Make()
	->index(__DIR__."/web")
	->handler('list',function($request){ return \ShellPHP\WebInterface\WebResponse::Json(array('hello'=>'world')); } )
	->go();