| 1 | <?php  | 
            ||
| 14 | abstract class Base extends \Prefab  | 
            ||
| 15 | { | 
            ||
| 16 | use Traits\Logger,  | 
            ||
| 17 | Traits\Validation;  | 
            ||
| 18 | |||
| 19 | /**  | 
            ||
| 20 | * initialize with array of params, 'db' and 'logger' can be injected  | 
            ||
| 21 | *  | 
            ||
| 22 | * @param array $params  | 
            ||
| 23 | * @param \Log $logger  | 
            ||
| 
                                                                                                    
                        
                         | 
                |||
| 24 | */  | 
            ||
| 25 | public function __construct(array $params = [], \Log $logger = null)  | 
            ||
| 44 | }  | 
            ||
| 45 | 
This check looks for
@paramannotations where the type inferred by our type inference engine differs from the declared type.It makes a suggestion as to what type it considers more descriptive.
Most often this is a case of a parameter that can be null in addition to its declared types.