أنا بصدد بناء مستودع وكيل _Composer. تتمثل فكرة الخدمة المصغرة في تقديم حزم لغة / ترجمة ديناميكية للقوالب أو المكونات الإضافية من استجابات واجهة برمجة تطبيقات WordPress. الطرق هي كما يلي:
https://api.wordpress.org/translations/plugins/1.0/?slug={slug}&version={version}
إن خدمة _Nodejs_ نفسها ليست سوى وكيل يجب إضافته كـ repository
إلى composer.json
من type:project
. تقوم الخدمة نفسها بإرجاع المفتاح providers-url
كجزء من الملف packages.json
(الذي تم إنشاؤه ديناميكيًا).
"providers-url" : "/" + request.params.scope + "/providers/%package%$%hash%.json"
للحصول على مثال ، يرجى الاطلاع على التالي composer.json
:
{
"name" : "vendor/testproject",
"type" : "wordpress-project",
"minimum-stability" : "dev",
"repositories" : [
{
"type" : "composer",
"url" : "https://{unique-ID}.ngrok.io/test"
}
]
}
حتى الآن يمكنني فقط رؤية الطلبات إلى /endpoint/packages.json
، لكن بدون أي معلمات. في عالم مثالي ، يرسل الملحن عبر حزم required
، إما كرأس أو كمعلمة استعلام.
لقد بحثت بالفعل (واختبرت) من خلال جميع الخيارات المتاحة لمحاولة _fake_ طريقي عبر النظام للحصول على الحزمة المطلوبة بطريقة ما: type:{composer|vcs|…}
. هل هناك طريقة لتحقيق ذلك؟ أو هل هناك على الأقل _will_ لقبول PR لتنفيذ هذا - جنبًا إلى جنب مع علامة إضافية لتمكين هذا السلوك؟
_ ملاحظة بخصوص الخدمات المستضافة: يمكن أن يكون هناك مزيج من خيارات notify-batch
و request/require
لجمع بعض الإحصائيات حول المستودعات التي تم البحث عنها والتي تم جلبها بالفعل. قد يسمح هذا الأسلوب باستهداف حزم "التخزين المؤقت" بشكل أفضل.
هذا غير ممكن في الوقت الحالي ، وأشك في أنه سيكون لبعض الوقت .. ربما في الإصدار 2.0 بمجرد إعادة تشكيل عناصر البلياردو يمكننا تحقيق ذلك. سأترك مفتوحًا الآن ولكن لا تحبس أنفاسك :)
@ الكحول أعتقد أنه يمكنك ضبط الملصقات الآن :)
الإغلاق لأنني لا أرى أن هذا يحدث حقًا ، فقد يكون ممكنًا باستخدام البيانات الوصفية v2 (المسار # 8248 إذا كنت مهتمًا بمزيد من التفاصيل) حيث يمكنك القيام بـ metadata-url: "/p2/%package%.json"
هناك وسيتم استدعاء جميع الحزم المطلوبة واحدة من خلال واحد ، ولكن يمكنك فقط إرجاع البيانات الخاصة باسم الحزمة وليس الحزم الأخرى ، لذلك لست متأكدًا من أنها تساعدك حقًا.
يتيح لك إنشاء حزم سريعًا إلى حد ما ، لذلك يمكنك جعل المكونات الإضافية تتطلب foo/plugin-translations-en
ثم تأكد من أنك تقوم دائمًا بإرجاع حزمة للتأكد من أنها قابلة للتثبيت ، إما حزمة تحتوي على ترجمات صالحة بالداخل أو حزمة وصفية فارغة لا تثبت شيئًا في حالة عدم توفر ترجمات؟
التعليق الأكثر فائدة
هذا غير ممكن في الوقت الحالي ، وأشك في أنه سيكون لبعض الوقت .. ربما في الإصدار 2.0 بمجرد إعادة تشكيل عناصر البلياردو يمكننا تحقيق ذلك. سأترك مفتوحًا الآن ولكن لا تحبس أنفاسك :)