كيفية استخدام وظيفة المساعد المخصصة في Laravel؟

سنشرح لك في هذا الدرس كيفية استخدام دالة مساعدة مخصصة في Laravel. الوظيفة المساعدة هي ...

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

عندما تقوم بإنشاء دالة مساعدة ، فإنك تعطيها اسمًا وتوقيعًا للوظيفة. توقيع الوظيفة هو مجموعة من المتطلبات التي يجب أن تفي بها وظيفتك. الاسم اختياري ، ولكنه مفيد عندما تريد تذكر وظيفة الوظيفة

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

بعد ذلك ، تحتاج إلى تضمين الوظيفة في رمز التطبيق الخاص بك. للقيام بذلك ، يمكنك استخدام وظيفة الاستخدام. تأخذ وظيفة الاستخدام وسيطين. اسم الوظيفة والمسار إلى الوظيفة

أخيرًا ، تحتاج إلى استدعاء الوظيفة. للقيام بذلك ، يمكنك استخدام وظيفة الاتصال. تأخذ وظيفة الاستدعاء وسيطين. اسم الوظيفة ، والوسيطات التي تتوقعها الدالة

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

لاستخدام وظيفة مساعد حساب المستخدم ، قم أولاً بتضمين وظيفة مساعد حساب المستخدم في مساحة اسم التطبيق الخاص بك. للقيام بذلك ، يمكنك استخدام وظيفة التضمين. تأخذ وظيفة التضمين وسيطين. اسم الملف الذي تريد تضمينه ومسار الملف

بعد ذلك ، تحتاج إلى تضمين وظيفة مساعد حساب المستخدم في رمز التطبيق الخاص بك. للقيام بذلك ، يمكنك استخدام وظيفة الاستخدام. تأخذ وظيفة الاستخدام وسيطين. اسم الوظيفة والمسار إلى الوظيفة

أخيرًا ، تحتاج إلى استدعاء وظيفة مساعد حساب المستخدم. للقيام بذلك ، يمكنك استخدام وظيفة الاتصال. تأخذ وظيفة الاستدعاء وسيطين. اسم الوظيفة ، والوسيطات التي تتوقعها الدالة

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

تنشئ هذه الحزمة ملفات مساعدة تسمح لـ IDE الخاص بك بتقديم تكملة تلقائية دقيقة. نظرًا لأن الإنشاء يعتمد على الملفات الموجودة في مشروعك ، فإنه دائمًا ما يكون محدثًا

وهو متوافق مع Laravel 8 و PHP 7. 3+

التركيب

استخدم الأمر التالي لطلب هذه الحزمة مع الملحن

composer require --dev barryvdh/laravel-ide-helper

تستخدم هذه الحزمة آلية الاكتشاف التلقائي للحزمة في Laravels ، مما يعني أنه لن يتم تحميلها إذا لم يتم تثبيت تبعيات dev في الإنتاج

إذا كنت تريد التحكم في هذا يدويًا لأي سبب من الأسباب ،

  • في
    public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    2 ، أضف الحزمة إلى مفتاح
    public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    1 ، e. g

    "extra": {
      "laravel": {
        "dont-discover": [
          "barryvdh/laravel-ide-helper"
        ]
      }
    }

  • في
    public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    4 ، أضف الفئة التالية إلى مجموعة
    public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    3

    Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

    إذا كنت تريد فقط تحميله يدويًا في بيئات غير إنتاجية ، فيمكنك استخدام طريقة
    public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    6 لإضافته إلى
    public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    5

    public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }

ملحوظة. يجب تجنب التخزين المؤقت للتكوين في بيئة التطوير الخاصة بك لأنه قد يتسبب في حدوث مشكلات بعد تثبيت هذه الحزمة ؛

إستعمال

تحقق من فيديو Laracasts هذا للحصول على نظرة عامة / شرح

  • public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    8 -
  • public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    9 -
  • public function register()
    {
        if ($this->app->isLocal()) {
            $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
        }
        // ...
    }
    30 -

ملحوظة. يتطلب نص Sublime CodeComplice. https. // جيثب. كوم / نظارات / CodeComplice

إنشاء PHPDoc لواجهات Laravel مؤتمت

يمكنك الآن إنشاء الوثائق بنفسك (للتحديثات المستقبلية)

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
3

ملحوظة. نظرًا لأنه يجب مسح

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
31 أولاً ، قم بتشغيل
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
32 قبل الإنشاء

سيؤدي هذا إلى إنشاء الملف

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
33 ، والذي من المتوقع أن يتم تحليله بشكل أكبر بواسطة IDE الخاص بك للإكمال التلقائي. يمكنك تغيير اسمه باستخدام التكوين
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
34

