সাব ফোল্ডার এবং ক্লাসের নামস্থান কীভাবে করবেন


11

ড্রুপাল 7-এ আমি অন্য একটি মডিউলের ভিতরে মডিউল রাখতে পারি। এটি কি এখনও ড্রুপাল 8-এ রয়েছে এবং আমি কীভাবে সাব মডিউলটির ভিতরে ক্লাসের নাম স্থান করব?

ড্রুপাল in-তে আমি আর একটি জিনিস করতে পারি তা হ'ল আমার মডিউলগুলি গ্রুপ করতে মডিউল ফোল্ডারের ভিতরে সাব ফোল্ডার তৈরি করা।

উদাহরণ:

সাইট
--- / সব
--- / --- / মডিউল
--- / --- / --- / Collection_Alpha
--- / --- / --- / --- / module_a
--- / - - / --- / --- / মডিউল_বি
--- / --- / --- / সংগ্রহ_বেতা
--- / --- / --- / --- / মডিউল_এক্স
--- / --- / --- / --- / মডিউল_ y

ড্রুপাল 8 এ এটি কি এখনও সম্ভব? যদি হ্যাঁ, তবে আমার ক্লাসের নামস্থান কীভাবে করতে হবে যাতে অটোলোডার এটি সঠিক ফোল্ডার কাঠামোয় সমাধান করতে পারে?

যেমন: ড্রুপাল \ কালেকশন_আল্ফা \ মডিউল_এ \ মাই ক্লাস 1?


2
আমি নিশ্চিত যে নেমস্পেস রেজোলিউশনটি "/ पथ / থেকে / মডিউল / এসসিআর" হিসাবে নিবন্ধিত হবে, সুতরাং আপনাকে 'সাব' মডিউলগুলির জন্য আলাদা কিছু করার দরকার নেই। অর্থাত্ মূল মডিউলটি Drupal\my_module'মাই_মডিউল / এসসিআর' তে থাকবে, সাব মডিউলটি Drupal\my_submodule'মাই_মডিউল / মডিউল / মাই_সুবডিউল / এসসিআর' তে থাকবে এবং আরও
ক্লাইভ

ধন্যবাদ ক্লাইভ, এটি উপলব্ধি করে! সাব ফোল্ডার সম্পর্কে কী? কোনও ধারণা যদি এটি এখনও সমর্থিত হয় এবং এটি কোনও শ্রেণীর অটোলয়েডিংয়ের সাথে কেমন দেখায়?
ডাস্টিনমোরিস

উত্তর:


7

@ ক্লাইভ সঠিক

নামস্থান সর্বদা Drupal\{module_name} । যেখানে মডিউলটির জীবনটি অপ্রাসঙ্গিক (যতক্ষণ না কোথাও এটি দ্রুপাল এটি খুঁজে পেতে পারে)। এই নামস্থান সর্বদা নির্দেশ করে $path_to_module/src

এটি সম্ভবত অন্য কোনও উপায়ে কাজ করবে না। বিভিন্ন সাইটে আলাদা কাঠামো এবং বিভিন্ন জায়গায় মডিউল থাকে তবে একই কোড যেখানেই থাকুক না কেন কাজ করতে হয়।


ধন্যবাদ ক্লাইভ এবং বারদির! আমার ধারণা আমার আরও একটি ফলোআপ প্রশ্ন রয়েছে: মডিউলগুলির ফোল্ডারেও নির্দেশ করে এমন কোনও অতিরিক্ত নেমস্পেস নিবন্ধন করা সম্ভব? উদাহরণস্বরূপ: ড্রপালমডিউলস {{মডিউল_নাম} point পন্থা_তো_মডিউল / এসসিআর তে নির্দেশ করতে? আমি একদিন ডি 8 এ যাওয়ার সময় কীভাবে আমাদের ক্লাসগুলি ডিজাইন করতে হবে তা আরও ভাল করে জিজ্ঞাসা করছি।
ডাস্টিনমোরিস

1
ক্লাসগুলি যদি দ্রুপাল-নির্দিষ্ট হয় (যেমন আপনি একটি স্বতন্ত্র লাইব্রেরি লিখছেন না), তাত্ত্বিকভাবে এটি \Drupalধারাবাহিকতার জন্য তাদের অধীনে রাখাই ভাল । তবে আকর্ষণীয় প্রশ্ন তবুও, আমি আপনাকে এটি একটি পৃথক প্রশ্ন হিসাবে জিজ্ঞাসা করতে উত্সাহিত করব। আসলে আপনি যদি না করেন তবে আমি সম্ভবত করব :)
ক্লাইভ

1
আপনি সম্ভবত, হ্যাঁ, system_register () এবং drupal_classloader_register () দেখতে পেতেন। এই সহায়কগুলি হার্ডকোড "দ্রুপাল \" ফাংশন করে তবে আপনি সরাসরি ক্লাস_লোডার পরিষেবা পেতে পারেন। তবে @ ক্লাইভ যেমন বলেছিলেন, আমি এটি করার পরামর্শ দিচ্ছি না, যদি না আপনি কোনও বাহ্যিক লাইব্রেরি অন্তর্ভুক্ত করেন তবে তা করার কোনও কারণ নেই।
বেরদির

কুলিও! ধন্যবাদ বন্ধুরা! @ ক্লাইভ: আপনি যেমন পরামর্শ দিয়েছিলেন আমি drupal.stackexchange.com/questions/142309/…
ডাস্টিনমোরিস

কাঠামোটি দেখতে আপনি ইতিমধ্যে মঙ্গোদব মডিউলটি পরীক্ষা করতে পারেন।

6

নেমস্পেসগুলি পিএসআর -4 অটোল্যাডের উপর ভিত্তি করে, http://www.php-fig.org/psr/psr-4 স্পেসিফিকেশন পরীক্ষা করুন

আপনি যদি সাব-মডিউলগুলি করতে চান তবে আপনি পরবর্তী ফোল্ডার কাঠামোটি ব্যবহার করতে পারেন। D8:

/modules
   my_module/
     src/
      Controller/
        A.php
     modules/
       my_sub_module/
         src/
          Controller/
            B.php

"আমার_মডিউল" এর নামস্থান:

Drupal\my_module\Controller\A

"আমার_সুব_মডিউল" এর নামস্থান:

Drupal\my_sub_module\Controller\B

দেখুন PSR-4 নামব্যবধান এবং Drupal এর 8 autoloading আরও তথ্যের জন্য।


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