সুরকারীর বিকাশ / উত্পাদনের সুইচ ব্যবহার করার সময় কীভাবে সঠিকভাবে স্থাপন করা যায়?


180

সুরকারের শুধুমাত্র বিকাশে থাকাকালীন বেশ কয়েকটি নির্ভরতা লোড করার বিকল্প রয়েছে, সুতরাং সরঞ্জামগুলি উত্পাদনে ইনস্টল করা হবে না (লাইভ সার্ভারে)। এটি (তত্ত্ব অনুসারে) এমন স্ক্রিপ্টগুলির জন্য খুব কার্যকরী যা পরীক্ষার, জাল-ডেটা-সরঞ্জাম, ডিবাগার ইত্যাদির মতো কেবল বিকাশে উপলব্ধি করে for

যাওয়ার উপায় হ'ল require-devদেবের জন্য আপনার প্রয়োজনীয় সরঞ্জামগুলি সহ একটি অতিরিক্ত ব্লক যুক্ত করা:

"require-dev": {
    "codeception/codeception": "1.6.0.3"
}

এবং তারপরে (তাত্ত্বিকভাবে) এই নির্ভরতাগুলি লোড করুন

composer install --dev

সমস্যা এবং প্রশ্ন:

সুরকার 2013 installএবং updateনাটকীয়ভাবে এর আচরণ পরিবর্তন করেছে , require-dev-নির্ভরতা এখন ডিফল্ট (!) দ্বারা ইনস্টল করা হয়েছে, একটি require-devব্লক সহ একটি সুরকার.জসন তৈরি করতে এবং নিঃসংশ্লিষ্ট করার জন্য নির্দ্বিধায় অনুভব করুন composer install

মোতায়েনের সবচেয়ে স্বীকৃত উপায় হ'ল সুরকারকে চাপ দেওয়া। লক (এটি আপনার বর্তমান সুরকার সেটআপ ধারণ করে) এবং তারপরে composer installপ্রোডাকশন সার্ভারে একটি করুন, এটি বিকাশ সামগ্রীটিও ইনস্টল করবে।

-দেব নির্ভরতা ইনস্টল না করে এটি স্থাপন করার সঠিক উপায় কী ?

দ্রষ্টব্য: আমি এখানে অদ্ভুত সুরকার স্থাপনার বিষয়টি পরিষ্কার করতে একটি প্রচলিত প্রশ্ন / উত্তর তৈরি করার চেষ্টা করছি। এই প্রশ্নটি সম্পাদনা করতে নির্দ্বিধায়।


