سؤال

أنا بصدد إعادة تهيئة صفي (ينظر أدناه) - أعتقد أنني ارتكبت خطأ في وضع كل شيء بنفس الرؤية في صفي، في حين أن الخصائص يجب أن تكون فعليا يجب أن تكون خاصة ويجب أن تكون عامة في معظم الحالات.

للاستيلاء على الممتلكات، أفعل فقط PATH PATH-> اسم الملكية ولكن لقد لاحظت أكثر عملية لها أن يكون لديك setters / betters. إذا كنت أقوم بتطبيق Getters، هل يجب أن أقوم بإجراء واحدة لكل خاصية أم هل يمكنني إجراء واحدة للفئة بأكملها؟ لذلك على سبيل المثال يقول أنني أريد الحصول على اسم وحدة تحكم ...

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

وهذا من شأنه أن يعيد الملكية الخاصة تحكم الخاصة؟ هل من الشائع أن يكون لديك getter / studter أكثر عام أو حتى طريقة هجينة تحصل عليها و مجموعات بالنسبة لي؟

إليك هيكل الطبقة (فقط الخصائص / الأساليب):

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
    }
}
هل كانت مفيدة؟

المحلول

وجود setters و getters في حالتك لا طائل منه.

في حالة قيامك بفعل أي شيء إلى جانب مراقب التحكم العائدين، لا تحتاج إلى Getter لأنك لا تحتاج إلى Seadter إذا كنت لا تفعل أي شيء مع الممتلكات بعد تعيينه.

في حال كنت تريد حقا الحصول على Getters و Setters، يمكنك استخدام __et و __et الأساليب السحرية لجميع خصائصك. ولكن هذا لا معنى له تماما إذا كانت القضية كما وصفت أعلاه.

نصائح أخرى

إلقاء نظرة على التحميل الزائد في PHP: http://php.net/overload.

هناك نوعان من الأساليب السحرية __get() و __set() والتي قد تفعل بالضبط ما تريد

كائنات PHP لديها بعض لطيفة الأساليب السحرية (على الرغم من أنني لا أستخدم كل منهم لأنه يمكن أن يحصل على مربكة). الشخص الذي قد تبحث عنه هو __احصل على() و __تعيين(). وبعد لا يزال يتعين عليك إعادة تكوين كل الكود الخاص بك إذا اخترت إجراء حقول البيانات الخاصة بك خاصة (والتي يجب أن تحصل على الحقول التي يجب عليك الوصول إليها بشكل غير صحيح. القيام به بهذه الطريقة يساعد على جعل الرمز الخاص بك أفضل وأسهل للحفاظ على.

على الرغم من أنني عادة ما أحاول الحصول على Getters و Setters لكل حقل بيانات خاص لأنه يمكنك بسهولة رؤية أي صحة لكل حقل. بالإضافة إلى أنني أكثر من مطور Java من مطور PHP.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top