انتقل إلى المحتوى

Composer

لنشر package بلغة PHP بصيغة Composer على ليڤانت غيت (LevantGit)، اضغط مشروعك في أرشيف zip يحوي ملف composer.json، وارفعه بطلب PUT عبر curl مع access token بصلاحية package — فلا يوجد أمر composer publish. ولاستخدام الحزمة، أضف الـ registry إلى مشروعك ثم نفّذ composer require.

ملاحظة

الـ package registry متاح إن كان مفعّلاً على levantgit.com؛ تظهر تبويبة Packages في ملفك الشخصي أو في الـ repository عندها.

ما تحتاج إليه

  • Composer لتثبيت الـ packages.
  • عميل HTTP مثل curl لرفعها (لا يوجد أمر composer publish).
  • اسم المستخدم وكلمة المرور، أو access token من إعدادات الحساب: SettingsApplications، بصلاحية package. إن كنت تستخدم 2FA أو OAuth فاستخدم الـ access token بدل كلمة المرور.

نشر package

النشر طلب HTTP من نوع PUT يحمل محتوى الـ package في جسمه. المحتوى هو مشروع PHP مضغوطًا بصيغة zip ويحوي ملف composer.json.

لا يمكن نشر package إن كانت أخرى بالاسم نفسه والإصدار نفسه موجودة؛ احذف القديمة أولًا.

PUT https://levantgit.com/api/packages/{owner}/composer
المعامل الوصف
owner الـ owner: اسم المستخدم أو الـ organization.

إن لم يحوِ composer.json خاصية version، فمرّر الإصدار كمعامل استعلام:

PUT https://levantgit.com/api/packages/{owner}/composer?version={x.y.z}

مثال بالمصادقة الأساسية (HTTP Basic):

curl --user your_username:your_password_or_token \
     --upload-file path/to/project.zip \
     https://levantgit.com/api/packages/testuser/composer

أو مع تحديد الإصدار:

curl --user your_username:your_password_or_token \
     --upload-file path/to/project.zip \
     https://levantgit.com/api/packages/testuser/composer?version=1.0.3

يردّ الخادم بأحد رموز الحالة التالية:

رمز الحالة المعنى
201 Created نُشرت الـ package.
400 Bad Request الـ package غير صالحة.
409 Conflict توجد package بالاسم والإصدار نفسيهما.

ضبط الـ registry في Composer

أضف الـ registry إلى ملف config.json الخاص بـ Composer (عادةً في <user-home-dir>/.composer/config.json):

{
  "repositories": [{
      "type": "composer",
      "url": "https://levantgit.com/api/packages/{owner}/composer"
   }
  ]
}

وللوصول ببيانات دخول (ضروري للـ packages الخاصة) أضفها إلى ملف auth.json:

{
  "http-basic": {
    "levantgit.com": {
      "username": "{username}",
      "password": "{password}"
    }
  }
}
المعامل الوصف
owner الـ owner.
username اسم المستخدم في ليڤانت غيت.
password كلمة المرور أو الـ access token.

نصيحة

لا تضع auth.json في أي commit داخل الـ repository؛ أضفه إلى ملف .gitignore.

تثبيت package

composer require {package_name}

ويمكنك تحديد الإصدار:

composer require {package_name}:{package_version}
المعامل الوصف
package_name اسم الـ package كما في composer.json (مثل vendor/name).
package_version إصدار الـ package.

ماذا بعد؟


هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.