@ সমস্ত: অনুগ্রহ কোথায় তা জানেন না :( আমি আরেকটি পন্থা শুরু করব
স্লিক

1
আপনি যদি সক্রিয়ভাবে এটিকে পুরষ্কার না দিয়ে থাকেন এবং কোনও উত্তর গৃহীত হয় না বা পর্যাপ্ত পরিমাণে অগ্রগতি পায় তবে কেউ অনুগ্রহ পায় না।
সভেন

2
আমি ব্যক্তিগতভাবে এই পদ্ধতির মোটেই পছন্দ করি না। composer.lockগীত রেপো কখনো যোগ করা উচিত, না। সঠিক পন্থাটি হ'ল মঞ্চায়নের জন্য সুরকার আপডেট ব্যবহার করা এবং তারপরে ফাইলটিকে উত্পাদনের সাথে সিঙ্ক করা (যদি সবকিছু কাজ করে তবে অবশ্যই)। মঞ্চায়ন একটি উত্পাদন পরিবেশের সঠিক অনুলিপি হতে হবে। composer.lockএর অংশ হওয়া উচিত .gitignore
বিশেষ্য

6
কম্পোজারআলক অবশ্যই আপনার সিএসভিতে অন্তর্ভুক্ত থাকতে হবে !!! আপনি কীভাবে নিশ্চিত হন যে সবাই একই সংস্করণ ব্যবহার করেছে ?? সুতরাং আপনার সিএসভি থেকে কম্পোজারআলক কখনও বাদ দিন !!!
টোবিয়াস গার্টনার

3
@ তোবিয়াস গার্টনার আমার ধারণা আপনি ভিসিএস (সংস্করণ নিয়ন্ত্রণ সফ্টওয়্যার) বলতে চাইছেন তবে অন্যথায় আপনি সঠিক এবং প্রকল্পটির অফিসিয়াল সুপারিশের সাথে লাইন রয়েছেন ।
জিয়াং চিয়ামিয়াভ

উত্তর:


327

কেন

সুরকার আজকাল --devডিফল্টরূপে (ইনস্টল এবং আপডেটে) পতাকাটি ব্যবহার করার জন্য আইএমএইচও রয়েছে । সুরকার বেশিরভাগ দৃশ্যে চালিত হয় যেখানে এটি পছন্দসই আচরণ:

বুনিয়াদি সুরকার ওয়ার্কফ্লো নিম্নরূপ:

  • একটি নতুন প্রকল্প শুরু হয়েছে composer.phar install --dev:, জেসন এবং লক ফাইলগুলি ভিসিএসে চালিত হয়।
  • অন্যান্য বিকাশকারীরা প্রকল্পটিতে কাজ শুরু করে: ভিসিএস এবং চেকআউট composer.phar install --dev
  • একটি ডেভেলপার dependancies যোগ করেছেন: composer.phar require <package>, যোগ --devআপনি প্যাকেজ চান তাহলে require-devঅধ্যায় (এবং কমিট)।
  • অন্যরা পাশাপাশি যান: (চেকআউট এবং) composer.phar install --dev
  • একজন বিকাশকারী নির্ভরতার নতুন সংস্করণ চায়: composer.phar update --dev <package>(এবং প্রতিশ্রুতিবদ্ধ)।
  • অন্যরা পাশাপাশি যান: (চেকআউট এবং) composer.phar install --dev
  • প্রকল্প মোতায়েন করা হয়: composer.phar install --no-dev

আপনি দেখতে পাচ্ছেন --devপতাকাটি পতাকাটির চেয়ে বেশি (বেশি দূরে) ব্যবহৃত হয় --no-dev, বিশেষত যখন প্রকল্পে কাজ করা বিকাশকারীদের সংখ্যা বৃদ্ধি পায়।

উত্পাদন মোতায়েন

"দেব" নির্ভরতা ইনস্টল না করে এটি স্থাপন করার সঠিক উপায় কী?

ভাল, composer.jsonএবং composer.lockফাইলটি ভিসিএসের কাছে প্রতিশ্রুতিবদ্ধ হওয়া উচিত। বাদ দেবেন না composer.lockকারণ এতে প্যাকেজ-সংস্করণগুলির গুরুত্বপূর্ণ তথ্য রয়েছে যা ব্যবহার করা উচিত।

কোনও প্রোডাক্ট মোতায়েন করার সময় আপনি --no-devপতাকাটি সুরকারকে দিতে পারেন:

composer.phar install --no-dev

composer.lockফাইল দেব-প্যাকেজ সম্পর্কে তথ্য থাকতে পারে। এটা কোন ব্যাপার না। --no-devপতাকা নিশ্চিত সেই দেব-প্যাকেজগুলি ইনস্টল করা হয়নি করতে হবে।

আমি যখন "উত্পাদন স্থাপনা" বলি, তখন আমার অর্থ এমন একটি মোতায়েন করা যা উত্পাদনে ব্যবহৃত হচ্ছে being আমি composer.phar installকোনও প্রোডাকশন সার্ভারে বা স্টেজিং সার্ভারে করা উচিত কিনা তা নিয়ে তর্ক করছি না যেখানে জিনিসগুলি পর্যালোচনা করা যেতে পারে। এটি এই উত্তরের সুযোগ নয়। আমি কেবল composer.phar install"দেব" নির্ভরতা ইনস্টল না করে কীভাবে নির্দেশ করছি poin

অন্য প্রসঙ্গ

--optimize-autoloaderপতাকা উৎপাদনের উপর কাম্য হতে পারে (এটি একটি শ্রেণী-মানচিত্র যা আপনার অ্যাপ্লিকেশনের মধ্যে autoloading গতি বাড়াতে হবে উত্পন্ন):

composer.phar install --no-dev --optimize-autoloader

অথবা যখন স্বয়ংক্রিয় স্থাপনা সম্পন্ন হবে:

composer.phar install --no-ansi --no-dev --no-interaction --no-plugins --no-progress --no-scripts --no-suggest --optimize-autoloader

আপনার কোডবেস এটি সমর্থন করলে, আপনি খুঁজে অদলবদল পারে --optimize-autoloaderজন্য --classmap-authoritative। আরও তথ্য এখানে


5
এক ব্যতিক্রম নিয়ে যা বলা হয় তার বেশিরভাগের সাথে আমি একমত। "সুরকার ইনস্টল - না-দেব" কেবলমাত্র একটি মঞ্চ পরিবেশে কার্যকর করা উচিত এবং সেই পরিবেশটিকে অপরিবর্তনীয় বলে বিবেচনা করা উচিত। আমি সরাসরি আমার প্রোডাকশন সার্ভারে এবং প্রাকদর্শন / মঞ্চায়ন ছাড়াই কোনও নির্ভরতা ডাউনলোড করতে চাই না। এটি কেবলমাত্র একটি অতিরিক্ত সতর্কতা।
স্কেলযোগ্য

3
@ স্কেলেবল: যদিও আমি আপনার সাথে একমত (এবং সোভেন তার উত্তরে এটি দুর্দান্তভাবে কভার করে) তবে এটি আমার উত্তরের ক্ষেত্র নয় এবং আমি "প্রোডাকশন মোতায়েন" বলতে কী বোঝাতে চাইছি তা নয়। এটি পরিষ্কার করার জন্য আমি একটি অনুচ্ছেদ যুক্ত করেছি।
জ্যাস্পার এন। ব্রাউউয়ার

5
আসলে আমি মনে করি ডিফল্টটি কম বিপজ্জনক বিকল্প হওয়া উচিত। - দেবদেবকে ডিফল্ট করা এবং ঘটনাক্রমে উত্পাদনে কোনও সুরকার ইনস্টল করা মারাত্মক হতে পারে।
হেক্টর আরডোনজ

3
ভাল পয়েন্ট --optimize-autoloader। এছাড়াও বিবেচনা করুন --classmap-authoritative- getcomposer.org/doc/03-cli.md ডকুমেন্টেশন থেকে আপনি এটি দেখতে পারেন: "ক্লাসম্যাপ থেকে কেবল অটোল্যাড ক্লাসগুলি। সেখানে ", যা সম্ভবত আপনার উন্নত পরিবেশে ঘটতে হবে যদি না আপনি গতিশীল ক্লাস তৈরি করেন।
জাভি মন্টেরো

6
দুর্দান্ত উত্তর, আমি এতে optimize-autoloaderসরাসরি যুক্ত করার পরামর্শ দেব composer.json:{"config": { "optimize-autoloader": true } }
ইয়ান

79

প্রকৃতপক্ষে, আমি প্রযোজনা সার্ভারের উপর নির্ভরশীলতা ইনস্টল করার জন্য সুপারিশ করব।

আমার সুপারিশটি হ'ল ডিপ্লোমেন্ট মেশিনে কোডটি চেকআউট করা, প্রয়োজন অনুসারে নির্ভরতা ইনস্টল করা (এতে কোডটি প্রোডাক্টে চলে গেলে ডেভ ডিপেন্ডেন্সি ইনস্টল না করা) এবং তারপরে সমস্ত ফাইলকে টার্গেট মেশিনে স্থানান্তরিত করা।

কেন?

  • ভাগ করা হোস্টিংয়ে, আপনি কোনও কমান্ড লাইনে যেতে সক্ষম নাও হতে পারেন
  • এমনকি যদি আপনি করেন তবে পিএইচপি কমান্ড, মেমরি বা নেটওয়ার্ক অ্যাক্সেসের ক্ষেত্রে সীমাবদ্ধ থাকতে পারে
  • রিপোজিটরি সিএলআই সরঞ্জামগুলি (গিট, এসভিএন) ইনস্টল না হওয়ার সম্ভাবনা রয়েছে, যা যদি আপনার লক ফাইলটি জিপ হিসাবে কমিট ডাউনলোড করার পরিবর্তে কোনও নির্দিষ্ট প্রতিশ্রুতি চেকআউট করার জন্য নির্ভরতা রেকর্ড করে থাকে তবে আপনি ব্যর্থ হবেন (আপনি - প্রিপ্রেস-উত্স ব্যবহার করেছেন, বা সুরকার করেছিলেন সংস্করণটি পাওয়ার অন্য কোনও উপায় নেই)
  • যদি আপনার প্রোডাকশন মেশিনটি একটি ছোট পরীক্ষার সার্ভারের মতো হয় (মনে করুন আমাজন ইসি 2 মাইক্রো উদাহরণ) কার্যকর করার জন্য সম্ভবত যথেষ্ট মেমরি ইনস্টল করা হয়নি composer install
  • সুরকার কোনও বিরতি না দেওয়ার চেষ্টা করার সময়, আপনি আংশিক ভাঙা উত্পাদনের ওয়েবসাইটের সাথে সমাপ্তি সম্পর্কে কীভাবে অনুভব করছেন কারণ সুরকার ইনস্টল পর্বের সময় কিছু র্যান্ডম নির্ভরতা লোড করা যায়নি

দীর্ঘ গল্প সংক্ষিপ্ত: আপনি যে পরিবেশটি নিয়ন্ত্রণ করতে পারেন তাতে সুরকার ব্যবহার করুন। আপনার বিকাশ মেশিনটি যোগ্যতা অর্জন করবে কারণ আপনার কাছে সুরকার পরিচালনার জন্য প্রয়োজনীয় সমস্ত জিনিস ইতিমধ্যে রয়েছে।

-দেব নির্ভরতা ইনস্টল না করে এটি স্থাপন করার সঠিক উপায় কী?

কমান্ডটি ব্যবহার করা হয়

composer install --no-dev

এটি যে কোনও পরিবেশে কাজ করবে, এটি নিজেই প্রোডাকশন সার্ভার, অথবা একটি ডিপ্লোয়মেন্ট মেশিন, বা ডেভলপমেন্ট মেশিন যে কোনও ডেভ প্রয়োজনীয়তা সত্যিকারের সফ্টওয়্যারটির জন্য ভুলভাবে ব্যবহৃত হয়েছে কিনা তা খুঁজে বের করার জন্য শেষ চেক করার কথা রয়েছে।

কমান্ডটি কম্পোজারলক ফাইলটিতে ঘোষিত দেব প্রয়োজনীয়তা ইনস্টল করবে না বা সক্রিয়ভাবে আনইনস্টল করবে না।

আপনি যদি কোনও প্রোডাকশন সার্ভারে ডেভলপমেন্ট সফ্টওয়্যার উপাদান মোতায়েন করতে আপত্তি করেন composer installনা তবে দৌড়ানো একই কাজ করবে তবে কেবল চারদিকে সরানো বাইটের পরিমাণ বাড়িয়ে দেবে এবং একটি বড় অটোলোডার ঘোষণার ব্যবস্থা করবে।


14
জবর কর্মপ্রবাহ, কিন্তু একটি বড় বিরূদ্ধে : সংগ্রহস্থল বিক্রেতা ফোল্ডারের ধারণ না করা উচিত / বিষয়বস্তু নিজেই (রচয়িতা পৃষ্ঠাতে সরকারী বিবৃতি), তাই তারা কখনো সরাসরি একটি Git ভিত্তিক স্থাপনার উৎপাদন পর্যন্ত পিছিয়ে দেয় হবে (যা একটি সাধারণ মান আমি যতদূর জানি হয়, আমি ভুল হলে শুধরে). সুতরাং মূলত উপরের সমাধানটি কেবল "পুরাতন-স্কুল" এফটিপি-স্থাপনার সাথে কাজ করে !? দয়া করে এটি আরও আলোচনা করুন ...
স্লিক

17
আমার প্রস্তাবিত ওয়ার্কফ্লোতে কোডটি জিআইটি-র মাধ্যমে প্রোডাকশন সার্ভারে চাপানো অন্তর্ভুক্ত নয়। আসলে, আমি এর বিপরীতে সুপারিশ করব, কারণ এটি করা আপনাকে প্রোডাকশন সার্ভারে সুরকার নির্ভরতা ইনস্টল করতে বাধ্য করবে, যা যে কোনও সমস্যা আনতে পারে। আপনি যদি আপনার স্থাপনাটি সুচারুভাবে চালাতে চান তবে আপনি বর্তমান সংস্করণটি ধ্বংস করে প্রতিস্থাপনের আগে অ্যাপ্লিকেশনটি চালানোর জন্য প্রয়োজনীয় সমস্ত কোড একত্রিত করতে হবে। এফটিপি পছন্দ করেন না? এসএসএইচ এর মাধ্যমে আর সিঙ্ক, তারপরে একটি সিমিলিংক উল্টিয়ে সংস্করণগুলি স্যুইচ করুন। আপনি চাইলে আপনি ধাক্কা, চেকআউট এবং সুরকার ইনস্টল করতে পারেন।
সেভেন

2
@ পানিক: আমি আপনার মন্তব্যের সেই অংশটি দেখেছি এবং আমাকে উত্তর দিতে হবে: "গিট-ভিত্তিক স্থাপনায় উত্পাদনের দিকে ধাক্কা দেওয়া (যা একটি সাধারণ মান আফিক, আমি ভুল হলে আমাকে সংশোধন করি)" - না, এটি সাধারণ মান নয়। এটি করার একমাত্র উপায়।
সেভেন

1
আমি যে দলটিতে আছি তারা এটিকে তাদের কর্মপ্রবাহে দুর্দান্ত সাফল্যের সাথে অন্তর্ভুক্ত করেছে। আমাদের একটি বিল্ড মেশিন রয়েছে (জেনকিনস অবশ্যই) যা: 1) এসসি 2 থেকে চেক আউট করে) সুরকার ইনস্টল / আপডেট 3 চালায়) ইউনিট পরীক্ষা চালায় 4) দেব নির্ভরতা অপসারণ করে 5) একটি ফার ফাইল উত্পন্ন করে ( app-1.34.pharইত্যাদি)। এখানে একটি পৃথক প্রক্রিয়া রয়েছে যা বিজ্ঞপ্তিযুক্ত এবং সিদ্ধান্ত নেয় যে কখন সেই ফাইলটি দখল করতে হবে, কোথায় তা স্থানান্তর করতে হবে এবং তারপরে এটি কী করবে। কিছু টিম সার্ভারে উপস্থিত হয়ে ফার আনপ্যাক করা পছন্দ করে এবং কিছু দল সেটিকে যেমন চালায় তেমন চালায়। এটি আমাদের মোতায়েনের স্থিতিশীলতা এবং প্রজননযোগ্যতার প্রতি প্রচুর আত্মবিশ্বাস দিয়েছে।
জোশ জনসন

