コマンドの構文を自分で定義する必要があります。たとえば、禁止について。/ban <username>
- 最初に、メッセージがスラッシュで始まっているかどうかを確認します。もしそうなら、それは命令です。
- ここで最初のスペースを検索します。スラッシュの後とスペースの前はすべてコマンド名です。
- 最初のスペースの後のすべてをコマンドに渡します。この場合、ユーザー名。このコマンドは、独自にパラメーターを処理します。
次のようになります。
$message = '/ban TimWolla';
if (substr($message, 0, 1) === '/') {
// $message is a command
$firstSpace = strpos($message, ' ');
$command = substr($message, 1, $firstSpace);
$parameters = substr($message, $firstSpace + 1);
if (!hasPermission($command)) error('Permission denied');
switch ($command) {
case 'ban':
ban($parameters);
break;
}
}
適切な OOP を使用する場合は、各コマンドをクラスにし、すべてのコマンドにインターフェイスを使用して適切なメソッドを要求します。例えば:
interface Command {
public function setParameters($parameters);
public function hasPermission();
public function execute();
}