PIE 1.5 اومد: نصب چندتا اکستنشن PHP با یه دستور و فرمان upgrade
خلاصهٔ کاملتر
PIE (یعنی PHP Installer for Extensions، ابزاری که اکستنشنهای PHP مثل Redis یا Xdebug رو نصب میکنه) به نسخهی 1.5 رسیده. به گفتهی Laravel News، این نسخه نصب چندتا اکستنشن با یه دستور، یه دستور upgrade و یه تغییر مهم تو نصبهای بدون دخالت کاربر رو آورده.
تغییر مهم اینه: وقتی تو پوشهی پروژه pie install رو بدون اسم پکیج اجرا میکنی، PIE نیازهای اکستنشن پروژه رو از composer.json میخونه، مثلاً ext-redis. قبلاً فلگ --allow-non-interactive-project-install خودش پکیج مناسب رو انتخاب میکرد. تو 1.5 این فلگ deprecated شده و کلاً نادیده گرفته میشه. یعنی اگه اکستنشنی کم باشه و پکیجش رو مشخص نکرده باشی، نصب تو CI شکست میخوره.
راهحل فلگ --select هست. سمت چپش اسم اکستنشن بدون ext- میاد و سمت راستش اسم پکیج:
pie install --no-interaction --no-dev \
--select=redis=phpredis/phpredisبرای هر اکستنشن دیگهای که کمه، یه --select جدا اضافه میکنی. فلگ --no-dev هم باعث میشه نیازهای بخش require-dev مثل Xdebug تو چک production نادیده گرفته بشن. این فلگ اکستنشنهای نصبشده رو پاک نمیکنه و جای composer install --no-dev رو هم نمیگیره. این تغییر فقط روی نصب بر اساس پروژه اثر داره. دستوری مثل pie install phpredis/phpredis خودش اسم پکیج رو داره و مشکلی نداره.
دستور جدید pie upgrade اکستنشنهایی رو که با PIE نصب شدن آپدیت میکنه و به محدودیت نسخهای که موقع نصب ثبت شده احترام میذاره. مثلاً اگه PhpRedis رو با ^6.0 نصب کرده باشی، فقط نسخههای 6.x رو میگیره و برای رفتن به 7.x باید محدودیت رو عوض کنی. تنظیمات configure هم بین آپدیتها حفظ میشه. این دستور ربطی به آپدیت Laravel یا پوشهی vendor نداره.
چندتا امکان دیگه هم اضافه شده: نصب چند پکیج با یه دستور (مثلاً pie install phpredis/phpredis xdebug/xdebug) که برای ساخت image داکر به درد میخوره، دستور pie search برای پیدا کردن اسم پکیجها، و pie check-build-tools برای چک کردن ابزارهای build قبل از نصب. PIE تو حالت non-interactive ابزارهای build کم رو خودش نصب نمیکنه، مگه اینکه بخوای.
نکات کلیدی:
- تو PIE 1.5 فلگ --allow-non-interactive-project-install نادیده گرفته میشه.
- برای نصب خودکار پروژه باید با --select=redis=phpredis/phpredis پکیج هر اکستنشن رو مشخص کنی.
- --no-dev نیازهای require-dev رو از چک اکستنشنها حذف میکنه.
- pie upgrade اکستنشنها رو در محدودهی نسخهی ثبتشده، مثل ^6.0، آپدیت میکنه.
- دستورهای جدید pie search و pie check-build-tools هم اضافه شدن.