3
আমি এই উত্তরের সাথে 100% সম্মত রচনা সার্ভারে সুরকার ইনস্টল করা উচিত নয়, না গিট। অবিচ্ছিন্ন স্থাপনা / সংহত সার্ভারগুলি সঠিকভাবে উত্স এবং নির্ভরশীলতাগুলি আনার জন্য পরিচালনা করা হয়: গিট টান> সুরকার ইনস্টল> স্থাপন করুন
এরিক মোরান্দ

4

require-devস্থানীয় বিকাশের জন্য এখন নাও ডিফল্টরূপে সক্ষম করা হয়েছে composer installএবং বিকল্পটি composer updateছাড়াই করতে পারেন --dev

আপনি উৎপাদন স্থাপন করতে চাইলে আপনি নিশ্চিত করার জন্য প্রয়োজন হবে composer.lockপ্যাকেজগুলি থেকে এসেছিলেন নেই require-dev

আপনি এটি দিয়ে এটি করতে পারেন

composer update --no-dev

একবার আপনি স্থানীয়ভাবে পরীক্ষা --no-devকরে নেওয়ার পরে আপনি উত্পাদনে সবকিছু স্থাপন করতে পারেন এবং এর উপর ভিত্তি করে ইনস্টল করতে পারেন composer.lock। আপনার --no-devএখানে আবার বিকল্পের দরকার আছে, অন্যথায় সুরকার বলবেন "লক ফাইলে প্রয়োজনীয় ডেভ তথ্য থাকে না"

