composer updateএবং মধ্যে পার্থক্য কি composer install?
composer updateএবং মধ্যে পার্থক্য কি composer install?
উত্তর:
সুরকার আপডেট
composer update আপনার ডিপেন্সেন্সিসিগুলি যেমন নির্দিষ্ট করা আছে তে আপডেট করবে composer.json
উদাহরণস্বরূপ, যদি নির্ভরতা হিসাবে আপনার এই প্যাকেজটির প্রয়োজন হয়:
"mockery/mockery": "0.9.*",
এবং আপনি প্রকৃতপক্ষে 0.9.1প্যাকেজের সংস্করণ ইনস্টল করেছেন , দৌড়ানোর composer updateফলে এই প্যাকেজটির একটি আপগ্রেড ঘটবে (উদাহরণস্বরূপ 0.9.2, এটি ইতিমধ্যে প্রকাশিত হলে)
বিস্তারিতভাবে composer updateকরবে:
composer.jsoncomposer.jsoncomposer.lockইনস্টল করা প্যাকেজ সংস্করণ সংরক্ষণ করতেসুরকার ইনস্টল
composer installকিছু আপডেট হবে না; এটি কেবলমাত্র composer.lockফাইলটিতে উল্লিখিত সমস্ত নির্ভরতা ইনস্টল করবে
বিস্তারিত:
composer.lockফাইল বিদ্যমান কিনা তা পরীক্ষা করুন (না থাকলে চালনা করুন composer-updateএবং এটি তৈরি করুন)composer.lockফাইল পড়ুনcomposer.lockফাইলটিতে নির্দিষ্ট প্যাকেজগুলি ইনস্টল করুনকখন ইনস্টল করবেন এবং কখন আপডেট করবেন
composer updateআমাদের প্রকল্পের প্যাকেজগুলি composer.jsonফাইলটিতে যা নির্দিষ্ট করা হয়েছে তার অনুসারে আপগ্রেড করতে, বেশিরভাগই 'উন্নয়ন পর্বে' ব্যবহৃত হয় ,
composer install সুরকার আপডেট দ্বারা তৈরি করা কমপোজারলক ফাইলটিতে একই নির্ভরতা ব্যবহার করে একটি প্রোডাকশন সার্ভারে বা পরীক্ষামূলক পরিবেশে আমাদের অ্যাপ্লিকেশন ইনস্টল করতে প্রাথমিকভাবে 'স্থাপনা পর্বে' ব্যবহৃত হয়।
composer global updateস্থানীয় সিস্টেমে আপনার গ্লোবাল ভান্ডারগুলিতে নির্ভরতা আপডেট করে ( COMPOSER_HOME
composer updateআপনার স্থানীয় সিস্টেমে চালিত হওয়া উচিত এবং আপনার অ্যাপ্লিকেশনটি পরীক্ষা করা উচিত, তারপরে আপনার প্রোডাকশন সার্ভারে কম্পোজার.লক আপলোড করুন এবং চালানcomposer install
আপনি যখন চালনা composer installকরবেন তখন এটি একটি লক ফাইল সন্ধান করবে এবং এতে থাকা যা কিছু আছে তা ইনস্টল করবে, যদি এটি কোনও সন্ধান না করে তবে এটি পড়বে composer.json, তার নির্ভরতা ইনস্টল করবে এবং একটি লকফিল তৈরি করবে।
আপনি যখন চালান composer updateএটি সহজভাবে পড়া composer.json, নির্ভরতা ইনস্টল করে এবং লকফিল আপডেট করে (বা একটি নতুন লকফিল তৈরি করে)।
composer installcomposer.lockবিদ্যমান থাকে।
composer.lockফাইল থেকে নির্ভরতা ইনস্টল করে ।composer.lockকী না বিদ্যমান।
composer.json।composer.lockইনস্টল করা প্যাকেজ উপর ভিত্তি করে ফাইল।অনুসারে composer help install:
ইনস্টল কমান্ডটি
composer.lockবর্তমান ডিরেক্টরি থেকে ফাইলটি পড়ে , এটি প্রক্রিয়া করে এবং ফাইলটিতে বর্ণিত সমস্ত লাইব্রেরি এবং নির্ভরতা ডাউনলোড করে ইনস্টল করে s যদি ফাইলটি না থাকে তবে এটি অনুসন্ধান করবেcomposer.jsonএবং একই কাজ করবে।
composer updatecomposer.jsonফাইল থেকে প্রক্রিয়া নির্ভরতা (ইনস্টল, আপডেট এবং অপসারণ)।composer.lockপরিবর্তনগুলি অনুসারে ফাইল তৈরি করে বা আপডেট করে ।অনুসারে composer help update:
আপডেট কমান্ড
composer.jsonফাইলটি বর্তমান ডিরেক্টরি থেকে পড়ে , এটি প্রক্রিয়া করে এবং আপডেট করে, সমস্ত নির্ভরতা সরিয়ে বা ইনস্টল করে।
আরও দেখুন: সুরকার: লক ফাইল সম্পর্কে এটি সমস্ত
মধ্যে শ্রেষ্ঠ পার্থক্য composer updateএবংcomposer install
সুরকার ইনস্টল
নির্ভরতা যুক্ত করতে আপনার এটিকে রচনা মেশিন.জেসন ফাইলটিতে ম্যানুয়ালি যুক্ত করতে হবে।
কমপোজারলক ফাইল যদি বিদ্যমান থাকে তবে এই ফাইলটিতে যা নির্দিষ্ট করা হয়েছে ঠিক তা ইনস্টল করুন
এই আদেশ দিয়ে কোনও উপাদান আপডেট করা হবে না।
সুরকার আপডেট
নির্ভরতা যুক্ত করতে বা অপসারণ করতে আপনাকে এটিকে ম্যানুয়ালি কমপোজার জেএসন ফাইলটিতে যুক্ত করতে হবে
আপনি যদি না করতে পারেন (বা বাস্তবে সহজে কোনও লাইব্রেরি যুক্ত করবেন বা মুছবেন কীভাবে জানেন না, কেবলমাত্র ফাইলের প্রয়োজনীয় সম্পত্তির মধ্যে নির্ভরতা এবং সংস্করণটির নাম যুক্ত করুন) নিজেই কম্পোজার.জেসন ফাইলটি সংশোধন করুন বা আপনি পরিবর্তে কমান্ড লাইন ব্যবহার পছন্দ করুন, সুরকার এর জন্য বিশেষ ফাংশন রয়েছে:
সুরকার প্রয়োজন
উদাহরণস্বরূপ, যদি আমরা কমান্ড লাইনের সাথে নির্ভরতা যুক্ত করতে চাই আমরা কেবল কার্যকর করব
composer require twig/twig
সুরকার অপসারণ
আপনি যদি অব্যবহৃত নির্ভরতা অপসারণ করতে চান তবে আমরা সহজভাবে সম্পাদন করব:
composer remove twig/twig --update-with-dependencies
if(composer.lock existed){
installs dependency with EXACT version in composer.lock file
} else {
installs dependency with LATEST version in composer.json
generate the composer.lock file
}
composer update = remove composer.lock -> composer install
আমাদের 2 কমান্ডের প্রয়োজন কেন। আমি মনে করি এটি কমপোজারলক দ্বারা ব্যাখ্যা করতে পারে।
কল্পনা করুন, আমরা না আছে composer.lockএবং composer.json, একটি নির্ভরতা হয় "monolog/monolog": "1.0.*"বা "monolog/monolog": "^1.0"।
তারপরে, এটি কিছু ক্ষেত্রে থাকবে
composer installভিন্ন সময়ে চালানো হয় তবে তাদের নির্ভরতা সংস্করণ থাকতে পারে ।যদি আমরা সর্বদা composer.jsonযেমন একটি নির্ভুল সংস্করণ ব্যবহার করি তবে কী হবে "monolog/monolog": "1.0.1"?
আমাদের এখনও প্রয়োজন composer.lockকারণ composer.jsonকেবলমাত্র আপনার নির্ভরতার মূল সংস্করণটিই ট্র্যাক করে এটি নির্ভরতার নির্ভরতাগুলির সংস্করণটি ট্র্যাক করতে পারে না।
নির্ভরতা সমস্ত নির্ভরতা এছাড়াও ঠিক সংস্করণ ব্যবহার করে?
কল্পনা করুন যে আপনি সমস্ত নির্ভরশীলতাগুলি দিয়ে শুরু করেছেন যা সুনির্দিষ্ট সংস্করণ ব্যবহার করে তারপরে আপনার কোনও যত্ন নেই composer.lock। যাইহোক, কয়েক মাস পরে, আপনি একটি নতুন নির্ভরতা যুক্ত করুন (বা পুরাতন নির্ভরতা আপডেট করুন), এবং এই নির্ভরতার নির্ভরতাগুলি ঠিক সংস্করণ ব্যবহার করে না। তারপরে composer.lockশুরুতে যত্ন নেওয়া ভাল ।
তদ্ব্যতীত, একটি নির্ভুল সংস্করণে শব্দার্থক সংস্করণের সুবিধা রয়েছে। আমরা বিকাশের সময় অনেক সময় নির্ভরতা আপডেট করতে পারি এবং লাইব্রেরিতে প্রায়শই কিছুটা ছোট পরিবর্তন হয় যেমন বাগ ফিক্স। তারপরে নির্ভরতা আপগ্রেড করা আরও সহজ যা সিমেটিক সংস্করণ ব্যবহার করে।