আমি কীভাবে একটি মডিউলে একটি কাস্টম ক্লাস ফাইল অন্তর্ভুক্ত করব?


10

দ্রুপাল module মডিউল বিকাশে, আমি মডিউল.আইএনপিও ফাইল বা ড্রুপাল_লোড_হিনেড () ফাংশনটিতে [] = ডিরেক্টরি ব্যবহার করে একটি কাস্টম ইনক, এপিআই বা পিএইচপি ক্লাস ফাইল অন্তর্ভুক্ত করতে পারি ।

ডি 8 টি পিএসআর ব্যবহার করে একটি "প্লেইন ওল পিএইচপি অবজেক্ট" প্যাকেজ করার এবং এটিতে উল্লেখ করার সঠিক উপায় কী DefaultController.php? ভালো কিছু চিন্তা করুন: $a = new POPO();।

ক্লাস সমন্বিত পিএইচপি ফাইল দেওয়া কি namespaceযথেষ্ট? নিয়ামক (বা সাধারণভাবে মডিউল) কীভাবে সেই শ্রেণীর জন্য রেফারেন্স বা স্ক্যান করতে জানে?


এই লিঙ্কটি ড্রুপাল 8.x মডিউল তৈরি করা সহায়ক হতে পারে
— কৃষ্ণ মোহন

হ্যাঁ, আমি drupal.org/node/2087879 পড়েছি কিন্তু ফাইলটি [] = নির্দেশনা না দেখে দুর্ভাগ্যক্রমে ফাইল অন্তর্ভুক্তির এই নির্দিষ্ট প্রশ্নের উত্তর দেয়নি।
— রিক

উত্তর:


11

আপনি file[] = ...আর ব্যবহার করবেন না। পরিবর্তে, ক্লাসগুলি অটোলয়েড হয়। উদাহরণস্বরূপ, নিম্নলিখিত ফাইল কাঠামো সহ আমার একটি মডিউল রয়েছে:

  • views_hybrid /
    • views_hybrid.info.yml
    • views_hybrid.module
    • src /
      • প্লাগ লাগানো/
        • ফিল্ড /
          • FieldFormatter /
            • HybridFormatter.php

HybridFormatter.php হাইব্রিড ফরমেটার নামে একটি শ্রেণি সংজ্ঞায়িত করে।

আমার .মডিউল ফাইলে, আমি যদি আমার আইডিই (এই ক্ষেত্রে নেটবিয়ান) টাইপ করতে শুরু করি তবে HybridFormatterএটি স্বয়ংক্রিয়ভাবে পূর্ণ হয় \Drupal\views_hybrid\Plugin\Field\FieldFormatter\HybridFormatter::কারণ এটি অটোলয়েড। যেহেতু আমি পুরো পথটি আমার মডিউলটি ছড়িয়ে দিতে চাই না, শীর্ষে আমি লাইনটি রেখেছি,

use Drupal\views_hybrid\Plugin\Field\FieldFormatter\HybridFormatter;

বরাবর useআমি আমার মডিউল সাথে ব্যবহারের জন্য অন্তর্ভুক্ত করছি অন্য ক্লাসের নির্দেশনা।

নেমস্পেসটি এর মতো হাইব্রিড ফরমেটার.এফপিতে সংজ্ঞায়িত করা হয়েছে:

namespace Drupal\views_hybrid\Plugin\Field\FieldFormatter;

class HybridFormatter extends FormatterBase { ... }

সুতরাং আমি সম্পূর্ণরূপে বুঝতে পারি তা নিশ্চিত করার জন্য, হাইব্রিড ফর্ম্যাটটার.এফপি স্বয়ংক্রিয়ভাবে ... একটি অন্তর্ভুক্ত_অনস () দরকার নেই? হাইব্রিড ফরমেটার.এফপি এর একটি নামস্পেস সংজ্ঞায়িত করা আছে?
— রিক 18

জন্য কোন প্রয়োজন নেই include_onceবা require_onceবা কিছু। Hybridformatter.php একটি নেমস্পেসকে সংজ্ঞায়িত করে। আমি উত্তরে অন্তর্ভুক্ত করব।
— বেথ

আপনি কি আমাকে সাহায্য করতে পারেন? drupal.stackexchange.com/questions/233565/…
— রবিনসন

9

ডি 8 "প্লাগইন, নিয়ামক, ফর্ম ইত্যাদি" খাপ খায় না এমন একটি কাস্টম ক্লাস অন্তর্ভুক্ত করার জন্য আমি এটি যুক্ত করতে চাই " ডিফল্ট, আপনি এখনও এখানে লক্ষণীয় পিএসআর -4 হিসাবে পর্যালোচনা করতে পারেন

আমার ব্যবহারের ক্ষেত্রে, আমি / মডিউলগুলি / কাস্টম / আমার_মডিউল / এসসিআর / ফাইলের শুরুতে আমি নাম স্থান ঘোষণাটি অন্তর্ভুক্ত করে একটি "কাস্টমক্লাস.এফপি" ফেলেছি

namespace Drupal\my_module;

এবং ফাইলটিতে আমি এটি যুক্ত করতে চেয়েছিলাম (এই বিশেষ ক্ষেত্রে my_theme.theme) আমি যুক্ত করেছি

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