composer install --no-dev

দ্রষ্টব্য: দেব এবং উত্পাদনের মধ্যে পার্থক্য প্রবর্তনের সম্ভাবনা রয়েছে এমন যে কোনও বিষয়ে সতর্ক থাকুন! আমি সাধারনত যেখানে প্রয়োজন সেখানে ডিভেলড-এড়ানো চেষ্টা করি, কারণ ডেভ সরঞ্জামগুলি সহ কোনও বড় ওভারহেড নয়।


1
এটি বিবরণে আসলে ভুল। composer.lockদেব নির্ভরতা পরীক্ষা করার দরকার নেই । আপনি কেবল চালাতে চান composer install --no-dev, এবং আপনি কেবল নিয়মিত নির্ভরতা ইনস্টল করবেন - বাস্তবে, সুরকার এই পদক্ষেপের যে কোনও দেব নির্ভরতাও সরিয়ে ফেলবেন।
সেভেন

আমার স্থানীয় যদি এর composer.lockমধ্যে ডেভ নির্ভরতা থাকে (এবং সম্ভাব্যভাবে নন-ডেভ প্যাকেজগুলির সংস্করণগুলিকে প্রভাবিত করে) তবে এটি উত্পাদনে কেমন হবে তা প্রতিবিম্বিত করতে আমি এটি আপডেট করতে চাই। এটি আপনাকে composer install --no-devউত্পাদন চালাতে বাধ্য করে , তেমনি composer installত্রুটিও করবে। প্রযুক্তিগতভাবে আমি মনে করি আপনি ঠিক বলেছেন; এটি প্রয়োজনীয় নয়, তবে এটি সুরক্ষার একটি অতিরিক্ত স্তর, যা আমি পছন্দ করি।
dave1010

