polidog/console

PHP控制台库

0.0.1 2013-04-10 14:23 UTC

This package is auto-updated.

Last update: 2024-09-21 20:13:28 UTC


README

在想要实现简单命令时很有用。Windows用户现在就安装Linux或购买Mac吧。

运行环境

php5.4以上
大家,使用php5.4吧ヽ(`・ω・´)ノ ウワァァン!

运行方法

查看examples目录中的内容即可理解,但基本流程如下。

  1. 设置自动加载器,使用composer install等命令应该会自动创建自动加载器!
  2. 生成命令类的实例
  3. 执行
  4. 根据需要执行的命令,传递相应的参数

例如:~/bin/command

#!/usr/bin/env php
<?php
    require('../vendor/autoload.php');
    $command = new Polidog\Console\Console($argv);
    $command->addPath(__DIR__.DIRECTORY_SEPARATOR.'Command2/');
    $command->execute();	 

假设有这样一个类。 默认情况下有String类,因此考虑执行String类。

 polidog$ cd ~/bin
 polidog$ ./command string urlencode テスト!
 %E3%83%86%E3%82%B9%E3%83%88%21

这样,显示urlencode的值。

例如,如果不指定urlencode参数,即只指定类名的情况下,如果不重写main方法,则显示方法列表。

polidog$ cd ~/bin
polidog$ ./command string
    base64	string 指定した文字列をbase64エンコードする
    urlencode	string URLエンコードをする
    urldecode	string URLデコードする
    unserialize	string 指定したシリアライズされた配列を普通の配列に戻して出力する
    serialize	string 配列なシンタックスの文字列をシリアライズした値に変更する

顺便说一句,使用默认提供的list方法也可以列出。

polidog$ ./command string list
    base64	string 指定した文字列をbase64エンコードする
    urlencode	string URLエンコードをする
    urldecode	string URLデコードする
    unserialize	string 指定したシリアライズされた配列を普通の配列に戻して出力する
    serialize	string 配列なシンタックスの文字列をシリアライズした値に変更する

命令扩展方式

要扩展的命令类可以放在任何地方。 在Console类生成后,可以使用addPath方法添加要使用的类的路径。 examples的command文件中包含以下代码。

$command->addPath(__DIR__.DIRECTORY_SEPARATOR.'Command2/');

这样,在examples/Command2目录中准备好继承CommandAbstract的类,就可以使用该类了。 当然,类名不等于文件名是无法使用的。

例如,在Command2/中调用Test类时,可以这样调用

./command test
Hello extend command

这样就可以执行Command2中的测试类了。