يمكنك تعيين

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
2 الخاص بك للقيام بذلك في كل مرة يتم فيها تحديث تبعياتك

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
0

يمكنك أيضًا نشر ملف التكوين لتغيير عمليات التنفيذ (على سبيل المثال. g. واجهة لفئة معينة) أو تعيين الإعدادات الافتراضية

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
36

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
2

يحاول المولد تحديد الفئة الحقيقية ، ولكن إذا لم يتم العثور عليها ، يمكنك تحديدها في ملف التكوين

تتطلب بعض الفئات اتصال قاعدة بيانات وظيفي. سيتم استبعاد بعض الواجهات إذا لم يكن لديك اتصال عمل افتراضي. بتضمين خيار

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
37 ، يمكنك استخدام برنامج تشغيل SQLite في الذاكرة

لديك خيار تضمين الملفات المساعدة. لا يتم تمكين هذا افتراضيًا ، ولكن يمكن تعطيله باستخدام الخيار

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
38. تم تكوين
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
39 بالفعل ، ولكن يمكنك إضافة / إزالة الملفات من ملف التكوين

يتم إنشاء PHPDoc لوحدات الماكرو والخلطات تلقائيًا

يمكن لهذه الحزمة إنشاء PHPDocs لوحدات الماكرو والمزج وإضافتها إلى ملف

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
33

ومع ذلك ، لا يعمل هذا إلا إذا تم استخدام تلميحات الكتابة عند التصريح عن ماكرو

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
7

PHPDocs التلقائي للنماذج

يمكنك استخدام الأمر

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
9 لإنشاء PHPDocs استنادًا إلى أعمدة الجدول والعلاقات والأرقام / المحددات إذا كنت لا تريد كتابة الخصائص الخاصة بك

ملحوظة. لفحص جدول كل نموذج ، يتطلب هذا الأمر اتصال قاعدة بيانات عامل

يُطلب منك الكتابة فوق ملف منفصل أو الكتابة إليه افتراضيًا (

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
02). يمكنك إما كتابة التعليقات مباشرة إلى ملف النموذج الخاص بك باستخدام الخيار
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
03 ، أو إجبارها على عدم كتابتها باستخدام الخيار
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
04

بدلاً من ذلك ، سيؤدي استخدام

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
05 إلى إضافة علامة mixin إلى ملف النموذج الخاص بك ، مع كتابة الباقي باللغة (
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
02). سيكون اسم الفئة مميزًا عن اسم النموذج ، متجنبًا إزعاج تكرارات IDE

يرجى عمل نسخة احتياطية من النماذج الخاصة بك قبل إدخال المعلومات

عند تحرير النماذج ، احتفظ بالتعليقات الموجودة وأضف خصائص / طرقًا جديدة فقط. إذا تعذر العثور على PHPDoc الحالي ، فسيتم استبداله أو إضافته. يتم تجاهل PHPDocs الحالية عند استخدام الخيار

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
07 ، ويتم حفظ الأعمدة / العلاقات المكتشفة حديثًا فقط كمحرر PHPDocs

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
5

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
6

مع خيار

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
05

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
0

أدلة النموذج

يتم فحص النماذج الموجودة في

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
09 افتراضيًا. تحدد الوسيطة الاختيارية النماذج التي يجب استخدامها (أيضًا خارج التطبيق / النماذج)

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
1

يمكنك أيضًا مسح دليل مختلف بتحديد

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
20 (نسبة إلى المسار الأساسي)

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
2

يمكنك جعل ملف التكوين (

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
21) عامًا وتعيين الدلائل الافتراضية

تجاهل النماذج

يمكن تجاهل النماذج بتحديد

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
22

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
3

بدلاً من ذلك ، يمكن تجاهل تكوين

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
23

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
4

السحر
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
24 طريقة

يسمح لك Eloquent بالاتصال بـ

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
25 على نماذجك ، على سبيل المثال. g. g.
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
26 ويحولها تلقائيًا إلى e. g.
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
27

إذا كنت لا تريد إنشاءها (واحد لكل عمود) ، فيمكنك تعطيلها عن طريق تحرير التكوين

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
28 وتغييره إلى
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
29

السحر
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
70 خاصية

يمكنك استخدام الطريقة لحساب عدد نتائج العلاقة دون تحميلها فعليًا. ثم يتم تخصيص هذه النتائج للسمات وفقًا لاتفاقية

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
72

يتم إنشاء هذه السمات افتراضيًا في ملف phpdoc. يمكنك تعطيلها عن طريق تغيير التكوين

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
73 إلى
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
29

