قم بإعداد PHP مع الملحقات المطلوبة وتكوين php.ini ودعم تغطية التعليمات البرمجية وأدوات متنوعة مثل الملحن في GitHub Actions. يمنحك هذا الإجراء واجهة مشتركة بين الأنظمة الأساسية لإعداد بيئة PHP التي تحتاجها لاختبار تطبيقك. ارجع إلى قسم الاستخدام والأمثلة لمعرفة كيفية استخدام هذا.
يتم دعم كل من برامج التشغيل المستضافة self-hosted GitHub-hosted بواسطة setup-php على أنظمة التشغيل/الأنظمة الأساسية التالية.
| البيئة الافتراضية | تسمية سير العمل YAML | PHP مثبتة مسبقًا |
|---|---|---|
| أوبونتو 24.04 | ubuntu-24.04 | PHP 8.3 |
| أوبونتو 22.04 | ubuntu-latest أو ubuntu-22.04 | PHP 8.1 |
| أوبونتو 20.04 | ubuntu-20.04 | PHP 7.4 إلى PHP 8.3 |
| ويندوز سيرفر 2022 | windows-latest أو windows-2022 | PHP 8.3 |
| ويندوز سيرفر 2019 | windows-2019 | PHP 8.3 |
| ماك سيكويا 15.x | macos-15 | - |
| ماك سونوما 14.x | macos-latest أو macos-14 | - |
| ماك فينتورا 13.x | macos-13 | PHP 8.3 |
| نظام التشغيل المضيف/البيئة الافتراضية | تسمية سير العمل YAML |
|---|---|
| أوبونتو 24.04 | self-hosted أو Linux |
| أوبونتو 22.04 | self-hosted أو Linux |
| أوبونتو 20.04 | self-hosted أو Linux |
| ديبيان 12 | self-hosted أو Linux |
| ديبيان 11 | self-hosted أو Linux |
| ويندوز 7 وأحدث | self-hosted أو Windows |
| ويندوز سيرفر 2012 R2 وأحدث | self-hosted أو Windows |
| ماك سيكويا 15.x x86_64/arm64 | self-hosted أو macOS |
| ماك سونوما 14.x x86_64/arm64 | self-hosted أو macOS |
| ماك فينتورا 13.x x86_64/arm64 | self-hosted أو macOS |
setup-php بالتبديل إليه، وإلا فإنه يقوم بتثبيت إصدار PHP. على جميع أنظمة التشغيل/الأنظمة الأساسية المدعومة، يمكن إعداد إصدارات PHP التالية وفقًا للمشغل.
| نسخة PHP | استقرار | دعم الإصدار | دعم العداء |
|---|---|---|---|
5.3 | Stable | End of life | GitHub-hosted |
5.4 | Stable | End of life | GitHub-hosted |
5.5 | Stable | End of life | GitHub-hosted |
5.6 | Stable | End of life | GitHub-hosted ، self-hosted |
7.0 | Stable | End of life | GitHub-hosted ، self-hosted |
7.1 | Stable | End of life | GitHub-hosted ، self-hosted |
7.2 | Stable | End of life | GitHub-hosted ، self-hosted |
7.3 | Stable | End of life | GitHub-hosted ، self-hosted |
7.4 | Stable | End of life | GitHub-hosted ، self-hosted |
8.0 | Stable | End of life | GitHub-hosted ، self-hosted |
8.1 | Stable | Security fixes only | GitHub-hosted ، self-hosted |
8.2 | Stable | Active | GitHub-hosted ، self-hosted |
8.3 | Stable | Active | GitHub-hosted ، self-hosted |
8.4 | Stable | Active | GitHub-hosted ، self-hosted |
8.5 | Nightly | In development | GitHub-hosted ، self-hosted |
ملحوظات:
8.5 في إدخال php-version إلى تثبيت الإصدار الليلي من PHP 8.5.0-dev . راجع إعداد البناء الليلي لمزيد من المعلومات.PHP 8.0 وما فوق، راجع قسم تكوين JIT. يمكن إعداد امتدادات PHP باستخدام مدخلات extensions . يقبل string بتنسيق CSV.
Ubuntu ، يمكن إعداد الامتدادات المتوفرة كحزمة، والمتاحة على PECL أو مستودع git. - name : Setup PHP with PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : imagick, swoole في Windows ، يمكن إعداد الملحقات المتوفرة على PECL والتي تحتوي على ملف DLL الثنائي.
في macOS ، يمكن إعداد الملحقات المتوفرة على PECL أو مستودع git.
على Ubuntu و macOS لتجميع وتثبيت ملحق من مستودع git، اتبع هذا الدليل.
تم تمكين الإضافات المثبتة مع PHP إذا تم تحديدها.
يمكن إعداد إصدارات محددة من الامتدادات المتوفرة على PECL عن طريق إضافة اسم الامتداد إلى الإصدار. يعد هذا مفيدًا لتثبيت الإصدارات القديمة من الملحقات التي تدعم إصدارات PHP المنتهية.
- name : Setup PHP with specific version of PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 5.4 '
extensions : swoole-1.9.3PECL عن طريق إضافة اسم الامتداد بحالته، مثل alpha أو beta أو devel أو snapshot . - name : Setup PHP with pre-release PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : xdebug-beta على Ubuntu و macOS لتجميع وتثبيت ملحق من PECL مع المكتبات أو التكوين المخصص، اتبع هذا الدليل.
يمكن تعطيل الملحقات المشتركة عن طريق وضع بادئة لها بـ : . سيتم أيضًا تعطيل جميع الملحقات التي تعتمد على الامتداد المحدد.
- name : Setup PHP and disable opcache
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : :opcachenone . عندما لا يتم تحديد none مع الامتدادات الأخرى، يتم رفعه إلى بداية الإدخال. لذا، سيتم تعطيل كافة الامتدادات المشتركة أولاً، ثم ستتم معالجة باقي الامتدادات الموجودة في الإدخال. ملاحظة: يؤدي هذا إلى تعطيل كافة الملحقات المشتركة الأساسية والجهات الخارجية، وبالتالي يمكن أن يعطل بعض الأدوات التي تحتاج إليها. يتم تمكين الامتدادات المطلوبة مرة أخرى عندما يتم إعداد الأدوات على أساس أفضل جهد. لذلك يوصى بإضافة الامتدادات المطلوبة لأدواتك بعد none في إدخال extensions لتجنب أي مشاكل.
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstringintl بإصدار ICU محدد لـ PHP 5.6 وما فوق في سير عمل Ubuntu عن طريق إضافة intl بإصدار ICU . يتم دعم ICU 50.2 والإصدارات الأحدث. ارجع إلى ICU builds للإصدارات المحددة المدعومة. - name : Setup PHP with intl
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : intl-70.1 يمكن العثور على الملحقات التي يتم تحميلها افتراضيًا بعد تشغيل setup-php على الويكي.
تتمتع هذه الإضافات بدعم مخصص:
cubrid و pdo_cubrid على Ubuntu .event و gearman و geos و relay على Ubuntu و macOS .blackfire و couchbase و ioncube و oci8 و pdo_firebird و pdo_oci و pecl_http و phalcon3 و phalcon4 و phalcon5 و zephir_parser على جميع أنظمة التشغيل المدعومة. افتراضيًا، تترك الامتدادات التي لا يمكن إضافتها أو تعطيلها بأمان رسالة خطأ في السجلات، ولا تتم مقاطعة التنفيذ. لتغيير هذا السلوك، يمكنك تعيين علامة fail-fast على true .
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : oci8
env :
fail-fast : true يمكن إعداد هذه الأدوات عالميًا باستخدام إدخال tools . يقبل سلسلة بتنسيق CSV.
behat ، blackfire ، blackfire-player ، box ، castor ، churn ، codeception ، composer ، composer-dependency-analyser ، composer-normalize الملحن، composer-require-checker composer-prefetcher composer-unused ، cs2pr ، deployer ، ecs ، flex ، grpc_php_plugin infection parallel-lint pecl phan phing phinx phive php-config php-cs-fixer php-scoper phpcbf phpcpd phpcs phpdoc أو phpDocumentor phpize phplint phpmd phpspec phpstan phpunit phpunit-bridge ، phpunit-polyfills ، pint ، prestissimo ، protoc ، psalm ، rector ، symfony أو symfony-cli ، vapor أو vapor-cli ، wp أو wp-cli
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer, phpunitvendor/package مطابقة للقائمة الموجودة على Packagist. يقبل هذا التنسيق نفس قيود الإصدار التي يقبلها composer . - name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : vimeo/psalm لإعداد إصدار معين من الأداة، حدده في النموذج tool:version .
يمكن أن يكون الإصدار بالتنسيق التالي:
tool:1.2.3 أو tool:1.2.3-beta1 .tool:1 أو tool:1.x .tool:1.2 أو tool:1.2.x . عند تحديد الإصدار الرئيسي فقط أو الإصدار بتنسيق major.minor ، سيتم إعداد أحدث إصدار تصحيح مطابق للإدخال.
باستثناء الإصدارات الرئيسية من composer ، إذا قمت بتحديد الإصدار major فقط أو الإصدار بتنسيق major.minor لأداة، فيمكنك الحصول على معدل محدود بواسطة واجهة برمجة تطبيقات GitHub. لتجنب ذلك، يوصى بتوفير رمز GitHub OAuth المميز. يمكنك القيام بذلك عن طريق تعيين متغير البيئة GITHUB_TOKEN . تم إهمال متغير البيئة COMPOSER_TOKEN لصالح GITHUB_TOKEN وستتم إزالته في الإصدار الرئيسي التالي.
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer:3.64, phpunit:11.4
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}composer افتراضيًا. يمكنك إعداد إصدار composer المطلوب عن طريق تحديد الإصدار الرئيسي v1 أو v2 ، أو الإصدار بتنسيق major.minor أو semver . بالإضافة إلى ذلك، يمكن أيضًا تحديد snapshot الملحن preview لإعداد الإصدارات المعنية. - name : Setup PHP with composer v2
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : composer:v2tools: none لتخطيها. - name : Setup PHP without composer
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : none يتم إعداد الأدوات pear و pecl و phpize و php-config افتراضيًا لجميع إصدارات PHP المدعومة على Linux وmacOS.
يتم إعداد أحدث إصدار من blackfire cli عند تحديد blackfire في إدخال الأدوات. يرجى الرجوع إلى الوثائق الرسمية لاستخدام blackfire مع GitHub Actions.
سيتم تخطي الأدوات prestissimo والجلب composer-prefetcher ما لم يتم تحديد composer:v1 أيضًا في إدخال الأدوات. يوصى بإسقاط prestissimo واستخدام composer v2 .
افتراضيًا، باستثناء أدوات composer التي لا يمكن إعدادها بأمان والتي تترك رسالة خطأ في السجلات، لا تتم مقاطعة التنفيذ. لتغيير هذا السلوك، يمكنك تعيين علامة fail-fast على true .
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : deployer
env :
fail-fast : trueملحوظات
tools الإدخال مفيدة لإعداد الأدوات التي يتم استخدامها فقط في سير عمل CI، وبالتالي الحفاظ على composer.json الخاص بك مرتبًا.--no-dev وتثبيت الأدوات المطلوبة باستخدام إدخال tools لتسريع سير عملك.COMPOSER_NO_INTERACTION على 1 ويتم تعيين COMPOSER_PROCESS_TIMEOUT على 0 . في الواقع، هذا يعني أن أوامر Composer في نصوصك البرمجية لا تحتاج إلى تحديد --no-interaction .COMPOSER_NO_AUDIT على 1 . لذلك، إذا كنت تريد تدقيق تبعياتك بحثًا عن الثغرات الأمنية، فمن المستحسن إضافة خطوة composer audit قبل تثبيتها.COMPOSER_PROCESS_TIMEOUT مختلفًا، فيمكنك تعيينه في ملف سير العمل الخاص بك باستخدام الكلمة الأساسية env . - name : Setup PHP with composer and custom process timeout
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
COMPOSER_PROCESS_TIMEOUT : 300 تحديد coverage: xdebug لاستخدام Xdebug وتعطيل PCOV .
يعمل على جميع إصدارات PHP المدعومة.
- name : Setup PHP with Xdebug
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : xdebugcoverage: xdebug ، يتم إعداد أحدث إصدار من Xdebug المتوافق مع إصدار PHP افتراضيًا.coverage: xdebug2 . - name : Setup PHP with Xdebug 2.x
uses : shivammathur/setup-php@v2
with :
php-version : ' 7.4 '
coverage : xdebug2ملاحظة : يتم تمكين Xdebug افتراضيًا في صور Ubuntu GitHub Actions، لذلك إذا كنت لا تستخدمه في سير العمل الخاص بك، فمن المستحسن تعطيله لأن ذلك سيكون له تأثير إيجابي على أداء PHP الخاص بك. يرجى الرجوع إلى قسم تعطيل التغطية للحصول على التفاصيل.
تحديد coverage: pcov لاستخدام PCOV وتعطيل Xdebug .
يعمل على PHP 7.1 وإصدارات PHP الأحدث.
src أو lib أو app ، فحدد pcov.directory باستخدام إدخال ini-values . - name : Setup PHP with PCOV
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
ini-values : pcov.directory=api # optional, see above for usage.
coverage : pcovpcov/clobber قبل تنفيذ اختباراتك. - name : Setup PCOV
run : |
composer require pcov/clobber
vendor/bin/pcov clobber تحديد coverage: none لتعطيل كل من Xdebug و PCOV .
تعطيل التغطية لهذه الأسباب:
phpdbg لإجراء اختباراتك.blackfire .- name : Setup PHP with no coverage driver
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none تحديد الاستخدام
withالكلمة الأساسية
php-version (اختياري)string . على سبيل المثال '8.4' .lowest لإعداد أقل إصدار PHP مدعوم.highest أو latest لإعداد أحدث إصدار PHP مستقر.nightly لإعداد بنية ليلية من الفرع الرئيسي لـ PHP.dx ، حيث d هو الإصدار الرئيسي. على سبيل المثال 5.x و 7.x و 8.x .php-version-file إذا كان موجودًاcomposer.lock وقيمة platform-overrides.phpcomposer.json وقيمة config.platform.php php-version-file (اختياري)string . على سبيل المثال '.phpenv-version' ..php-version ..php-version الافتراضي، فسيتم إعداد أحدث إصدار PHP ثابت. extensions (اختياري)string بتنسيق CSV. على سبيل المثال mbstring, :opcache .none لتعطيل كافة الملحقات المشتركة.: معطلة.ini-file (اختياري)php.ini الأساسي.production أو development أو none .php.ini . ini-values (اختياري)php.ini .string بتنسيق CSV. على سبيل المثال post_max_size=256M, max_execution_time=180 .xdebug.mode="develop,coverage" . coverage (اختياري)xdebug أو pcov أو none .tools (اختياري)string بتنسيق CSV. على سبيل المثال: phpunit, phpcsphp-version في GitHub Actions، يمكنك تعيين id لخطوة setup-php ، ويمكنك استخدامه للحصول على المخرجات في خطوة لاحقة.
- name : Setup PHP
id : setup-php
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
- name : Print PHP version
run : echo ${{ steps.setup-php.outputs.php-version }}حدد باستخدام الكلمة الأساسية
env
fail-fast (اختياري)false .true false . phpts (اختياري)nts للخيوط غير الآمنة و zts أو ts للخيوط الآمنة.nts .update (اختياري)true false .false .انظر أدناه لمزيد من المعلومات.
قم بإعداد إصدار PHP معين.
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : mbstring, intl
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunitقم بإعداد إصدارات PHP متعددة على أنظمة تشغيل متعددة.
jobs :
run :
runs-on : ${{ matrix.operating-system }}
strategy :
matrix :
operating-system : ['ubuntu-latest', 'windows-latest', 'macos-latest']
php-versions : ['8.2', '8.3', '8.4']
phpunit-versions : ['latest']
include :
- operating-system : ' ubuntu-latest '
php-versions : ' 8.1 '
phpunit-versions : 10
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ${{ matrix.php-versions }}
extensions : mbstring, intl
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunit:${{ matrix.phpunit-versions }}
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}قم بإعداد إصدار ليلي بقيمة
PHP 8.5.
steps :
- name : Setup nightly PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.5 '
extensions : mbstring
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunitقم بإعداد نسخة PHP باستخدام رموز التصحيح.
debug لإعداد بناء باستخدام رموز تصحيح الأخطاء لـ PHP 5.6 وما فوق.ملحوظات
/usr/lib/debug/.build-id . تتطابق هذه الملفات مع build-id الموجود في قسم ELF لثنائيات PHP وأدوات تصحيح الأخطاء مثل gdb قادرة على حل الرموز من هذه الملفات.pdb في دليل تثبيت PHP. steps :
- name : Setup PHP with debugging symbols
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
debug : true # specify true or falseقم بإعداد
TSأوNTSPHP.
NTS بشكل افتراضي. jobs :
run :
runs-on : [ubuntu-latest, windows-latest, macos-latest]
name : Setup PHP TS
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
phpts : ts # specify ts or ntsالتحديث إلى أحدث تصحيح لإصدارات PHP.
ppa:ondrej/php مفقودًا في بيئة Ubuntu GitHub، فسيتم تحديث إصدار PHP إلى أحدث إصدار تصحيح.update ليكون true للتحديث إلى الإصدار الأحدث. - name : Setup PHP with latest versions
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
update : true # specify true or falseتصحيح سير العمل الخاص بك
لتصحيح أي مشكلات، يمكنك استخدام العلامة verbose بدلاً من v2 .
- name : Setup PHP with logs
uses : shivammathur/setup-php@verbose
with :
php-version : ' 8.4 'قم بإعداد PHP على بنيات متعددة على Ubuntu GitHub Runners.
PHP 5.6 إلى PHP 8.4 مدعومة بواسطة setup-php على معماريات متعددة على Ubuntu .shivammathur/node كحاويات. تحتوي هذه على Nodejs المتوافقة المثبتة لـ setup-php .ARM ، ستحتاج إلى مشغلين مستضافين ذاتيًا. jobs :
run :
runs-on : ubuntu-latest
container : shivammathur/node:latest-${{ matrix.arch }}
strategy :
matrix :
arch : ["amd64", "i386"]
steps :
- name : Install PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 'قم بإعداد PHP على مشغل مستضاف ذاتيًا.
لإعداد مشغل مستضاف ذاتيًا في حاوية، راجع الأدلة التالية وفقًا لنظام التشغيل الأساسي الخاص بك.
لإعداد المشغل مباشرةً على نظام التشغيل المضيف أو في جهاز افتراضي، اتبع دليل المتطلبات هذا قبل إعداد المشغل المستضاف ذاتيًا.
إذا كان سير عملك يستخدم حاويات الخدمة، فقم بإعداد المشغل على مضيف Linux أو في جهاز Linux الظاهري. لا تدعم GitHub Actions المحاكاة الافتراضية المتداخلة على Linux، لذلك لن تعمل الخدمات في حاوية مرساة.
يوصى بتحديد runner متغير البيئة بالقيمة self-hosted للبيئات ذاتية الاستضافة.
jobs :
run :
runs-on : self-hosted
strategy :
matrix :
php-versions : ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
name : PHP ${{ matrix.php-versions }}
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ${{ matrix.php-versions }}
env :
runner : self-hostedملحوظات
self-hosted والتي يستخدمها العدائون GitHub-hosted .اختبر سير عمل
Ubuntuمحليًا باستخدامnektos/act.
jobs :
run :
runs-on : ubuntu-latest
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 ' قم بتشغيل سير العمل محليًا act صور shivammathur/node docker.
اختر علامة الصورة التي تطابق خاصية runs-on في سير عملك. على سبيل المثال، إذا كنت تستخدم ubuntu-20.04 في سير عملك، فقم بتشغيل act -P ubuntu-20.04=shivammathur/node:2004 .
# For runs-on: ubuntu-latest
act -P ubuntu-latest=shivammathur/node:latest
# For runs-on: ubuntu-24.04
act -P ubuntu-24.04=shivammathur/node:2404
# For runs-on: ubuntu-22.04
act -P ubuntu-22.04=shivammathur/node:2204
# For runs-on: ubuntu-20.04
act -P ubuntu-20.04=shivammathur/node:2004تمكين Just-in-time (JIT) على PHP 8.0 وما فوق.
opcache في وضع cli عن طريق تعيين opcache.enable_cli=1 .Xdebug و PCOV والامتدادات الأخرى التي تتجاوز وظيفة zend_execute_ex ، لذا قم بتعيين coverage: none وقم بتعطيل أي امتداد من هذا القبيل إذا تمت إضافته.opcache.jit=1235 و opcache.jit_buffer_size=256M والتي يمكن تغييرها باستخدام إدخال ini-values .official PHP documentation . على سبيل المثال، لتمكين JIT في وضع tracing بحجم مخزن مؤقت يبلغ 64 MB .
- name : Setup PHP with JIT in tracing mode
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none
ini-values : opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=64M يمكنك تخزين ملحقات PHP مؤقتًا باستخدام shivammathur/cache-extensions وإجراءات GitHub action/cache . تتوفر الملحقات التي يستغرق إعدادها وقتًا طويلاً جدًا عند تخزينها مؤقتًا في عملية سير العمل التالية ويتم تمكينها مباشرةً. وهذا يقلل من وقت تنفيذ سير العمل.
راجع shivammathur/cache-extensions للحصول على التفاصيل.
إذا كان مشروعك يستخدم الملحن، فيمكنك الاحتفاظ بدليل ذاكرة التخزين المؤقت الداخلي للملحن. يتم تحميل التبعيات المخزنة مؤقتًا مباشرةً بدلاً من تنزيلها أثناء التثبيت. تتوفر الملفات المخزنة مؤقتًا عبر عمليات الفحص وستؤدي إلى تقليل وقت تنفيذ سير العمل.
- name : Get composer cache directory
id : composer-cache
run : echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name : Cache dependencies
uses : actions/cache@v4
with :
path : ${{ steps.composer-cache.outputs.dir }}
key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-
- name : Install dependencies
run : composer install --prefer-distملحوظات
vendor مؤقتًا باستخدام action/cache لأن ذلك سيكون له آثار جانبية.composer.lock ، فيمكنك استخدام تجزئة composer.json كمفتاح لذاكرة التخزين المؤقت الخاصة بك. key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}composer وتستخدم الخيارات prefer-lowest prefer-stable ، فيمكنك تخزينها في المصفوفة الخاصة بك وإضافتها إلى المفاتيح. key : ${{ runner.os }}-composer-${{ matrix.prefer }}-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-${{ matrix.prefer }}- إذا كان لديك عدد من مسارات العمل التي تقوم بإعداد أدوات متعددة أو لديك العديد من تبعيات الملحن، فقد تصل إلى حد معدل الملحن في GitHub. وأيضًا، إذا قمت بتحديد الإصدار الرئيسي فقط أو الإصدار بتنسيق major.minor ، فيمكنك الوصول إلى الحد الأقصى للمعدل. لتجنب ذلك، يمكنك تحديد رمز OAuth عن طريق تعيين متغير البيئة GITHUB_TOKEN . يمكنك استخدام سر GITHUB_TOKEN لهذا الغرض.
تم إهمال متغير البيئة COMPOSER_TOKEN لصالح GITHUB_TOKEN وستتم إزالته في الإصدار الرئيسي التالي.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} إذا كنت تستخدم Private Packagist لتبعيات الملحن الخاص، فيمكنك تعيين متغير البيئة PACKAGIST_TOKEN للمصادقة.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
PACKAGIST_TOKEN : ${{ secrets.PACKAGIST_TOKEN }} بالإضافة إلى GitHub أو Private Packagist، إذا كنت تريد مصادقة المستودعات الخاصة المستضافة في مكان آخر، فيمكنك تعيين متغير البيئة COMPOSER_AUTH_JSON باستخدام طرق المصادقة وبيانات الاعتماد بتنسيق json. يرجى الرجوع إلى قسم المصادقة في composer documentation لمزيد من التفاصيل.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
COMPOSER_AUTH_JSON : |
{
"http-basic": {
"example.org": {
"username": "${{ secrets.EXAMPLE_ORG_USERNAME }}",
"password": "${{ secrets.EXAMPLE_ORG_PASSWORD }}"
}
}
}إذا كان عليك تشغيل عدة أسطر من تعليمات PHP البرمجية في سير عملك، فيمكنك القيام بذلك بسهولة دون حفظها في ملف.
ضع الكود في خاصية التشغيل للخطوة وحدد الصدفة كـ php {0} .
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
- name : Run PHP code
shell : php {0}
run : |
<?php
$welcome = "Hello, world";
echo $welcome; أدوات مطابقة المشكلات هي تكوينات json تحدد الأخطاء والتحذيرات في سجلاتك وتظهرها بشكل بارز في واجهة مستخدم إجراءات GitHub من خلال تمييزها وإنشاء تعليقات توضيحية للتعليمات البرمجية.
قم بإعداد أدوات مطابقة المشكلات لمخرجات PHP الخاصة بك عن طريق إضافة هذه الخطوة بعد خطوة setup-php .
- name : Setup problem matchers for PHP
run : echo "::add-matcher::${{ runner.tool_cache }}/php.json" قم بإعداد مطابقات مشكلة الإعداد لمخرجات PHPUnit الخاصة بك عن طريق إضافة هذه الخطوة بعد خطوة setup-php .
- name : Setup problem matchers for PHPUnit
run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" يدعم PHPStan الإبلاغ عن الأخطاء في إجراءات GitHub، لذا فهو لا يتطلب أدوات مطابقة للمشاكل.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : phpstan
- name : Run PHPStan
run : phpstan analyse src يدعم Psalm الإبلاغ عن الأخطاء في إجراءات GitHub بتنسيق الإخراج github .
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : psalm
- name : Run Psalm
run : psalm --output-format=github بالنسبة للأدوات التي تدعم إعداد تقارير checkstyle مثل phpstan و psalm و php-cs-fixer و phpcs يمكنك استخدام cs2pr لإضافة تعليقات توضيحية إلى التعليمات البرمجية الخاصة بك.
للحصول على أمثلة، راجع وثائق cs2pr.
هنا مثال مع
phpcs.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : cs2pr, phpcs
- name : Run phpcs
run : phpcs -q --report=checkstyle src | cs2pr أمثلة على استخدام setup-php مع أطر وحزم PHP المختلفة.
| الإطار/الحزمة | يعمل على | سير العمل |
|---|---|---|
| بلاك فاير | macOS ، ubuntu windows | blackfire.yml |
| مشغل بلاك فاير | macOS ، ubuntu windows | blackfire-player.yml |
CakePHP مع MySQL و Redis | ubuntu | cakephp-mysql.yml |
CakePHP مع PostgreSQL و Redis | ubuntu | cakephp-postgres.yml |
| CakePHP بدون خدمات | macOS ، ubuntu windows | cakephp.yml |
| CodeIgniter | macOS ، ubuntu windows | codeigniter.yml |
| لاميناس إم في سي | macOS ، ubuntu windows | laminas-mvc.yml |
Laravel مع MySQL و Redis | ubuntu | laravel-mysql.yml |
Laravel مع PostgreSQL و Redis | ubuntu | laravel-postgres.yml |
| لارافيل بدون خدمات | macOS ، ubuntu windows | laravel.yml |
التجويف مع MySQL و Redis | ubuntu | التجويف-mysql.yml |
التجويف مع PostgreSQL و Redis | ubuntu | lumen-postgres.yml |
| التجويف دون خدمات | macOS ، ubuntu windows | lumen.yml |
فالكون مع MySQL | ubuntu | falcon-mysql.yml |
فالكون مع PostgreSQL | ubuntu | falcon-postgres.yml |
| الجذور/الأساس | ubuntu | bedrock.yml |
| جذور/حكيم | ubuntu | sage.yml |
| إطار نحيف | macOS ، ubuntu windows | Slim-framework.yml |
سيمفوني مع MySQL | ubuntu | Symfony-mysql.yml |
Symfony مع PostgreSQL | ubuntu | Symfony-postgres.yml |
| Symfony بدون خدمات | macOS ، ubuntu windows | Symfony.yml |
Yii2 Starter Kit مع MySQL | ubuntu | yii2-mysql.yml |
Yii2 Starter Kit مع PostgreSQL | ubuntu | yii2-postgres.yml |
v2 كإصدار setup-php . إنها علامة متجددة وتتم مزامنتها مع أحدث الإصدارات الثانوية والإصدارات التصحيحية. مع v2 ستحصل تلقائيًا على إصلاحات الأخطاء وتصحيحات الأمان والميزات الجديدة ودعم أحدث إصدارات PHP.verbose مؤقتًا. يقوم بإخراج كافة السجلات ويتم مزامنتها أيضًا مع أحدث الإصدارات.main كإصدار، فقد يؤدي ذلك إلى تعطيل سير عملك بعد الإصدارات الرئيسية نظرًا لحدوث تغييرات معطلة.v1 أو الإصدار 1.xy ، فيجب عليك التبديل إلى الإصدار v2 لأن v1 لم يعد مدعومًا. setup-php هو عمل مشتق من شعار php.net ومرخص بموجب ترخيص CC BY-SA 4.0. المساهمات هي موضع ترحيب!
المساهمين في setup-php والمشاريع الأخرى ذات الصلة
setup-php .يدعم العديد من المستخدمين والمنظمات برنامج setup-php عبر رعاة GitHub.
تقدم هذه الشركات منتجاتها وخدماتها بسخاء للمساعدة في تطوير هذا المشروع.