PHP prototypal miras (JavaScript gibi)

1 Cevap php

Bu prototypal inheritance in PHP o JavaScript uygulanan gibi bir tür kullanmak da mümkündür mi?

Bu soru böyle bir şey uygulamak ve klasik miras karşı gitmek zorunda olduğunu, sadece meraktan aklıma deve değil. Bu sadece keşfetmek için ilginç bir alan gibi hissediyor.

Adsız işlevlerde bir kombinasyonu ile Prototypal inheritance çeşit PHP ile combine classical inheritance model işlevleri var prebuild mı?

Diyelim ki UserModel için basit bir sınıf var diyelim

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();

1 Cevap

Bu biraz benzer bir şey elde etmek için Prototype Creational Pattern kullanabilirsiniz, ancak JavaScript bulunan gibi gerçek prototip miras afaik mümkün değildir.

Eğer Katmalar / özellikleri gibi bir şey var arıyorsanız, kullanmak olabilir Decorators.

Bir RFC about whether to have traits in PHP6 olsa vardır.

Ne yapabileceğini, bunun yaşam döngüsünü izler Prototip model bir SplObjectStorage aracılığıyla nesneleri kopyalamış olması. Prototip değiştiğinde, Builder harita üzerinden yürümek ve buna göre örneklerini ayarlamak olacaktır. Maymun yama olsa runkit ile yapılması gerekir. Çok mümkün IMHO gelmiyor :)