قم بإعداد 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.3
PECL
عن طريق إضافة اسم الامتداد بحالته، مثل 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 : :opcache
none
. عندما لا يتم تحديد none
مع الامتدادات الأخرى، يتم رفعه إلى بداية الإدخال. لذا، سيتم تعطيل كافة الامتدادات المشتركة أولاً، ثم ستتم معالجة باقي الامتدادات الموجودة في الإدخال. ملاحظة: يؤدي هذا إلى تعطيل كافة الملحقات المشتركة الأساسية والجهات الخارجية، وبالتالي يمكن أن يعطل بعض الأدوات التي تحتاج إليها. يتم تمكين الامتدادات المطلوبة مرة أخرى عندما يتم إعداد الأدوات على أساس أفضل جهد. لذلك يوصى بإضافة الامتدادات المطلوبة لأدواتك بعد none
في إدخال extensions
لتجنب أي مشاكل.
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstring
intl
بإصدار 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, phpunit
vendor/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:v2
tools: 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 : xdebug
coverage: 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 : pcov
pcov/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.php
composer.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, phpcs
php-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
أوNTS
PHP.
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.
تقدم هذه الشركات منتجاتها وخدماتها بسخاء للمساعدة في تطوير هذا المشروع.