ঠিক আছে, ডেমো দৃশ্য: আপনার অ্যাপ্লিকেশনটির প্রয়োজন dev/toolএবং prod/lib:~1.0। সর্বাধিক নতুন প্রোড / লিব 1.3, তবে দেব / সরঞ্জামেরও প্রয়োজন prod/lib:1.1.*। ফলাফল: আপনি সংস্করণ 1.1.9 ইনস্টল করবেন (1.1.x শাখার নতুন) এবং এটি আপনার বিকাশের সময় ব্যবহার করবেন। আমি বলব যে এটি কেবল আপডেট করা নিরাপদ নয় --no-dev, এইভাবে নতুন প্রোড / লাইব ১.৩ অন্তর্ভুক্ত করুন এবং ধরে নিন যে পরীক্ষা না করেই সবকিছু কাজ করে। এবং সম্ভবত ডিভাইস / সরঞ্জামের অভাবে টেস্টিং অসম্ভব। আমি ধরে নেব যেহেতু দেব / সরঞ্জাম উত্পাদনের প্রয়োজন হয় না, এটি ঘূর্ণিত হওয়া উচিত নয়, তবে সফ্টওয়্যারটির অবশ্যই প্রোড / লিব 1.1.9 ব্যবহার করা উচিত।
সেভেন

