اذهب إلى المحتوى
  • 0

طريقة عمل methods chaining في Laravel + ماهو arrow operator 

ايمن ميلاد

السؤال

السلام عليكم ورحمة الله وبركاته 

لماذا اغلب استعمال إطار عمل لارافيل 

عبارة دوال مربوطه ببعضها  methods chaining 

هل كلهم عبارة انه يرجعو return $this 

ممكن شرح colon في php :: عبارة عن نقطتين وراء بعض

و ماهو -> arrow operator 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

 

بتاريخ منذ ساعة مضت قال ايمن ميلاد:

لماذا اغلب استعمال إطار عمل لارافيل 

عبارة دوال مربوطه ببعضها  methods chaining 

هناك أسباب كثيرة تجعلنا نستخدم methods chaining ومنها :

  • يسهل methods chaining فهم تتابع الكود وقراءته بشكل افضل ويجعل الكود أكثر سلاسة وسهولة اثناء التعديلات مستقبلا .
  •  في  بعض الاوقات تحسن methods chaining من أداء التطبيق بشكل عام، على سبيل المثال  يمكن تجنب تحميل البيانات من قاعدة البيانات بشكل متكرر عند استخدام الـ eager loading فيLaravel  وبهذا ستحصل على سرعه واداء فاضل اثناء عمل التطبيق .
بتاريخ منذ ساعة مضت قال ايمن ميلاد:

هل كلهم عبارة انه يرجعو return $this 

ليس بالضرورة ذلك يمكنهم ارجاع قيم مختلفة كما في هذا المثال الخاص بتسجيل الدخول والذي يقوم بأرجاع قيمة منطقية او قيمة

public static function isLoggedIn($userId)
    {
        $user = User::find($userId);

        if ($user) {
            return $user->is_logged_in;
        }

        return false;
    }
بتاريخ منذ ساعة مضت قال ايمن ميلاد:

ممكن شرح colon في php :: عبارة عن نقطتين وراء بعض

علامة (::) تمسى  (scope resolution operator)
 تستخدم للوصل الى الدوال والمتغيرات داخل الكلاس
كما في المثال التالي :

class MyClass {
    const MY_CONSTANT = 10;

    public static function myFunction() {
        return "Hello";
    }
}

echo MyClass::MY_CONSTANT;
echo MyClass::myFunction();

اولا قمنا باستخدامه للوصول الى الثابت MY_CONSTANT الموجودة داخل الكلاس MyClass

ثم استخدمناه ايضا لاستدعاء الدالة myFunction الموجودة في الكلاس MyClass

و ماهو 
-> arrow operator 

يستخدم للوصول إلى الخصائص والدوال لكائنات الكلاس
كمثال

class Person {
    public $name;

    public function sayHello() {
        return "Hello, my name is " . $this->name;
    }
}

$person = new Person();
$person->name = "John";
echo $person->sayHello(); // يُطبع "Hello, my name is John"

اولا استخدمناه للوصول الى الخاصية name   وتعيين القيمة John لها 

ثم استخدمناها ايضا لاستدعاء الدالة sayHello الموجودة في الكلاس Person

بالتوفيق لك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

ال "methods chaining" أو "سلسلة الدوال" هو عبارة عن أسلوب يتيح لنا استدعاء سلسلة من الدوال على كائن واحد دون الحاجة إلى تخزين النتيجة بين كل استدعاء، وفي إطار العمل Laravel نجد أن العديد من الدوال ترجع `$this`، وهذا يعني أنها تعود بالكائن نفسه بعد الانتهاء من تنفيذ الدالة، مما يسمح بمواصلة استدعاء الدوال الأخرى على الكائن نفسه بسلاسة.أما بخصوص العلامة "::" في PHP، فهي تستخدم لاستدعاء الدوال الثابتة (static methods) والثوابت (constants) من داخل الصنف (class) بدون الحاجة لإنشاء كائن من الصنف، انظر لهذا المثال:

class MyClass {
    public static function myStaticMethod() {
        return "Laravel";
    }
}

echo MyClass::myStaticMethod(); // سيطبع "Laravel"

وأما بالنسبة لعملية "->" فهي تستخدم للوصول إلى خصائص الكائنات (properties) والدوال ضمن الكائنات (methods)، أو للوصول إلى العناصر في مصفوفة، يمكن أن يتضح الأمر أكثر من خلال هذا المثال:

class MyClass {
    public $name = "Hsoub";

    public function greet() {
        return "Hi, " . $this->name;
    }
}

$obj = new MyClass();
echo $obj->greet(); // سيطبع "Hi, Hsoub"

في حين "->" فهي تستخدم للإشارة إلى أن الدالة تعمل على كائن (Object) معين.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 22 دقائق مضت قال ايمن ميلاد:

في php لمعرفة صلاحيات مستخدم نستخدم جلسات session اما في إطار عمل لارافيل ماذا نستخدم الحظ بعض يستخدم كلاس يسمي Auth

نعم ذلك صحيح وهو ما يعرف بالاستيثاق يمكنك التعمق به اكثر من خلال هذه الدروس والمقالات

https://wiki.hsoub.com/Laravel/authentication

https://io.hsoub.com/laravel/100860-ال-auth-في-laravel

و بالتوفيق لك 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...