تعرف على كيفية توزيع حزم PHP الخاصة بك مع Packagist

لقد طورت حزمة PHP جميلة وضعت فيها قلبك وروحك وتفخر بها. حان الآن وقت التوزيع ، وأحد الأجزاء الرئيسية هو ضمان تزويد الآخرين بأسهل طريق ممكن لتنزيل الحزمة الخاصة بك واستخدامها ، ولكن كيف؟

لحسن الحظ ، يوجد Packagist لهذا المستودع الفعلي المجاني لجميع تبعيات حزم PHP. تعرف على كيفية إدراج حزمة PHP الخاصة بك في Packagist ، مما يسمح للآخرين بتنزيلها وتثبيتها بأمر واحد.

هيكلة الحزمة الخاصة بك بشكل صحيح

قبل التوزيع ، يجب هيكلة الحزمة الخاصة بك بشكل صحيح ويجب أن تستخدم مساحات الأسماء. حدد مساحة اسم الجذر لحزمتك. يمكن أن يكون هذا أي شيء تريده ، ولكن يُنصح عمومًا باستخدام Author PackageName .

على سبيل المثال ، فإن مساحة الاسم JSmith BlogPoster ستعلم الآخرين بأن مطور الحزمة يحمل الاسم Jsmith وهذه الحزمة تسمى BlogPoster .

مع تحديد مساحة اسم الجذر ، قم بإنشاء دليل / src / في مشروعك ، وانقل جميع ملفات PHP إليه. يجب أن يحتوي كل ملف على الإعلان الصحيح في الجزء العلوي ، لذلك يجب أن تبدأ جميع ملفات PHP داخل الدليل / src / :

 
<?php
namespace JSmithBlogPoster;

إعلان مساحة الاسم متعلق ببنية الدليل. على سبيل المثال ، إذا كان لديك ملف على /src/Images/Uploader.php ، فستجد في أعلى الملف:

 
<?php
namespace JSmithBlogPosterImages;
class Uploader
{
}

أخيرًا ، تأكد من أن إعلان الفئة لجميع ملفات PHP هو نفسه اسم الملف ، كما يوضح المثال أعلاه. ملف Uploader.php له اسم الفئة رافع .

قم بتسجيل حساب Packagist

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

لست بحاجة إلى فعل أي شيء باستخدام حساب Packagist حتى الآن ، ولكن من المفيد أن تكون جاهزًا.

قم بإنشاء ملف composer.json

افتح محرر نصوص ، وداخل الدليل الجذر لمشروعك ، أنشئ ملف composer.json ، مع استخدام المحتويات التالية كمثال:

 
{
"name": "jsmith/blogposter",
"description": "An excellent blog posting package...",
"type": "package",
"homepage": "https://yourdomain.com",
"license": "MIT",
"require": {
"php": ">=8.0.0"
},
"autoload": {
"psr-4": {
"JSmithBlogPoster": "src/"
}
}
}

لا يوجد سوى جانبين مهمين من الملف أعلاه للإحاطة بهما.

الأول هو عنصر الاسم في الأعلى. يجب أن يكون هذا عبارة عن سلسلتين مفصولة بشرطة مائلة للأمام ، الأول هو اسم مستخدم Packagist الخاص بك ، والثاني هو الاسم المطلوب للحزمة. باستخدام المثال أعلاه ، اسم مستخدم Packagist هو jsmith ، واسم الحزمة هو blogposter .

ثانيًا ، في الجزء السفلي من قسم التحميل التلقائي ، ستلاحظ السطر:

 "JSmithBlogPoster": "src/"

قم بتعديل هذا السطر بحيث تشير مساحة اسم الجذر التي حددتها مسبقًا إلى الدليل / src /. عندما يتم تثبيت الحزمة الخاصة بك بواسطة شخص آخر ، سيقوم Composer تلقائيًا بتعيين مساحة اسم الجذر الخاصة بك إلى الدليل الفرعي الذي تم تثبيت الحزمة فيه.

قم بتحميل الحزمة الخاصة بك على جيثب

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

تأكد من تحميل حزمة PHP بالكامل بما في ذلك جميع الملفات داخل / src / وملف composer.json. إذا كنت ترغب في تحميل دليل المشروع بالكامل على GitHub ، فافتح Terminal داخل دليل المشروع الخاص بك وقم بتشغيل:

 git add ./*
git commit -m "Initial commit"
git push -u origin master

يجب أيضًا إضافة علامة إلى مستودع GitHub ، لأن العلامات هي الطريقة التي يتتبع بها Packagist الإصدارات وأرقام إصدارات الحزم الخاصة بك. لتمييز المستودع الحالي كـ v0.1 ، قم بتشغيل الأوامر:

 git tag 0.1
git push --tags

أضف قائمة PHP على Packagist

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

 https://github.com/jsmith/blogposter.git

اضغط على زر التحقق من الإرسال ، وسيقوم Packagist بتنزيل ملف composer.json من مستودعك ، بالإضافة إلى أي علامات / إصدارات متوفرة ومعلومات أخرى.

ستؤكد الصفحة التالية رغبتك في نشر الحزمة ؛ بمجرد التأكيد ، ستتمكن من عرض قائمة Packagist الجديدة الخاصة بك على عنوان URL مثل:

 https://packagist.org/packages/jsmith/blogposter

تثبيت الحزمة الخاصة بك مع الملحن

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

 sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

قم بإنشاء دليل جديد ، وداخله قم بتشغيل الأمر:

 composer require jsmith/blogposter

سيعمل الملحن على سحره ، وستلاحظ ظهور دليل جديد / vendor / فرعي ، والذي إذا نظرت بداخله ، سترى حزمة PHP الخاصة بك!

جربه وقم بتحميل حزمة PHP الخاصة بك. باستخدام المثال أعلاه ، إذا كان هناك ملف /src/Blogger.php في الحزمة ، فسيكون نص الاختبار السريع لتحميله:

 
<?php
use JSmithBlogPosterBlogger;
// Load composer dependences
require("./vendor/autoload.php");
// Get blogger
$client = new Blogger();
echo "Got a " . $client::class . "
";

انطلق إلى الأمام وشارك مع العالم

لقد تعلمت الآن مدى سهولة هيكلة حزمة PHP الخاصة بك بشكل مناسب ، وإدراجها في Packagist مما يسمح لأي شخص في العالم بتنزيل الحزمة الخاصة بك على الفور وتضمينها في مشروعهم بأمر واحد.

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