আপনি যদি ব্যবহার করে থাকেন --no-devতবে আপনার স্থানীয়ভাবে এটি পরীক্ষা করা দরকার, যেমনটি আমি উত্তরে উল্লেখ করেছি। আমি এখনও কিছু না ব্যবহার --no-devকরার পরামর্শ দিই ।
dave1010

সুতরাং মূলত আপনি এটির পরামর্শ দিন:, composer updateতারপরে কিছু বিকাশ করুন, তারপরে করুন composer update --no-dev, তারপরে রিলিজ টেস্টিং করুন, তারপরে উত্পাদনের দিকে ধাক্কা দিন এবং করুন composer install --no-dev। দুটি সমস্যা: 1. আমি দেব নির্ভরতা ছাড়াই মুক্তি পরীক্ষা করতে পারি না, এবং 2. উদাহরণস্বরূপ উত্পাদনে গিট দিয়ে আমি ইনস্টল করতে পারি না।
সেভেন

3

প্রোডাকশন সার্ভারগুলিতে আমি নতুন নামকরণ vendorকরিvendor-<datetime> , এবং নিয়োজন সময় দুই বিক্রেতা dirs থাকবে।

একটি HTTP কুকি আমার সিস্টেমটিকে নতুন বিক্রেতাকে বেছে নেওয়ার কারণ করে causes autoload.php , এবং পরীক্ষার পরে আমি ভবিষ্যতের সমস্ত অনুরোধের জন্য পুরানো বিক্রেতা দিরকে অক্ষম করতে তাদের মধ্যে সম্পূর্ণ পারমাণবিক / তাত্ক্ষণিক সুইচটি করি, তারপরে আমি কয়েক দিন পরে পূর্ববর্তী দিরটিকে মুছি।

