diff --git a/Command/Command.php b/Command/Command.php index ea10bb2..8fe9c5b 100644 --- a/Command/Command.php +++ b/Command/Command.php @@ -23,7 +23,7 @@ namespace DesignPatterns\Command; * can be implemented with the Command pattern (e.g. vagrant) * */ -interface Command +interface CommandInterface { /** * this is the most important method in the Command pattern, diff --git a/Command/HelloCommand.php b/Command/HelloCommand.php index 1ba3ecb..baaeda1 100644 --- a/Command/HelloCommand.php +++ b/Command/HelloCommand.php @@ -6,25 +6,31 @@ namespace DesignPatterns\Command; * This concrete command calls "print" on the Receiver, but an external * invoker just know he can call "execute" */ -class HelloCommand implements Command +class HelloCommand implements CommandInterface { - + /** + * @var Receiver + */ protected $output; /** * Each concrete command is builded with different receivers. - * Can be one, many, none or even other Command in parameters + * Can be one, many, none or even other Command in parameters + * + * @param Receiver $console */ public function __construct(Receiver $console) { $this->output = $console; } + /** + * execute and output "Hello World" + */ public function execute() { // sometimes, there is no receiver and this is the command which // does all the work $this->output->write('Hello World'); } - -} \ No newline at end of file +} diff --git a/Command/Invoker.php b/Command/Invoker.php index 75d7a23..f3013e6 100644 --- a/Command/Invoker.php +++ b/Command/Invoker.php @@ -12,23 +12,29 @@ namespace DesignPatterns\Command; */ class Invoker { - + /** + * @var CommandInterface + */ protected $command; /** * In the invoker we find this kind of method for subscribing the command. * There can be also a stack, a list, a fixed set... + * + * @param CommandInterface $cmd */ - public function setCommand(Command $cmd) + public function setCommand(CommandInterface $cmd) { $this->command = $cmd; } + /** + * executes the command + */ public function run() { // here is a key feature of the invoker // the invoker is the same whatever is the command $this->command->execute(); } - -} \ No newline at end of file +} diff --git a/Command/Receiver.php b/Command/Receiver.php index a9b6516..6fbed05 100644 --- a/Command/Receiver.php +++ b/Command/Receiver.php @@ -11,10 +11,11 @@ namespace DesignPatterns\Command; */ class Receiver { - + /** + * @param string $str + */ public function write($str) { echo $str; } - -} \ No newline at end of file +}