الملحن - التحميل التلقائي لواجهة برمجة التطبيقات / المثبت المخصص

StackOverflow https://stackoverflow.com//questions/22021512

  •  21-12-2019
  •  | 
  •  

سؤال

كيف أقوم بالتحميل التلقائي لمجموعة من وظائف API للمكتبة مع مكتبة مثبتة على الملحن؟

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

يتم حاليًا تحميل المكتبة عن طريق تضمين ملف __init__.php ويتضمن وظائف API وأداة التحميل التلقائي إذا لزم الأمر.

شكرًا!

هل كانت مفيدة؟

المحلول

سيطلب الملحن دائمًا من المطور النهائي تضمين ملف واحد، وهو vendor/autoload.php.لا يمكنك أن تجعل الأمر أسهل.

ولكن ما يمكنك فعله هو تضمين ذلك __init__.php اختياري لأن تكامل Composer يسمح لك باستخدام أداة التحميل التلقائي هذه بدلاً من ذلك.سيعمل هذا أيضًا مع الوظائف التي لا يمكن تحميلها تلقائيًا - يعرض Composer تضمين ملف دائمًا إذا طُلب منه ذلك.

لذا في النهاية، سيبدو تكوين Composer الخاص بمكتبة API كما يلي:

{
    "name": "yourvendorname/yourfancylibraryname",
    "license": "any open source identifier",
    "autoload": {
        "psr-0": {
            "Foo_Api": "src/files"
        },
        "classmap": [
            "extra/folders_with_any_other_class_not_conforming_to_psr0_or_psr4"
        ],
        "files": [
            "functions/file_with_your_function_definitions.php"
        ]
    }
}

لا أعرف ما إذا كانت فصولك تتوافق مع PSR-0 أو حتى PSR-4، ولكن إذا كانت كذلك، فستستفيد أنت والجميع إذا تمكنت من الإعلان عن أداة التحميل التلقائي بهذه المعايير.ان لم:سوف يساعدك Classmap.

سيتم تحميل تعريف وظيفتك بواسطة الملف أو الملفات المذكورة في "الملفات".

لم تعد بحاجة إلى أداة التحميل التلقائي الخاصة بك لـ Composer.

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

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