دعم
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
75 بناءً على DocBlock

يمكن للعلاقات والمكتسبات / المحددات أيضًا إضافة تعليق إلى خاصية مثل أعمدة الجدول لدعم IDEs بشكل أفضل. نتيجة لذلك ، يتم استخدام docblock المخصص

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
75

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
5

أساليب Eloquent Builder المخصصة

تمتلك نماذج Eloquent الآن طريقة جديدة تسمى

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
77 Reference ، والتي تتيح لنا إضافة دعم لإنشاء فئة مخصصة جديدة بدلاً من استخدام النطاقات المحلية في النموذج نفسه

إذا كنت لا ترغب في إنشائها (واحد لكل عمود) ، يمكنك تعطيلها عن طريق تحرير التكوين

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
78 وتغيير القيمة إلى
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
29

أنواع قواعد البيانات غير المدعومة أو المخصصة

أنواع الأعمدة الشائعة (مثل. g. تم تعيين أنواع PHP (varchar ، عدد صحيح) بشكل صحيح (

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
50 ،
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
51)

ومع ذلك ، قد ترغب في استخدام أنواع الأعمدة المخصصة في قاعدة البيانات الخاصة بك مثل

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
52 و
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
53 و
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
54 و
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
55 وما إلى ذلك. مما قد ينتج عنه "نوع قاعدة بيانات غير معروف" - استثناء

يمكنك تعيين تلك الحالات الخاصة باستخدام التكوين

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
56. مثال

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
6

أنواع العلاقات المخصصة

إذا كنت تستخدم علاقات غير مضمنة في Laravel ، يجب عليك تحديد الاسم والصنف المرتجع في التكوين لضمان الإنشاء الصحيح

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
7

عادةً ما تُنشئ العلاقات التي تم العثور عليها قيمة مرتجعة بناءً على اسم العلاقة

إذا كانت علاقاتك المخصصة لا تلتزم باتفاقية التسمية هذه ، يمكنك تحديد نوع الإرجاع يدويًا. هناك خياران.

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
57 و
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
58

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
8

نموذج خطاف

إذا كنت تحتاج إلى معلومات إضافية عن النموذج الخاص بك من مصادر لا يتم التعامل معها افتراضيًا ، فيمكنك استخدام أدوات ربط النموذج لإضافة معلومات إضافية أثناء التنقل. ما عليك سوى إنشاء فئة تنفذ

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
59 وإضافتها إلى مصفوفة التكوين
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
60

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
9

يتم استدعاء طريقة

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
61 أثناء إنشاء النموذج واستقبال التشغيل الحالي
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
62 و
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
63 ، e. g

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
0

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
1

يتم إنشاء PHPDocs تلقائيًا لطرق Laravel Fluent

على سبيل المثال ، إذا كنت تحتاج إلى دعم PHPDocs لأساليب Fluent في الترحيل ،

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
2

ما عليك سوى تغيير سطر

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
64 في ملف
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
65 الخاص بك إلى ما بعد نشر البائع

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
3

ثم قم بتشغيل

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
8 ؛

الإكمال التلقائي لبناة المصانع

إذا كنت تريد أساليب

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
67 و
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
68 لإرجاع فئة النموذج الصحيحة ، فقم بتمكين منشئي المصانع المخصصين في ملف
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
65 الخاص بك باستخدام سطر
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
69. مهجور في Laravel 8 وما بعده

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
4

يجب عليك أيضًا نشر ملف PhpStorm Meta (انظر أدناه) حتى يعمل هذا

PhpStorm Meta لمثيلات الحاوية

من الممكن إنشاء ملف تعريف PhpStorm يتضمن دعمًا لنمط تصميم المصنع. بالنسبة إلى Laravel ، هذا يعني أنه يمكننا توجيه PhpStorm إلى نوع الكائن الذي نقوم بحله من حاوية IoC. على سبيل المثال ، سيعيد

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
01 كائن
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
02 ، لذا يمكنك الاتصال بـ
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
03 بملف التعريف وسيُكمل تلقائيًا طرق المرسل

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
5

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
6

ملحوظة. قد تحتاج إلى إعادة تشغيل PhpStorm للتأكد من فهرسة

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
04

ملحوظة. عندما تتلقى FatalException. تحقق من التكوين الخاص بك (على سبيل المثال ، قم بإزالة S3 كبرنامج تشغيل سحابي إذا لم يكن لديك S3 مهيأ). قم بإزالة Redis ServiceProvider عند عدم استخدامه. )

