quando si usa doctrine inciampo su queste 2 parole: accessor e mutator.accessor e mutator?
questi sono usati solo in dottrina o sono specifici per php?
e cosa significano?
grazie
quando si usa doctrine inciampo su queste 2 parole: accessor e mutator.accessor e mutator?
questi sono usati solo in dottrina o sono specifici per php?
e cosa significano?
grazie
Sono solo termini di fantasia per getter e setter.
class MyClass
{
private $prop;
// Accessor (or Getter)
public function getProp()
{
return $this->prop;
}
// Mutator (or Setter)
public function setProp($value)
{
$this->prop = $value;
}
}
Se ho capito bene questi 2 sono specifici di qualsiasi linguaggio di programmazione orientato agli oggetti. Il punto è che accessor è un metodo o una funzione che fornisce l'accesso a campi privati nella classe e il metodo mutatore consente di modificare i campi privati. Posso continuare a scrivere su questo, ma ti suggerisco di google questi, e riceverai molte informazioni a riguardo. Si tratta di incapsulamento < - suggerisce di cercare anche questo termine.
Mi piace pensare a loro come a funzioni regolari che servono solo a uno scopo comune ben noto ... niente di più. – m0s
Non dovremmo utilizzare __get and __set in php5 and later ora?
Non sono solo termini diversi per getter e setter, almeno non in Laravel.
Per citare la documentazione: "Gli accessori e i mutatori consentono di formattare gli attributi di Eloquent quando li recuperano da un modello o ne impostano il valore."
https://laravel.com/docs/master/eloquent-mutators
Quindi, si potrebbe dire che getter e setter sono un sottoinsieme delle funzioni di accesso e mutators che cambiano i dati di un fattore pari a zero.
In un altro modo, se volessi ottenere un "costo" da un tavolo grezzo, utilizzerei un getter. Se volessi ottenere quel campo espresso e formattato in libbre e pence, allora potrei usare un accessorio.
Ci sono altri modi in cui potrei fare, ma questa è un'opzione.
Potresti spiegare "cambiare di un fattore zero"? Grazie! –
Sicuro. Accessors and Mutators modificano un valore prima di salvare o restituire il nuovo valore. I setter e ottenerlo non cambiano il valore. Quindi quando ho detto "di un fattore zero" intendevo solo "nessun cambiamento". Non hai appena aggiunto nulla al valore. – Puzbie
E per chiarire, sono termini comuni utilizzati nella programmazione orientata agli oggetti, indipendentemente dalla lingua o dal framework. – nickf
quindi perché li chiamano accessori e mutatori invece di getter e setter? non sono metodi magici, vale a dire se scrivono setProp() ma non hanno definito un metodo per quello, non verrà creato automaticamente? –
@fayer accessor e mutator sono termini più generali utilizzati in informatica. getter e setter sono più casuali, immagino ... forse un gergo. Finché lo so, non creerà magicamente le variabili per te in php ... ho bisogno di guardare le specifiche ... piuttosto sicuro che non lo faranno. – m0s