| 1 | <?php  | 
            ||
| 14 | trait PermissionsTableTrait  | 
            ||
| 15 | { | 
            ||
| 16 | public function buildPermissionRelationship()  | 
            ||
| 27 | |||
| 28 | /**  | 
            ||
| 29 | * @param Validator $validator  | 
            ||
| 30 | * @return Validator  | 
            ||
| 31 | */  | 
            ||
| 32 | public function validationPermission(Validator $validator)  | 
            ||
| 41 | |||
| 42 | /**  | 
            ||
| 43 | * Refreshes the cache  | 
            ||
| 44 | * @param int $roleId  | 
            ||
| 45 | */  | 
            ||
| 46 | public static function refreshCache($roleId)  | 
            ||
| 50 | }  | 
            
This check looks for methods that are used by a trait but not required by it.
To illustrate, let’s look at the following code example
The trait
Idableprovides a methodequalsIdthat in turn relies on the methodgetId(). If this method does not exist on a class mixing in this trait, the method will fail.Adding the
getId()as an abstract method to the trait will make sure it is available.