magento 2 - কোন ক্ষেত্রে আমাদের এই কমান্ডটি magento সেটআপ চালাতে হবে: di: সংকলন করুন?


12

কোন ক্ষেত্রে আমাদের এই কমান্ডটি চালানো দরকার magento setup:di:compile?


একবার আপনি নতুন মডিউল ইনস্টল করে নিলেন এবং কয়েকটি ডিরেক্টরি সাফ করতে চান
জালিল


এছাড়াও যখন আপনি উত্পাদন মোডে স্যুইচ করেন কারণ সেই মোডে কোনও স্থির সামগ্রী তৈরি হয় না; এটি সব থেকে পরিবেশিত হচ্ছেpub/static
স্টিভ জনসন

উত্তর:


8
  • মোতায়েনের সময় (যেমন যখন উত্পাদন পদ্ধতিতে কোনও সিস্টেমে পরিবর্তন করা হয়েছিল)

    নোট করুন যে উত্পাদন মোডে (সংস্করণ 2.0.5 এবং তার আগের) আপনার অবশ্যই "মাল্টি-টেন্যান্ট" সংকলনটি ব্যবহার করতে পারেন। ২.০..6 এবং তারপরে স্থির।

    bin/magento setup:di:compile-multi-tenant

    দেখুন: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-compiler.html

  • আপনি ডেভলপমেন্ট মোডে সংকলনও ব্যবহার করতে পারেন, যা সাইটের গতি বাড়িয়ে তুলবে, তবে অন্যদিকে এটি উন্নয়নকে ধীর করে দেয়, কারণ আপনার bin/magento setup:di:compileপ্রতিবার নির্ভরতা (কনস্ট্রাক্টর প্যারামিটার) বা বিদ্যমান শ্রেণীর পরিবর্তিত নির্ভরতা সহ নতুন ক্লাস যুক্ত করার সময় আপনাকে চালনা করতে হবে ।

    এটি alচ্ছিক এবং এটি সম্ভবত একটি ভাল ধারণা নয়। আপনি যদি ইতিমধ্যে আপনার বিকাশের পরিবেশে সংকলনটি চালিয়ে যান তবে ফাইলগুলি var/diঅক্ষম করতে মুছুন ।


1
সেটআপ: ডি: কম্পাইল-মাল্টি-টেন্যান্ট সরানো হয়েছে
আন্তোনিও বোনুমোর

আমরা কী দয়া করে ভেরি / ডি ফোল্ডার ট্রিকটি মোছার কাজ করে কিনা তা সম্পর্কে কিছু নিশ্চিতকরণ পেতে পারি? এটি আমার কাছে মনে হয় না
ওয়াইল্ডকার্ড

@ ওয়াইল্ডকার্ড 27 আপনি যদি ডিরেক্টরিগুলি মুছে ফেলেন তবে কী হবে var/generation?
ফ্যাবিয়ান শেমংলার

@ ফ্যাবিয়ানশ্মেঙ্গলার সবেমাত্র Actionপরীক্ষা করার জন্য একটি তৈরি করেছেন । - পৃষ্ঠাটি লোড হয়েছে, ত্রুটি। - মোছা diএবং generationফোল্ডারগুলি, পুনরায় লোড করা, কাজ করে। - নতুন নির্ভরতা যুক্ত করুন, পৃষ্ঠাটি পুনরায় লোড করুন, ত্রুটি। তবে কোনও diফোল্ডার তৈরি করা হয় না। - generationআবার মুছুন , পুনরায় লোড করুন, কাজ করে। উপসংহার: নির্ভরতা যুক্ত করার পরে প্রজন্মের ফোল্ডারটি মুছুন এবং আপনাকে চালাতে হবে না setup:di:compile। যদি অন্য কেউ এটি নিশ্চিত করতে পারত তবে তা দুর্দান্ত।
ওয়াইল্ডকার্ড

1

অন্য উত্তরে আমার মন্তব্য অনুসারে:

আপনি পৃষ্ঠাটি পুনরায় লোড করার আগেsetup:di:compile কেবলমাত্র var/diএবং var/generationফোল্ডারগুলি মুছে ফেলার মাধ্যমে প্রতিবারের মতো চাপ যোগ করার পরে আপনি কমান্ডটি চালানো এড়াতে পারবেন ।

আমার নিজের পরীক্ষাগুলি থেকে, ম্যাজেন্টো var/generationফোল্ডারটি পুনরায় তৈরি করবে , তবে var/diফোল্ডারটি setup:di:compileআবার না চালানো পর্যন্ত নয় । এর অর্থ আপনার var/generationমুছতে মুছতে কেবল ফোল্ডারটি থাকা উচিত ।

অদ্ভুতভাবে যথেষ্ট, এটি সঙ্গে কাজ করে pub/static/*এবং setup:static-content:deploy। এটি কারণ ম্যাজেন্টো সিএলআইয়ের পরিবর্তে পৃষ্ঠা পুনরায় লোড দ্বারা স্ট্যাটিক সামগ্রী তৈরি করে থাকলে প্রয়োজনীয় ফাইলগুলিতে সিমলিঙ্ক তৈরি করে বলে মনে হচ্ছে।

আমাদের অফিসের লোকেরা ম্যাকের জন্য ডকার ব্যবহার করার সময় উপরের কমান্ডগুলি চালাতে সমস্যা হচ্ছিল। ফাইল প্রক্রিয়াজাতকরণটি খুব ধীর ছিল। উপরের পদক্ষেপগুলি ব্যবহার করে, উন্নয়নটি আরও দ্রুত হওয়া উচিত।

উত্পাদনে বা ডিফল্ট মোডে আসার পরে এটি কাজ করবে না এটি সম্ভবত সবচেয়ে ভাল। এটি কেবল উন্নয়নের জন্য। ফ্যাবিয়ান শেমংলার দ্বারা উল্লিখিত হিসাবে, প্রাথমিক পৃষ্ঠা পুনরায় লোড স্বাভাবিকের চেয়ে ধীর হবে তবে চলমান setup:static-content:deployবা `সেটআপ: ডি: সংকলনের মতো ধীর হওয়া উচিত নয় ।

রেফারেন্সের জন্য, আমি সংস্করণ 2.1.5 চালাচ্ছি ।


0

অ্যালান স্টর্মের ব্লগ থেকে নেওয়া ।

নির্ভরতা ইনজেকশন সংকলন

শুরু করার জন্য, আমাদের এই আদেশগুলি সমাধান করার চেষ্টা করছে সেই সমস্যাটি ব্যাখ্যা করা উচিত। আপনি যখন ম্যাজেন্টো 2 সিস্টেম উত্পাদনে প্রেরণ করবেন তখন আপনাকে নিম্নলিখিত কমান্ডটি চালানো দরকার

php bin/magento setup:di:compile

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


1
"এটি উভয়ই পারফরম্যান্স এবং সুরক্ষা বিষয়, এবং এটিকে পুরোপুরি আলোচনা করা এই নিবন্ধের আওতার বাইরে" " এই এটি দূরে দেওয়া। অ্যালান ঝড় থেকে স্থূল অনুলিপি: alanstorm.com/magento_2_di_compile_pre-scan_with_commerce_bug
দীর্ঘসূত্রী Schmengler
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.