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


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.