এটি আমি অ্যাপাচি / পিএইচপি ব্যবহার করছি এমন ফাইল সিস্টেমের ক্যাশেগুলির ফলে যে কোনও সমস্যা এড়ানো যায় এবং যে কোনও সক্রিয় পিএইচপি কোডটি পূর্ববর্তী বিক্রেতাদের সাথে ব্যবহার করতে চালিয়ে যাওয়ার অনুমতি দেয়।


অন্যান্য উত্তরগুলির বিরুদ্ধে প্রস্তাব দেওয়ার পরেও আমি ব্যক্তিগতভাবে composer installসার্ভারে চালিত করি , যেহেতু এটি আমার স্টেজিং অঞ্চল (আমার ল্যাপটপের একটি ভিএম) থেকে আরএসএনসি-র চেয়ে দ্রুত is

আমি ব্যবহার --no-dev --no-scripts --optimize-autoloader। আপনার পরিবেশে এটি উপযুক্ত কিনা তা পরীক্ষা করার জন্য আপনার প্রত্যেকের জন্য দস্তাবেজগুলি পড়া উচিত।


2

আমি মনে করি প্রক্রিয়াটি আরও ভালভাবে স্বয়ংক্রিয় করা হয়েছে:

আপনার গিট সংগ্রহস্থলটিতে কম্পোজারআলক ফাইলটি যুক্ত করুন, নিশ্চিত করুন আপনি মুক্তি দেওয়ার সময় কমপোজার.ফার ইনস্টল করুন - নন -ডেভ ইনস্টল করেছেন তবে আপনার ডিভাইস মেশিনে আপনি কোনও সুরকার কমান্ড ব্যবহার করতে পারেন উদ্বেগ ছাড়াই, এটি কোনও প্রোডাক্টে যাবে না, উত্পাদন লক ফাইলটিতে তার নির্ভরতা ভিত্তিক করবে।

সার্ভারে আপনি এই নির্দিষ্ট সংস্করণ বা লেবেলটি চেকআউট করেন এবং অ্যাপটি প্রতিস্থাপনের আগে সমস্ত পরীক্ষা চালান, যদি পরীক্ষাগুলি পাস করে আপনি স্থাপনা চালিয়ে যান।

