la prima rappresenta un modello del sistema, e' astratto, serve ad estendere tutti gli altri:
Codice: Seleziona tutto
abstract class Model {
public static $fields = [];
public $fillable = [];
public $guarded = [];
public final function missedFields() {
//array_merge_unique e' una funziona che combina array merge ed array unique ridistribuendo le chiavi da capo nell'ordine in cui fa il merge
$declaredFields = array_merge_unique($this->fillable, $this->guarded);
$misseds = array_diff(self::$fields, $declaredfields);
... etc ...
}
}
Codice: Seleziona tutto
class User extends Model {
public static $fields = ['id','username','password'];
public $fillable = ['username','password'];
public $guarded = ['id'];
}
Codice: Seleziona tutto
array(0) {
}
come posso far riferimento ad un valore statico dalla classe padre nella classe figlio? (Model e' astratta e missedFields non e' statico quindi non c'e' pericolo che venga invocato).
il motivo per cui $fields e' statico e che i campi nel database sono sempre gli stessi.

