۱۸ احسان پژمان
نصب نشدن phpUnit با تغییر ورژن php به 7.3
جامعه پی اچ پی ایجاد شده در ۱۶ آذر ۱۴۰۱

با سلام وقتتون بخیر من دستور کامپوزر برای نصب برنامه رو میزنم و ورژن رو هم توی ادیتور پی اچ پی استورم از همون قسمت راست نوار پایینی ادیتور تغییر دادم اما باز هم این خطا رو میده

Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - Root composer.json requires phpunit/phpunit 9 -> satisfiable by phpunit/phpunit[9.0.0].
    - phpunit/phpunit 9.0.0 requires php ^7.3 -> your php version (8.0.13) does not satisfy that requirement.
Installation failed, deleting ./composer.json.

دیگه از کجا میشه ورژن رو تغییر داد من از این قسمت تغییر دادم اما بازهم همینه

c29a-photo_۲۰۲۲-۱۲-۰۷_۲۰-۴۲-۰۴.jpg

سلام احسان جان

دستور php -v رو بزن و نتیجه رو برام بفرست


محمد گازری ۱۶ آذر ۱۴۰۱، ۱۸:۱۵

درود استاد محترم

 php -v
PHP 8.0.13 (cli) (built: Nov 16 2021 21:58:37) ( ZTS Visual C++ 2019 x64 )
Copyright (c) The PHP Group
Zend Engine v4.0.13, Copyright (c) Zend Technologies

این بود خروجی و فکر کنم مربوط به نسخه ای php که نصب کردم باشه که اگر بخاطر اون هست حالا چه نسخه از phpUnit رو نصب کنم که این نسخه ر ساپورت کنه ؟ یا باید برم یه ورژن قدیمی‌تر از php رو نصب کنم و فعلی رو حذف کنم.....و این نسخه ربطی به زمپ نداره؟ چون نسخه ای php زمپ هم همینه

احسان پژمان ۱۶ آذر ۱۴۰۱، ۱۸:۲۰

با این دستور بدون مشکل نصب کنید!

composer require --dev phpunit/phpunit ^9
محمد گازری ۱۶ آذر ۱۴۰۱، ۱۹:۲۰

من عین دستور رو زدم استاد و برای اطمینان از این هم استفاده کردم باز هم عین خطارو داد متاسفانه

  Problem 1
    - Root composer.json requires phpunit/phpunit 9 -> satisfiable by phpunit/phpunit[9.0.0].
    - phpunit/phpunit 9.0.0 requires php ^7.3 -> your php version (8.0.13) does not satisfy that requirement.
Installation failed, deleting ./composer.json.
احسان پژمان ۱۶ آذر ۱۴۰۱، ۱۹:۲۲

فایل composer.json رو پاک کن و مجدد دستور رو بزن

محمد گازری ۱۶ آذر ۱۴۰۱، ۱۹:۲۴

هیچ فایلی توی فولدر وجود نداره

a7bd-Captureنن.PNG

احسان پژمان ۱۶ آذر ۱۴۰۱، ۱۹:۲۶

احسان جان مشکل از phpunit نیست و من با ورژن php 8.1 هم بارها نصبش کردم

یه بررسی کن کانفیگ‌های سیستمت رو و پیشنهاد هم میکنم الان بیای روی 8.1 و چند ماه بعد برو روی 8.2 (php 8.2 امروز معرفی میشه یکم دیرتر برو تا استیبل بشه و پکیج‌ها compatible بشن!)

محمد گازری ۱۷ آذر ۱۴۰۱، ۱۱:۳۲

استاد من واقعا متعجبم همه جوره کانفیگ هارو بررسی کردم و در حال حاضر هم آخرین نسخه از php 8.1 رو نصب درام یعنی

VS16 x86 Non Thread Safe (2022-Dec-06 15:57:20)
PHP 8.1 (8.1.13)

این ورژن رو نصب کرده بودم روی سیستم و الان کلا فولدری که توش نصب بود رو حذف کردم اما بازهم وقتی دستور php -v رو میزنم اطلات نسخه PHP 8.0 (8.0.13) رو میاره این یعنی که این اطلات رو از روی فایلی که توی زمپ نصب هستش میخونه یا جای دیگه ای هستش که من نمیدونم ؟


احسان پژمان ۱۷ آذر ۱۴۰۱، ۱۵:۰۰

سلام احسان جان

باید به سیستمت نسخه php که نصب میکنی رو داخل environment variable‌ها معرفی کنی

یه سرچ بزن برات میاره طبق سیستم عاملت! (یادت باشه نسخه زمپ رو از variable هات حذف کنی)

نسخه php هم بهتره Thread Safe رو نصب کنی!

محمد گازری ۱۷ آذر ۱۴۰۱، ۱۵:۱۱