যদি পরীক্ষাটি ডিভ নির্ভরতার উপর নির্ভর করে, যেমন সুরকারের পরীক্ষার সুযোগ নির্ভরতা না থাকে, তবে ডিভ নির্ভরতা ( কমপোজারফার ইনস্টল ) এর সাহায্যে খুব মার্জিত সমাধানটি পরীক্ষা চালানো যায় না , বিক্রেতা গ্রন্থাগারটি সরিয়ে ফেলুন, কমপোজারফার ইনস্টল চালান - -না-দেব , এটি ক্যাশেড নির্ভরতা ব্যবহার করবে তাই দ্রুত। আপনি যদি অন্য বিল্ড সরঞ্জামগুলিতে স্কোপগুলির ধারণাটি জানেন তবে এটি হ্যাক

এটি স্বয়ংক্রিয় করুন এবং বাকিগুলি ভুলে যান, একটি বিয়ার পান করুন :-)

পিএস: @ স্যভেন মন্তব্যে বেলো হিসাবে, কমপোজারলক ফাইলটি চেকআউট না করা ভাল ধারণা নয়, কারণ এটি সুরকার আপডেট হিসাবে কাজ সুরকারকে ইনস্টল করার কাজ করবে।

আপনি http://deployer.org/ দিয়ে অটোমেশনটি করতে পারেন এটি একটি সাধারণ সরঞ্জাম।


2
প্রতিশ্রুতিবদ্ধ না করা এবং চেক আউট করা এর মতো কাজ composer.lockকরবে । সুতরাং আপনার ব্যবহৃত সংস্করণগুলি আপনার দ্বারা বিকাশকৃত নয়। এটি সমস্যা তৈরি করতে পারে (এবং আরও অনেক কিছু সম্প্রতি সুরক্ষিত সুরকার সমস্যার সমাধানে সুরকারের "প্রতিস্থাপন")। আপনার যাচাই করা ছাড়াই অযত্নে চালানো উচিত কখনই এটির কিছু ভাঙেনি।composer installcomposer updatecomposer update
সেভেন

1
@ এসভেন এই একই মন্তব্যে প্রস্তাব দেওয়ার আগে ইউনিট পরীক্ষা স্বয়ংক্রিয়ভাবে চালানোর জন্য। তবে আপনি ঠিক বলেছেন, এটি যাইহোক কমপোজার.লক ফাইলটি রাখা ভাল।
জিওভান্নি সিলভা

এখন আপনাকে যা বোঝাতে হবে তা হল: পিএইচপিউনাইটের মতো দেব নির্ভরতা ছাড়াই আপনি সার্ভারে কীভাবে পরীক্ষা চালাবেন?
সেভেন

খুব সুন্দর হবে, যদি নির্ভরতা, পরীক্ষা এবং স্থাপনা একসাথে জাভা গ্রেডল বা এসবিটি বা ম্যাভেনের মতো (ম্যাভেন এত ভাল না হয়) এক জায়গায় রাখা হয়। একটি পিএইচপি সরঞ্জাম যা সুরকার phpunit এবং স্থাপনার একসাথে কাজ করে। অথবা এই জিনিসগুলি তৈরি করার জন্য একটি গ্রেডল বা স্কালা এসবিটি প্লাগইন, যেমন তারা অজ্ঞেয়াদি বিল্ড সরঞ্জামগুলি রয়েছে, প্লাগইন এমনকি জাভাস্ক্রিপ্টকে হ্রাস করা এবং স্যাসে সংকলন, সিএসএস ন্যূনতম করার মতো সম্পদের সাথেও কাজ করতে পারে। কেউ কিছু জানেন?
জিওভান্নি সিলভা

1
অবশ্যই এটি প্রকৃত পরিবেশ পরীক্ষা করার জন্য সার্ভারে করা হয়েছে, তবে সাইট ভোস্টে সরাসরি নয়, আপনি এটি একটি পৃথক অস্থায়ী ফোল্ডারে রেখে ফলটি হোস্টে স্থানান্তরিত করতে পেরে সফল হতে পারেন
জিওভান্নি সিলভা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.