fixed typos and trailing slashes

This commit is contained in:
dan-lyn
2014-08-30 11:20:04 +02:00
parent bc2f33e812
commit f50a4c6690
4 changed files with 22 additions and 21 deletions

View File

@@ -4,9 +4,9 @@ namespace DesignPatterns\Behavioral\ChainOfResponsibilities;
/** /**
* Handler is a generic handler in the chain of responsibilities * Handler is a generic handler in the chain of responsibilities
* *
* Yes you could have a lighter CoR with simpler handler but if you want your CoR to * Yes you could have a lighter CoR with a simpler handler but if you want your CoR
* be extendable and decoupled, it's a better idea to do things like that in real * to be extendable and decoupled, it's a better idea to do things like that in real
* situations. Usually, a CoR is meant to be changed everytime and evolves, that's * situations. Usually, a CoR is meant to be changed everytime and evolves, that's
* why we slice the workflow in little bits of code. * why we slice the workflow in little bits of code.
*/ */
@@ -19,13 +19,13 @@ abstract class Handler
/** /**
* Append a responsibility to the end of chain * Append a responsibility to the end of chain
* *
* A prepend method could be done with the same spirit * A prepend method could be done with the same spirit
* *
* You could also send the successor in the constructor but in PHP it is a * You could also send the successor in the constructor but in PHP that is a
* bad idea because you have to remove the type-hint of the parameter because * bad idea because you have to remove the type-hint of the parameter because
* the last handler has a null successor. * the last handler has a null successor.
* *
* And if you override the constructor, that Handler can no longer have a * And if you override the constructor, that Handler can no longer have a
* successor. One solution is to provide a NullObject (see pattern). * successor. One solution is to provide a NullObject (see pattern).
* It is more preferable to keep the constructor "free" to inject services * It is more preferable to keep the constructor "free" to inject services
@@ -43,10 +43,10 @@ abstract class Handler
} }
/** /**
* Handle the request. * Handle the request.
* *
* This approach by using a template method pattern ensures you that * This approach by using a template method pattern ensures you that
* each subclass will not forget to call the successor. Beside, the returned * each subclass will not forget to call the successor. Besides, the returned
* boolean value indicates you if the request have been processed or not. * boolean value indicates you if the request have been processed or not.
* *
* @param Request $req * @param Request $req

View File

@@ -4,14 +4,14 @@ namespace DesignPatterns\Behavioral\ChainOfResponsibilities;
/** /**
* Request is a request which goes through the chain of responsibilities. * Request is a request which goes through the chain of responsibilities.
* *
* About the request : Sometimes, you don't need an object, just an integer or * About the request: Sometimes, you don't need an object, just an integer or
* an array. But in this case of a full example, I've made a class to illustrate * an array. But in this case of a full example, I've made a class to illustrate
* this important idea in the CoR (Chain of Responsibilities). In real world, * this important idea in the CoR (Chain of Responsibilities). In the real world,
* I recommend to always use a class, even a \stdClass if you want, it proves * I recommend to always use a class, even a \stdClass if you want, it proves
* to be more adaptive because a single handler doesn't know much about the * to be more adaptive because a single handler doesn't know much about the
* outside world and it is more difficult if, one day, you want to add some * outside world and it is more difficult if, one day, you want to add some
* criterion in a decision process. * criterion in a decision process.
*/ */
class Request class Request
{ {

View File

@@ -7,13 +7,13 @@ use DesignPatterns\Behavioral\ChainOfResponsibilities\Request;
/** /**
* This is mostly the same code as FastStorage but in fact, it may greatly differs * This is mostly the same code as FastStorage but in fact, it may greatly differs
* *
* One important fact about CoR : each item in the chain MUST NOT assume its position * One important fact about CoR: each item in the chain MUST NOT assume its position
* in the chain. A CoR is not responsible if the request is not handled UNLESS * in the chain. A CoR is not responsible if the request is not handled UNLESS
* you make an "ExceptionHandler" which throws execption if the request goes there. * you make an "ExceptionHandler" which throws execption if the request goes there.
* *
* To be really extendable, each handler doesn't know if there is something after him. * To be really extendable, each handler doesn't know if there is something after it.
* *
*/ */
class SlowStorage extends Handler class SlowStorage extends Handler
{ {

View File

@@ -28,6 +28,7 @@ class ChainTest extends \PHPUnit_Framework_TestCase
{ {
$request = new Request(); $request = new Request();
$request->verb = 'get'; $request->verb = 'get';
return array( return array(
array($request) array($request)
); );