استاد سلام من رفتم نسخه Thread Safe رو نصب کردم و آدرس دهی توی environment variable کردم (C:\\PHP) به این شکل فایل‌های دانلود شده رو توی همون پوشه و درایو استخراج کردم اما باز هم متاسفانه از زمپ میخوند آدرس رو برای همین رفتم زمپ رو آپدیت کردم و آخرین آپدیت زمپ از نسخه ای (8.1.12) هستش و با این هم خطا داد همون خطای همیشگی حالا من فولدر php زمپ رو حذف کردم و به جاش نسخه ای خودمو قرار دادم که به یسری مشکلات دیگه خورد از جمله این خطا

In Factory.php line 650:                                                                                    
  The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at your own risk, by setting the 'disable-tls' option to true.  

با توجه به توضیحاتی که دادم راه حل چیه که سیستم نره از زمپ نسخه رو بخونه بلکه از اون نسخه که خودم نصب کردم بره بخونه ؟


احسان پژمان ۱۷ آذر ۱۴۰۱، ۱۷:۲۷

احسان جان آدرسی که از زمپ هست رو از environment variable هات پاک کن (بعدش ری استارت کن)

محمد گازری ۱۷ آذر ۱۴۰۱، ۱۹:۱۱

اینکارو انجام دادم استاد باز هم همونه داستان و از زمپ میخونه اینم تصویر

7715-gg.PNG

احسان پژمان ۱۷ آذر ۱۴۰۱، ۱۹:۳۵

هم از user variable‌ها حذف کن و هم از system variable‌ها و بعدش ری استارت کن حتما! (داخل path)

محمد گازری ۱۷ آذر ۱۴۰۱، ۲۰:۰۲

انجام دادم استاد درست شد و الان از زمپ نمیخونه ولی این خطارو میده هنگام زدن دستور نصب phpunit

In Factory.php line 650:
                                                                                                            
  The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the  
   openssl extension, you can disable this error, at your own risk, by setting the 'disable-tls' option to  
   true.                                


احسان پژمان ۱۷ آذر ۱۴۰۱، ۲۰:۳۷

این لینک رو مطالعه کن

https://stackoverflow.com/questions/35249620/the-openssl-extension-is-required-for-ssl-tls-protection

محمد گازری ۱۷ آذر ۱۴۰۱، ۲۰:۵۴

استاد طبق این لینک جلو رفتم و خطای اولی رفع شد ولی چندین خطای دیگه بوجود اومد

You are running Composer with SSL/TLS protection disabled.
The "9" constraint for "phpunit/phpunit" appears too strict and will likely not match what you want. See https://getcomposer.org/constraints
./composer.json has been created
Running composer update phpunit/phpunit
Loading composer repositories with package information
https://repo.packagist.org could not be fully loaded (curl error 60 while downloading https://repo.packagist.org/packages.json: SSL certificate problem: unable to get local issuer certificate), package information was lo
aded from the local cache and may be out of date
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - Root composer.json requires phpunit/phpunit 9 -> satisfiable by phpunit/phpunit[9.0.0].
    - phpunit/phpunit 9.0.0 requires php ^7.3 -> your php version (8.1.13) does not satisfy that requirement.
Installation failed, deleting ./composer.json.

نمیدونم کسی دیگه از دوستان هم درگیر این شدن یا نه از خیرش گذشتن یا بدون مشکل کار کرد اما واقعا من هرکاری میکنم به سنگ میخوره کاش یه راه حلی پیدا بشه


احسان پژمان ۱۷ آذر ۱۴۰۱، ۲۲:۱۳

ببین یا این فایل‌های کامل مشکلت حل میشه یا نه


بهترین پاسخ
محمد گازری ۱۹ آذر ۱۴۰۱، ۰۷:۳۲

یک راه حل برای همه این ارور‌ها بلاخره بعد این چند روز پیدا کردم که البته از داخل فایل composer.json

که شما فرستادید متوجه شدم من تا الان به کلی دستور نصب phpunit رو اشتباه میزدم در واقع باید نسخه رو بصورت کامل مینوشتم نسخه ای که با نسخه ای php همخوای داشته باشه و اون نسخه ای که با نسخه ای php 8.1.13 عبارت است از این نسخه phpunit ^9.5.10 و خب حالا برای نصب باید این دستور رو وارد کنیم

composer require --dev phpunit/phpunit ^9.5.10

دقت داشته باشیم که توی ویندوز باید دستور composer config -g -- disable-tls false بزنیم در غیر اینصورت ممکنه یسری ارورها داشته باشیم البته این امنیت کار رو پایین میاره طبقی چیزی که توی سایت استک آور فلو گفته بودن حالا بعد این چندتا extension رو توی فایل php.ini از کامنت در بیاریم لیستشون ایناست

extension=mbstring
extension=openssl
extension_dir = "./"
; On windows:
extension_dir = "ext"

این‌ها نباید کامنت باشن و حالا برای من این هارو خطا میداد میگفت باید از کامنت در بیان و بعد کار کرد این هارو گفتم صرفا برای اینکه اگر دوستی مشکل من رو داشت سردرگم نمونه و بلکه این توضیحات کمکی کنه تا بتونه رفع مشکل کنه

با سپاس فراوان از استاد گازری عزیز بابت راهنمایی هاشون


احسان پژمان ۱۹ آذر ۱۴۰۱، ۱۵:۵۲