يمكن تغيير اسم الملف الذي تم إنشاؤه باستخدام التكوين

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
05. هذا مفيد إذا كنت تريد الاستفادة من دعم PhpStorm للدليل
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
06. إذا كنت ترغب في تقديم ملفات إضافية إلى PhpStorm ، فسيتم تحليل جميع الملفات الموضوعة هناك

الاستخدام مع Lumen

هذه الحزمة مخصصة بشكل أساسي لتطوير Laravel ، ولكن يمكن استخدامها أيضًا في Lumen مع بعض التعديلات. نظرًا لأن Lumen يعمل بشكل مختلف عن Laravel وتقع معلمات التكوين الرئيسية بدلاً من ذلك في

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
07 ، فإن بعض التعديلات مطلوبة

واجهات التمكين

بينما يمكن لـ Laravel IDE Helper إنشاء واجهات افتراضية لتلميحات التعليمات البرمجية ، فإن Lumen لا يأتي مع واجهات ممكنة. إذا كنت تنوي استخدامها ، فيجب عليك تمكينها عن طريق إلغاء التعليق على هذا السطر في قسم

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
08

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
7

يجب أن تكون قادرًا بعد ذلك على استخدام وظيفة

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
09 لإضافة المزيد من الواجهات إلى تطبيقك

إضافة مقدم الخدمة

تثبيت Laravel IDE Helper في

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
10 وإلغاء التعليق على السطر الذي يسجل مزودي خدمة التطبيق سيسمح له بالتحميل بشكل صحيح

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
8

إذا كنت لا تستخدم هذا السطر ، والذي عادة ما يكون مفيدًا لإدارة عمليات تثبيت Laravel / Lumen المتعددة بأمان ، فستحتاج إلى إضافة هذا السطر من التعليمات البرمجية ضمن قسم

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
11 من ملف
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
07 الخاص بك

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
9

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

إضافة واجهات إضافية

لا يأخذ Lumen IDE Helper حاليًا واجهات إضافية تم إنشاؤها بموجب

"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
07 باستخدام
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
09 في الاعتبار ، لذلك يجب عليك إنشاء ملف
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
4 وإضافة الأسماء المستعارة المخصصة ضمن مصفوفة
"extra": {
  "laravel": {
    "dont-discover": [
      "barryvdh/laravel-ide-helper"
    ]
  }
}
16 مرة أخرى ، كما هو موضح أدناه

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
0

يوصى (ولكن ليس مطلوبًا) بإعادة تسمية

public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
4 إلى شيء آخر بعد تشغيل
public function register()
{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}
8 ، حتى تحتاج إلى إعادة إنشاء المستندات أو بعد المرور إلى بيئة الإنتاج. التجويف 5. إذا كان هذا الملف موجودًا ، فسوف يقرأه 1 للتعرف على معلمات التكوين وقد يتداخل مع بعض التكوينات إذا تم ملؤه بالكامل

كيف أستخدم وظيفة مساعد Laravel؟

تابعني من خلال النقر على ملفي الشخصي لتلقي المزيد من التحديثات. .
الخطوة 1. إنشاء ملف مساعد. قم بإنشاء ملف يسمى المساعدين في التطبيق / الدليل. بي أتش بي
الخطوة 2. اكتب وظيفة المساعد
الخطوه 3. قم بتضمينه في الملحن الخاص بنا. json. .
الخطوة 4. قم بتحديث قائمة التطبيق لجميع الفئات. الملحن تفريغ التحميل التلقائي

في Laravel Blade ، كيف تستدعي دالة مساعدة مخصصة؟

وظيفة مساعد مخصصة لـ Laravel مع مثال من العالم الحقيقي .
أنشئ مشروع Laravel. أفترض أنك قمت بالفعل بتثبيت Laravel باستخدام الملحن. .
لإنشاء وظيفة مساعد مخصصة ، قم بإنشاء ملف مساعد. .
قم بإنشاء موفر. .
إضافة موفر إلى التكوين. .
اتصل من المراقب. .
الاتصال من العرض (بليد)

كيف تكتب دالة مساعدة في Laravel 9؟

كيفية إنشاء وظيفة مساعدة مخصصة لـ Laravel 9 .
الخطوة 1. إنشاء مساعدين. ملف php. في هذه الخطوة ، سننشئ التطبيق / المساعدين. .
الخطوة 2. في الملحن ، أضف مسار ملف مساعد. ملف json. في الملحن ، الصق الكود أدناه
الخطوه 3. الأمر Run. قم بتشغيل أمر composer dump-autoload في جهازك الطرفي الآن

John Conner
John Conner
John Conner has written about blogger for more than 5 years and for congnghe123 since 2017

Member discussion

       

Related Posts