سلام.
بنده یه پروژه روی یه سیستم داشتم که به گیت هاب انتقال دادم و حالا یک clone روی سیستم دیگه گرفتم. وقتی دستور composer install رو اجرا می کنم با خطاهای زیر مواجه میشم. ابتدا مشکل با ورژن php داشت که نسخه را در xampp تغییر دادم. ولی الان برای هر پکیج به نسخه php ایراد گرفته...
Problem 1
- doctrine/lexer is locked to version 1.2.0 and an update of this package was not requested.
- doctrine/lexer 1.2.0 requires php ^7.2 -> your php version (7.1.32) does not satisfy that requirement.
Problem 2
- symfony/css-selector is locked to version v5.0.7 and an update of this package was not requested.
- symfony/css-selector v5.0.7 requires php ^7.2.5 -> your php version (7.1.32) does not satisfy that requirement.
Problem 3
- symfony/mime is locked to version v5.0.7 and an update of this package was not requested.
- symfony/mime v5.0.7 requires php ^7.2.5 -> your php version (7.1.32) does not satisfy that requirement.
Problem 4
- symfony/service-contracts is locked to version v2.0.1 and an update of this package was not requested.
- symfony/service-contracts v2.0.1 requires php ^7.2.5 -> your php version (7.1.32) does not satisfy that requirement.
Problem 5
- symfony/translation-contracts is locked to version v2.0.1 and an update of this package was not requested.
- symfony/translation-contracts v2.0.1 requires php ^7.2.5 -> your php version (7.1.32) does not satisfy that requirement.
Problem 6
- phpdocumentor/reflection-docblock is locked to version 5.1.0 and an update of this package was not requested.
- phpdocumentor/reflection-docblock 5.1.0 requires php ^7.2 -> your php version (7.1.32) does not satisfy that requirement.
Problem 7
- phpdocumentor/type-resolver is locked to version 1.1.0 and an update of this package was not requested.
- phpdocumentor/type-resolver 1.1.0 requires php ^7.2 -> your php version (7.1.32) does not satisfy that requirement.
Problem 8
- symfony/service-contracts v2.0.1 requires php ^7.2.5 -> your php version (7.1.32) does not satisfy that requirement.
- symfony/console v4.4.7 requires symfony/service-contracts ^1.1|^2 -> satisfiable by symfony/service-contracts[v2.0.1].
- symfony/console is locked to version v4.4.7 and an update of this package was not requested.
اول ایراد گرفت که 7.1.3 باشه. کلی ارور برطرف شد بعد که تغییر دادم اینها باقی ماند حالا اگه ورژن رو تغییر بدم ارورهای قبلی برمیگردن! مشکل من اینه چرا با یه ورژن مشخص php مشکل برطرف نمیشه. حتی نسخه 8 رو هم نصب کردم ولی روی ورژن های مختلف 7 ارور میده و مشکلش برطرف نمیشه
اگر مطمئن هستید که قبلا پروژه با همین مشخصات داشته به بدون مشکل کار می کرده باید سعی کنید محیط توسعه تون رو دوباره به همون مرحله برگردونید.
چند تا نکته:
بعداز تغییر نسخه php شاید در مواقعی نیاز به ریستارت کردن سیستم یا LogOff کردن یا حداقل ریستارت مجدد ترمینال وجود داشته باشه. چون متغیر های سیستمون ($PATH) به این راحتی بروزرسانی نمی شوند. در محیط ترمینال php -v بزنید و مطمئن بشید که داره نسخه صحیح و مورد نظرتون رو اجرا میکنه.
نکته دوم اینکه اگر یکبار با نسخه اشتباه composer install یا update زده باشید لازمه که اولا کل پوشه vendorتون رو حذف کنید. ثانیا فایل composer.lock و composer.json تون رو هم به همون نسخه ریپازیتوری برگردونید. چون با اجرای این دستورات ممکنه یکسری تغییراتی در این فایل ها اعمال بشه و این باعث میشه در اجراهای بعدی دوباره طبق همون تنظیمات جدید عمل کنه و نه اون چیزی که کدهای ریپازیتوریتون تنظیم شده بودند.
و نکته آخر اینکه کلا این کار در اغلب مواقع با چالش های زیادی همراه هست و باید واقعا صبر و حوصله به خرج بدید و مرحله به مرحله جلو برید و ارورها رو رفع کنید تا برسید به یک نقطه stable. ولی غافل نشید که همون نقطه هم ممکنه با گذر زمان و انتشار نسخه های جدیدتر زبان و فریم ورک و پکیج ها از دست بره. به همین خاطر حتی المقدور باید سعی کنید با سرعت بروزرسانی ها خودتون رو تطابق بدید و اصطلاحا جا نمونید. چون هر چقدر فاصله بیشتر بشه جبرانش پرهزینه تر خواهد شد.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