for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Redbox\Hooks\Annotations;
use Doctrine\Common\Annotations\Reader;
use Redbox\Hooks\Filters;
class FilterAnnotationHandler
{
private $reader;
private $annotationClass = 'Redbox\Hooks\Annotations\Filter';
public function __construct(Reader $reader)
$this->reader = $reader;
}
public function read($object)
$reflectionObject = new \ReflectionObject($object);
foreach ($reflectionObject->getMethods() as $reflectionMethod) {
/**
* Weird but still be need to do this.
*/
new $this->annotationClass;
* Autoload or instantiate the object
$annotation = $this->reader->getMethodAnnotation($reflectionMethod, $this->annotationClass);
Filters::addFilter(
$annotation->getPropertyName(),
[$object, $reflectionMethod->name],
array($object, $reflectionMethod->name)
array<integer,?,{"0":"?","1":"?"}>
string
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example:
function acceptsInteger($int) { } $x = '123'; // string "123" // Instead of acceptsInteger($x); // we recommend to use acceptsInteger((integer) $x);
$annotation->priority
);
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: