PHP Tasarım Deseni

4 Cevap php

I have a class that performs database operations and returns results (array, true, false). And I have an another class that creates JSON string by using this class in its constructor. Can we say this class is an Adapter? Or simply wrapper or ...

Class Db
{
    public function getRows($params)
    {
        //...
    }
}


Class DbAdapter
{
    private $_dbh;
    public function __construct($dbh)
    {
        $this->_dbh = $dbh;
    }

    public function getJson()
    {
        return '{"key": "foo", "key2": ' . json_encode($this->_dbh->getRows($params)) . '}';
    }
}

Teşekkürler

4 Cevap

Id onun daha Dekoratör arasında ... http://en.wikipedia.org/wiki/Decorator_pattern söylüyor

Ruby on onlar MCV modeli var. Veritabanı işlemleri gerçekleştirirken sınıfı Model denir. Çıkışını işleme kodu View olduğunu. Ve dönüştürmek için / Controller gerekli bir görünüm için Model bilgi ekleyin.

PHP gibi isimleri ya da olup olmadığını bilmiyorum, ama Rayları olanları makul görünüyor. Sizin Adaptör sınıf Rails bir denetleyicisi olacağını söyledi.

Gönderen: http://www.fluffycat.com/PHP-Design-Patterns/Adapter/

Size ihtiyacınız oldukça kesin yöntemleri var olmayan bir sınıf kullanmak istiyorsanız adaptörleri yararlı ve orignal sınıf değiştiremezsiniz. Adaptör orijinal sınıfta erişebilirsiniz yöntemleri almak ve ihtiyacınız yöntemleri içine bunları uyarlayabilirsiniz.

Ben başka bir sınıfı tamamlamak için yöntemler eklemeyi planlıyorsanız kodunuzu bir adaptör olarak nitelendirir söyleyebilirim.

Sana bir desen almak ve burada kullanılan biri söyleyebilirim sanmıyorum. İşte ben sizin örnekte gördüğünüz desen benim küçük bir listesi bulunuyor. Yorum yapmaktan çekinmeyin.

Delegation DBAdapter class delegeler DB sınıfa gerçek satırları alma görevi nedeniyle.

Decorator DBAdapter sınıf ek işlevler ile DB sınıfını süsleyen çünkü - JSON çıktı tükürme o.

Adapter/Wrapper bunu diğer istemci sadece JSON veya XML veya başka bir biçimini anlaşılır veritabanı satırları erişim sağlar düşünüyorsanız.

Biz birini seçmek zorunda ama eğer, ben Adaptörü söyleyebilirim. PHP veri yapıları şeklinde verileri alır ve bir JSON temsili haline dönüştürür.