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.json
composer.json
composer.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 install
composer.lock
বিদ্যমান থাকে।
composer.lock
ফাইল থেকে নির্ভরতা ইনস্টল করে ।composer.lock
কী না বিদ্যমান।
composer.json
।composer.lock
ইনস্টল করা প্যাকেজ উপর ভিত্তি করে ফাইল।অনুসারে composer help install
:
ইনস্টল কমান্ডটি
composer.lock
বর্তমান ডিরেক্টরি থেকে ফাইলটি পড়ে , এটি প্রক্রিয়া করে এবং ফাইলটিতে বর্ণিত সমস্ত লাইব্রেরি এবং নির্ভরতা ডাউনলোড করে ইনস্টল করে s যদি ফাইলটি না থাকে তবে এটি অনুসন্ধান করবেcomposer.json
এবং একই কাজ করবে।
composer update
composer.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
শুরুতে যত্ন নেওয়া ভাল ।
তদ্ব্যতীত, একটি নির্ভুল সংস্করণে শব্দার্থক সংস্করণের সুবিধা রয়েছে। আমরা বিকাশের সময় অনেক সময় নির্ভরতা আপডেট করতে পারি এবং লাইব্রেরিতে প্রায়শই কিছুটা ছোট পরিবর্তন হয় যেমন বাগ ফিক্স। তারপরে নির্ভরতা আপগ্রেড করা আরও সহজ যা সিমেটিক সংস্করণ ব্যবহার করে।