Domanda

E 'possibile utilizzare una sorta di prototipale eredità in PHP come esso è implementato in JavaScript

Questa domanda mi è venuta in mente solo per curiosità, non che io abbia per implementare tale cosa e andare contro l'eredità classica. Ci si sente proprio come una zona interessante da esplorare.

Ci sono funzioni precompilati per combinare modello di ereditarietà classica in PHP con una sorta di prototipale eredità con una combinazione di funzioni anonime?

dire Let Ho una semplice classe per UserModel

class UserModel implements PrototypalInheritance
{
    // setters, getters, logic..
    static public function Prototype () {}
}

$user = new UserModel();

UserModel::prototype()->getNameSlug = function () {
    return slugify($this->getUserName());
}

echo $user->getNameSlug();
È stato utile?

Soluzione

È possibile utilizzare la Prototype Creazionale modello per ottenere qualcosa in qualche modo simile a questo, ma vera e propria ereditarietà prototipo come si trovano in JavaScript non è possibile afaik.

Se stai cercando di avere qualcosa di simile mixin / tratti, è possibile utilizzare Decoratori .

C'è un RFC sul fatto di avere tratti in php6 però.

Che cosa si potrebbe fare, è avere modello prototipo che tiene traccia del ciclo di vita di esso è clonato oggetti attraverso uno SplObjectStorage. Ogni volta che il prototipo viene modificato, il costruttore avrebbe camminato attraverso la mappa e regolare le istanze di conseguenza. Scimmia patch dovrebbe essere fatto attraverso runkit però. Non suona imho anche fattibile:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top