Magento 2 ক্লাস একটি বস্তু ম্যানেজার কারখানা ব্যবহার instantiated করা হয়: \Magento\Framework\ObjectManager\Factory\Factory::create()।
এতক্ষণে গু। তবে এখানে এমন কিছু আছে যা আমি বুঝতে পারি না।
ডিআইয়ের জন্য কনস্ট্রাক্টরের কাছে আর্গুমেন্টের কোনও বিজ্ঞপ্তি উল্লেখ নেই কিনা তা যাচাই করার পরে এবং যুক্তিগুলি নির্ধারণের পরে এই ( $argsআর্গুমেন্টগুলি যা কনস্ট্রাক্টরের কাছে প্রেরণ করা উচিত) রয়েছে:
switch (count($args)) {
case 1:
return new $type($args[0]);
case 2:
return new $type($args[0], $args[1]);
case 3:
return new $type($args[0], $args[1], $args[2]);
case 4:
return new $type($args[0], $args[1], $args[2], $args[3]);
case 5:
return new $type($args[0], $args[1], $args[2], $args[3], $args[4]);
case 6:
return new $type($args[0], $args[1], $args[2], $args[3], $args[4], $args[5]);
case 7:
return new $type($args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6]);
case 8:
return new $type($args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6], $args[7]);
default:
$reflection = new \ReflectionClass($type);
return $reflection->newInstanceArgs($args);
}
কেন এই দীর্ঘ switchবিবৃতি? defaultশাখা থেকে সরাসরি কোড ব্যবহার করবেন না কেন ?
বা case8 এ থামবে কেন ? 5 বা 10 বা 127 কেন নয়?
