Belirleyiciler / Alıcılar, Görüş [OOP] PHP

3 Cevap php

(Aşağıda görüldüğü gibi) benim sınıf yeniden biçimlendirme sürecinde kulüpler - Ben özellikleri gerçekten özel olmalı ve alıcılar / ayarlayıcıları çoğu kamu olmalı oysa ben, benim sınıfta aynı görüş ile her şeyi ayar hata yaptığımı düşünüyorum.

Ben sadece $ yol-> propertyName ama ben belirleyiciler / alıcılar için daha pratik fark ettik bir özellik kapmak için. Ben alıcılar uygulamak için olsaydı, ben her özellik için bir tane yapmak gerekir veya tüm sınıf için bir tane yapabilirsiniz? Yani, örneğin ben denetleyici adını almak istiyorum demek ...

public function getController( ) {
    return $this->controller;
}

Ve bu kontrolör özel mülkiyet dönecekti? Bir daha genel bir alıcı / ayarlayıcı veya and Benim için ayarlar alır bile hibrid yöntemi olması yaygındır?

Burada sınıf yapısı (sadece özellikleri / yöntemleri) var:

class urlParser {

    public static $url      = '';
    public static $controller   = '';
    public static $baseController = '';
    public static $urls     = '';
    public static $template     = '';
    public static $captures     = '';
    public static $contentXML   = '';

    function __construct( $urls ) {

        $this->urls = $urls;

        $this->baseController = $urls['default'];

        $this->get_url();
    }

    public function get_url() {
        // sets following properties:
        // url, template, controller, contentXML, baseController
    }
}

3 Cevap

Eğer durumda belirleyiciler ve alıcılar olması anlamsızdır.

Eğer denetleyici dönen dışında bir şey yapmak zorunda durumda ayarlanmış olan sonra özelliği ile bir şey yapmak değil eğer ayarlayıcı gerekmez, sen oltalarını gerekmez.

Eğer gerçekten alıcı ve ayarlayıcıları istiyorum durumda, kullanabilirsiniz __ tüm özellikleri için ayarlanmış sihirli yöntemler almak ve __. Yukarıda açıklandığı gibi durumda eğer Ama bu tamamen anlamsızdır.

php aşırı yükleme de bir göz atın: http://php.net/overload

İki sihirli yöntemler __get() ve __set() tam olarak ne istediğinizi yapabilir vardır

PHP nesneleri bazı güzel magic methods (bu kafa karıştırıcı olabilir, çünkü ben hepsini kullanmayın rağmen). Eğer arıyor olabilir, bir __get() ve __set() olduğunu. Eğer hala kodunuzu yapmak yardımcı olur diğer kod bu şekilde yapmak. Hatalı alanları erişirken yok gerektiğini böylece hangi (veri alanları özel yapmak isterseniz tüm kodunuzu refactor olurdu biraz daha iyi ve daha kolay sürdürmek için.

Ben genellikle kolayca her alan için herhangi bir doğrulama görebilirsiniz çünkü her özel veri alanı için alıcı ve ayarlayıcıları için çalışın rağmen. Ayrıca ben bir PHP geliştiricisi daha bir Java geliştirici daha değilim.