ম্যাজেন্টো 2 এ অ্যাডমিন রুট স্থাপন করা হচ্ছে


15

মূল ম্যাজেন্টো 2 কোডটি দেখে মনে হচ্ছে অ্যাডমিন রুট স্থাপনের দুটি উপায় রয়েছে।

প্রথম

#File: vendor/magento/module-media-storage/etc/adminhtml/routes.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="admin">
        <route id="adminhtml">
            <module name="Magento_MediaStorage" />
        </route>
    </router>
</config>

ম্যাজেন্টো ১ এর মতোই You আপনি adminhtmlরুটের মডিউলগুলির তালিকায় আপনার মডিউলটি যুক্ত করেন এবং ম্যাজেন্টো এটি আপনার জন্য পরীক্ষা করে।

দ্বিতীয়

#File: vendor/magento/module-cms/etc/adminhtml/routes.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="admin">
        <route id="cms" frontName="cms">
            <module name="Magento_Cms" before="Magento_Backend" />
        </route>
    </router>
</config>

আপনি কি নতুন রুট সেট আপ করেছেন ( cmsউপরে আইডি ), এবং তারপরে এটিতে আপনার মডিউল যুক্ত করবেন।

এইগুলির মধ্যে একটিটি কি "ম্যাজেন্টো 2" এর সঠিক / পছন্দসই উপায়? তা না হলে দুজনের মধ্যে পার্থক্য কী? অর্থাত্‍ যখন আপনি একটি অপরটি ব্যবহার করবেন?

একটি নির্দিষ্ট সমস্যা সমাধান না করার জন্য জিজ্ঞাসা করছি, তবে আমি সঠিকভাবে আমার রুটগুলি তৈরি করছি এবং ম্যাজেন্টো 1 মডিউলগুলির মতো (এজাক্স লাইব্রেরিতে টানা, সুরক্ষা ইত্যাদি) এড়ানো সমস্যাগুলি নিশ্চিত করা নিশ্চিত করা হচ্ছে।

উত্তর:


23

পার্থক্যটি ইউআরএলগুলিতে। ইউআরএলটির নিম্নলিখিত গঠন রয়েছে: <areaFrontName>/<moduleFrontName>/<actionPath>/<actionName>

রুট "অ্যাডমিনিস্টটিএমএল" এ মডিউলফ্রন্টনাম "অ্যাডমিন" রয়েছে, অঞ্চলফ্রন্টনামের মতো। সুতরাং "প্রশাসনিক" রুটের অধীনে সমস্ত পাথ শুরু হবে admin/admin

আপনি যদি আরও নির্দিষ্ট url রাখতে চান তবে আপনার নির্দিষ্ট রুট ব্যবহার করা উচিত, যেমন ক্যাটালগটি করে। ক্যাটালগ urls সমস্ত দিয়ে শুরু admin/catalog। এটি পছন্দসই উপায়।

তাই পছন্দের কনফিগারেশনটি হ'ল:

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="admin">
        <route id="cms" frontName="cms">
            <module name="Magento_Cms"/>
        </route>
    </router>
</config>

নোট যে before="Magento_Backend"প্রয়োজন হয় না


3
নামকরণ আইডি এবং ফ্রন্টনেম সম্পর্কে কোনও ব্যাখ্যা আছে? অ্যাডমিন অঞ্চলে কি এটি একই হওয়া উচিত? এটি মডিউল নাম ব্যবহার করা উচিত? আইডি যখন এটি কাজ করছে না! = সম্মুখ নাম?
সের্গেই কোরঝভ

4

আমি অ্যাডমিনটিচটিএমএল নিয়ন্ত্রণকারী কীভাবে যুক্ত করব তার উদাহরণগুলি খুঁজতে গিয়ে আমি এটি জুড়ে এসেছি। আমি কিছু গবেষণা করেছি এবং এটি আমি খুঁজে পেয়েছি।

route id="adminhtml"পথ কোর 24 বার ব্যবহার করা হয়।

before="Magento_Backend"পথ কোর 31 বার ব্যবহার করা হয়।

প্রশাসনিক / রুট.এক্সএমএল সহ কেবলমাত্র 50 টি মডিউল রয়েছে তবে 24 + 31 = 55. ইঙ্গিত # 1।

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

আমি তখন লক্ষ্য করেছি কিছু রুটস। এক্সএমএল ফাইল যেখানে route id="adminhtml"বিকল্পটি ব্যবহৃত হয় সেগুলিও ব্যবহার করে before="Magento_Backend", উদাহরণস্বরূপ Magento_UrlRewrite এর রুট.এক্সএমএল ফাইলটি দেখুন । আমি তিনটি বৈকল্পের মধ্যে কোনও চূড়ান্ত মিল খুঁজে পাচ্ছি না।

আমি নতুন মডিউলগুলিও পরীক্ষা করেছিলাম (যা এম 1 তে ছিল না এবং তাই পোর্ট করা যায়নি তবে এম 2 এর জন্য নতুন লেখা হয়েছিল) যেমন অ্যাডভান্সড্রাইসিংপিম্পিং এক্সপোর্ট , ইন্টিগ্রেশন , মিডিয়াস্টোরেজ এবং এনক্রিপশনকি এবং যদিও কিছু ব্যবহার করে before="Magento_Backend"এবং কিছু ব্যবহার করে না, সেগুলি সমস্ত ব্যবহার করে <route id="adminhtml">ট্যাগ। এর মধ্যে before="Magento_Backend"ফেব্রুয়ারী ২০১৫ এ সর্বশেষ পরিবর্তনগুলি পরিবর্তিত হয়েছিল এবং সেই ট্যাগ সহ সমস্তগুলি সেই তারিখের পরে সম্পাদনা করা হয়েছিল ।

সুতরাং, আমার প্রাথমিক উপসংহারটি হ'ল এটি করা পছন্দীয় উপায় (হয় স্পষ্টভাবে অভ্যন্তরীণভাবে ম্যাজেন্টো সদর দপ্তরে সিদ্ধান্ত নিয়েছেন বা না);

<config xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <router id="admin">
        <route id="adminhtml">
            <module name="Your_Extension" before="Magento_Backend"/>
        </route>
    </router>
</config>

আমি এ বিষয়ে স্পষ্টতই ম্যাজেন্টো কোর দেবের অবস্থান শুনতে পছন্দ করব।

আপডেট: অ্যান্টন ক্রিল প্রতিক্রিয়া জানালেন, এটি করার জন্য পছন্দসই উপায়টির জন্য তার উত্তর দেখুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.