/
  • Object Return Self

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی Object Return Self
    نویسنده پیام
    hidensoft آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,385
    تاریخ عضویت: ۱۳۸۸ شهريور ۳
    اعتبار: 46
    تشکرها : 729
    ( 1395 تشکر در 782 ارسال )
    ارسال: #1
    Object Return Self
    سلام دوستان
    دیدید بعضی جاها به این صورت کد می نویسند
    کد PHP:
    $MyClass->function1('value')->function2-()->anotherFunc->(); 
    برای هر کسی این سوال پیش میاد که چطوری می شه اینطوری کد نویسی کرد ؟
    از نظر خوانایی ، سرعت تایپ هم بهتر به نظر می یاد تا اینکه هر بار نام کلاس رو فراخوانی کنیم و بعد نام تابع و سمی کالن و بعد دوباره همین کار و بعد دوباره همین کار

    این مثالی که می زنم خیلی سادست

    کد PHP:
    <?php

    class MyClass {
        public function 
    func1() {
            echo 
    "func1()\n";
            return 
    $this;
        }
        public function 
    func2() {
            echo 
    "func2()\n";
            return 
    $this;
        }
        public function 
    func3() {
            echo 
    "func3()\n";
            return 
    $this;
        }
        public function 
    func4() {
            echo 
    "func4()\n";
            return 
    $this;
        }
    }

    $obj = new MyClass();

    // You can do this:
    $obj->func1();
    $obj->func2();
    $obj->func3();
    $obj->func4();

    // OR you can do this:
    $obj->func1()->func2()->func3()->func4();
    ؟
    در آینده روی این موضوع بیشتر بحث می کنیم البته بعد از مطرح کردن توابع جادویی
    ۱۳۸۸ دي ۱۶ ۱۱:۴۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : HiddeN molana k2-4u parvane admin
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 601
    ( 1126 تشکر در 412 ارسال )
    ارسال: #2
    RE: Object Return Self
    نقل قول: برای هر کسی این سوال پیش میاد که چطوری می شه اینطوری کد نویسی کرد ؟
    ممنون که انقدر خوب مطالب تونو ارائه میدید و واقعا زحمت میکشید
    -----------------
    نقل قول: از نظر خوانایی ، سرعت تایپ هم بهتر به نظر می یاد تا اینکه هر بار نام کلاس رو فراخوانی کنیم و
    به نظر من خوانایی کد ، سیستم انجام تغییر و به روز رسانی در کدهای بزرگ و پایین میاره
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    ۱۳۸۸ دي ۱۷ ۰۹:۴۴ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : molana
    hidensoft آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,385
    تاریخ عضویت: ۱۳۸۸ شهريور ۳
    اعتبار: 46
    تشکرها : 729
    ( 1395 تشکر در 782 ارسال )
    ارسال: #3
    RE: Object Return Self
    نقل قول: به نظر من خوانایی کد ، سیستم انجام تغییر و به روز رسانی در کدهای بزرگ و پایین میاره
    چطوری ؟
    ۱۳۸۸ دي ۱۷ ۰۲:۴۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : k2-4u
    k2-4u آفلاین
    LAMP Programmer
    ***

    ارسال‌ها: 88
    تاریخ عضویت: ۱۳۸۸ مرداد ۲۱
    اعتبار: 4
    تشکرها : 64
    ( 218 تشکر در 56 ارسال )
    ارسال: #4
    RE: Object Return Self
    این قابلیت در جاوا اسکریپ chianable نام داره
    http://forum.iranphp.org/Thread-مقاله-مب...در-شی-گرای
    این تاپیک می تونه به شما نشون بده که این قابلیت . چه مواقعی میتونه به داد آدم برسه
    (آخرین ویرایش در این ارسال: ۱۳۸۸ دي ۱۷ ۰۲:۴۸ عصر، توسط k2-4u.)
    ۱۳۸۸ دي ۱۷ ۰۲:۴۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : admin
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 601
    ( 1126 تشکر در 412 ارسال )
    ارسال: #5
    RE: Object Return Self
    به نظر من روابط زنجیره ای فهم کد و دشوار میکنن
    ابجکتها مستقل هستن. مستقل هستن یعنی هرکدوم تو سیستم یه موجودیت جداگانه دارن
    پس باید هرکدوم با رابطه هاشون جدگانه به وجود بیان.
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    ۱۳۸۸ دي ۱۷ ۰۳:۱۲ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    zoghal آفلاین
    صالح سوزنچی
    *****

    ارسال‌ها: 1,760
    تاریخ عضویت: ۱۳۸۷ دي ۲۵
    اعتبار: 23
    تشکرها : 1500
    ( 1729 تشکر در 992 ارسال )
    ارسال: #6
    RE: Object Return Self
    اگر یادتون باشه این سوال من بود. االبته نه به این صورت. بلگه استفاده زنجیر وار از چند کلاس
    ۱۳۸۸ دي ۱۷ ۰۷:۴۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 601
    ( 1126 تشکر در 412 ارسال )
    ارسال: #7
    RE: Object Return Self
    یادم نیست من چی گفته بودم ، گفته بودم خوبه ؟
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    ۱۳۸۸ دي ۱۷ ۰۸:۰۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    hidensoft آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,385
    تاریخ عضویت: ۱۳۸۸ شهريور ۳
    اعتبار: 46
    تشکرها : 729
    ( 1395 تشکر در 782 ارسال )
    ارسال: #8
    RE: Object Return Self
    نقل قول: ابجکتها مستقل هستن. مستقل هستن یعنی هرکدوم تو سیستم یه موجودیت جداگانه دارن
    بله ، این حرف شما کاملا درسته و بخاطر همین هست که این قابلیت به صورت پیش فرض وجود نداره و حتی در مانوال خود PHP هم از این روش هیچ جا استفاده نشده. اما کاربردش در بعضی مواقع غیر قابل تکذیبه
    به عنوان مثال در Doctrine ORM شما می تونید به این صورت هم دستور SELECT رو پیاده سازی کنید
    کد PHP:
    $q Doctrine_Query::create()
           ->
    select('u.username')
        ->
    from('User u')
        ->
    leftJoin('u.Phonenumbers p')
        ->
    having('COUNT(p.id) > 3'

    من فکر می کنم برای یه همچین کاری این بهترین راهه که بتونیم خیلی سریع و راحت بفهمیم که کد چه کاری انجام میده تا اینکه هر بار نام آبجکت رو فراخوانی کنیم و هر بار یه سمی کالون آخرش بزاریم ، دوباره اینتر و دوباره کار قبل رو تکرار کنیم. استفاده از این روش نمی تونه همیشه کاربرد داشته باشه. هرچند این قابلیت هنوز در PHP اضافه نشده اما به نظر من خوبه که یک متود جادویی برای این کار هم ساخته بشه تا بشه بهترین تصمیم رو بگیریم زمانی که کاربر کد رو به این صورت فراخوانی می کنه

    نقل قول: اگر یادتون باشه این سوال من بود. االبته نه به این صورت. بلگه استفاده زنجیر وار از چند کلاس
    امید وارم شما هم پاسخ خودتون رو گرفته باشید
    (آخرین ویرایش در این ارسال: ۱۳۸۸ دي ۱۷ ۰۹:۰۶ عصر، توسط hidensoft.)
    ۱۳۸۸ دي ۱۷ ۰۹:۰۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : zoghal
    zoghal آفلاین
    صالح سوزنچی
    *****

    ارسال‌ها: 1,760
    تاریخ عضویت: ۱۳۸۷ دي ۲۵
    اعتبار: 23
    تشکرها : 1500
    ( 1729 تشکر در 992 ارسال )
    ارسال: #9
    RE: Object Return Self
    نه زیاد این لینک رو نگاه کنید.
    http://forum.iranphp.org/Thread-%DA%A9%D...8%B9%DB%8C
    ۱۳۸۸ دي ۱۷ ۰۹:۵۵ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    hidensoft آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,385
    تاریخ عضویت: ۱۳۸۸ شهريور ۳
    اعتبار: 46
    تشکرها : 729
    ( 1395 تشکر در 782 ارسال )
    ارسال: #10
    RE: Object Return Self
    جواب سوال شما Delegation هست.
    ۱۳۸۸ دي ۱۷ ۱۱:۵۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS