Download the PHP package polidog/console without Composer
On this page you can find all versions of the php package polidog/console. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download polidog/console
More information about polidog/console
Files in polidog/console
Package console
Short Description PHP Console Library
License MIT
Homepage https://github.com/polidog/Console
Informations about the package console
PHPでCommandを楽に開発するためのライブラリ
PHPで簡単なコマンドを実装したいときに便利です。 windowsの人は今すぐそのwindowsマシンにLinux入れるか、アップルストアでMacでも買ってください。
動作環境
php5.4以上
みなさん、php5.4使いましょうヽ(`・ω・´)ノ ウワァァン!
動かし方
examplesディレクトリの中を見てもらえれば解りますが、基本的には以下のような流れになります。
- オートローダーを設定する てかcomposer installとかすれば多分勝手にautoloder作られるよ!
- コマンドクラスのインスタンスを生成する
- executeする
- CLIで実行するときに使いたいコマンドのに合わせて引数を渡す
例:~/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にあるテストクラスが実行されます。