ম্যাজেন্টো 2: কীসের পরিষেবার চুক্তি


20

ম্যাজেন্টো 2-এ, পরিষেবা চুক্তি ধারণাটি ব্যবহার করে নির্মিত এমন কোনও কিছুর দৃ concrete় উদাহরণ রয়েছে ? আমি এই শব্দটিকে অনেকটা ছুঁড়ে ফেলেছি দেখেছি, তবে এখনকার ম্যাগেন্টো 2-এর উপস্থিতি দেখে আমার কাছে এটি স্পষ্ট হয় না যে পরিষেবা চুক্তিগুলি আরও গাইডিং নীতিমালা, বা তারা যদি ম্যাজেন্টো 2-তে জিনিসগুলির নির্দিষ্ট প্রয়োগের সাথে আসলে বাঁধা থাকে।


1
এছাড়াও দেখুন magento.stackexchange.com/questions/50270/…
ওচেম

উত্তর:


9

আমি এটি বুঝতে পারছি এপিআই ফোল্ডারে সংজ্ঞায়িত সমস্ত ইন্টারফেস হ'ল পরিষেবা চুক্তি। সুতরাং কোথাও ইন্টারফেসটি ক্লাসটির প্রকৃত প্রয়োগের পরিবর্তে এটি পরিষেবা চুক্তি ব্যবহার করে।

একটি উদাহরণ এখানে এই প্লাগইন বাস্তবায়ন হবে https://github.com

এটি ব্যবহার করে

protected function getOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order)

পরিবর্তে \Magento\Sales\Model\Order


লিংক কাজ করছে না।
ম্যাজেন্টো লার্নার

ধন্যবাদ এটি আপডেট হয়েছে
ফ্রিম্যান

6

সহজ কাস্টমাইজেশন / এক্সটেনশনের জন্য স্থিতিশীল ইন্টারফেসগুলি নিশ্চিত করতে পরিষেবাদিগুলি (সার্ভিস চুক্তিও বলা হয়) ম্যাজেন্টো 2-এ আমাদের অন্যতম মূল বিকাশ patterns তারা কোড বেসে 2 টি ফর্ম নেয় (উভয়ই @apiক্লাস বা ক্লাসের পদ্ধতিতে এগুলি দ্বারা স্থিরীকৃত ইন্টারফেস হিসাবে চিহ্নিত করতে পারবেন যা আপনি অনুকূলিত করতে পারেন বা ওয়েব এপিআই হিসাবে প্রকাশ করতে পারেন): এপিআই বা এসপিআই। এপিআই গুলি এপিআই ফোল্ডারে সংজ্ঞায়িত করা হয় এবং দুটি ফর্ম গ্রহণ করে - সম্পূর্ণ রিফ্যাক্টরড পরিষেবা এবং কেবলমাত্র একটি এপিআই মডিউল।

সম্পূর্ণ রিফ্যাক্টরড পরিষেবাগুলি গ্রাহক, ইনভেন্টরি, ট্যাক্স, এবং কোট * মডিউলগুলিতে প্রতিফলিত হয় (গ্রাহক অনুকরণ করার পরিষেবা হওয়ায়, উদ্ধৃতিতে রিফ্যাক্টর করার দরকার রয়েছে এমন একটি অবশিষ্ট অংশ রয়েছে)। কেবলমাত্র একটি এপিআই মডিউল ক্যাটালগ, বিক্রয় এবং সিএমএসে দেখা যায়। সম্পূর্ণ রিফ্যাক্টরড পরিষেবাদির জন্য আপনাকে কেবল ওয়েব এপিআইএস এবং জিইউআই উভয়কেই প্রভাবিত করতে পরিষেবা পদ্ধতিতে একটি প্লাগইন করতে হবে। কেবলমাত্র এপিআই মডিউলগুলির জন্য আপনাকে ওয়েব এপিএসকে প্রভাবিত করতে পরিষেবা পদ্ধতিতে প্লাগইন করতে হবে তবে জিইউআইকে প্রভাবিত করার জন্য 1x শৈলীর কাস্টমাইজেশন করতে হবে।

এসপিআই'র মূলত কোডটির মধ্যে বর্ণিত ইন্টারফেসগুলি হ'ল @apiউদ্দেশ্যযুক্ত স্পটগুলি যা তৃতীয় পক্ষগুলি কিছু ব্যবসায়ের কার্যকারিতা সরবরাহ করতে প্রয়োগ করে। CarrierInterfaceশিপিং মডিউলটিতে সংজ্ঞায়িত একটি এসপিআই ( ) এর একটি উদাহরণ যা আপনি আপনার শিপিং মডিউলে (অর্থাত্ আপস) প্রয়োগ করবেন।

পরিষেবার কাঠামোটি বেশ কয়েকটি আকর্ষণীয় সুবিধা সরবরাহ করে। ওয়েব এপিআই হিসাবে সহজে এক্সপোজার (এবং বার্তা সারিগুলির মাধ্যমে 2.0 পোস্ট আসছেন) vi webapi.xmlকনফিগারেশন (এসওএপি এবং রিস্ট স্টাইল হিসাবে)। অদূরতম মেয়াদে (২.০ পোস্টের পরে) আমরা এপিআই কল আউটগুলি যুক্ত করব (সিঙ্ক কলগুলি, বা ওয়েবহুকগুলি অ্যাসিঙ্ক ফায়ার করতে কনফিগার করা থাকলে, বার্তা আউট) যা কনফিগারেশনের মাধ্যমে পরিচালিত / উন্মুক্ত করা যায় exposed নিরাপদে ইনস্টল / আপগ্রেড করুন - আপনি প্রোগ্রামিকভাবে সমস্যার পরিস্থিতি সনাক্ত করতে পারবেন (একই ইন্টারফেসটি প্রয়োগকারী 2 বা আরও বেশি এক্সটেনশন)। স্ট্রিমলাইনযুক্ত কাস্টমাইজেশন যা কাস্টমাইজ করার জন্য কেবলমাত্র একটি পদ্ধতি / পরিষেবা (সম্পূর্ণ রিফ্যাক্টরড মডিউল বা সম্প্রদায়ের তৈরি নতুন মডিউল / পরিষেবাদির জন্য) উভয়ই ওয়েব এপিস এবং গুইকে প্রভাবিত করে।


1
এখানে 2015 এর ইমেজিনির কয়েকটি ভিডিও রয়েছে যা Magento 2 প্ল্যাটফর্মের আরও প্রসঙ্গ সরবরাহ করতে সহায়তা করবে। magento.com/videos/imagine/… , magento.com/videos/imagine/… , magento.com/videos/imagine/… , magento.com/videos/imagine/…
চক

1

এই পদ্ধতিগুলির ব্যবহারগুলি পরীক্ষা করুন:

  • \Magento\Customer\Api\AccountManagementInterface::createAccount
  • \Magento\Customer\Api\CustomerRepositoryInterface::getById

0

Magento পরিষেবা চুক্তি

মূলত, পরিষেবা চুক্তি কেবল ইন্টারফেস এবং শ্রেণীর একটি সেট যা ডেটা অখণ্ডতা রক্ষা করে এবং ব্যবসায়িক যুক্তি লুকায়। গ্রাহকরা কেন এটি ব্যবহার করতে চান তার কারণ হ'ল চুক্তিটি তার ব্যবহারকারীদের প্রভাবিত না করে পরিষেবাটিকে বিকশিত করার অনুমতি দেয়।

এই আপগ্রেডটি গুরুত্বপূর্ণ হওয়ার কারণ হ'ল এটি ব্যবহারকারীদের বিভিন্ন মডিউলের সাথে ইন্টারেক্ট করার পদ্ধতি পরিবর্তন করে। ম্যাজেন্টো 1-তে, অন্য মডিউলগুলির সাথে যোগাযোগের কোনও ভাল উপায় ছিল না। ম্যাজেন্টো 2-এ পরিষেবা চুক্তির সাহায্যে আপনি সিস্টেমের কাঠামো সম্পর্কে চিন্তা না করেই সহজেই ডেটা অ্যাক্সেস এবং ম্যানিপুলেট করতে পারেন।

পরিষেবা চুক্তি আর্কিটেকচার

পরিষেবা স্তরের দুটি পৃথক ইন্টারফেস প্রকার রয়েছে: ডেটা ইন্টারফেস এবং পরিষেবা ইন্টারফেস। ডেটা ইন্টারফেস হ'ল এমন বস্তু যা নিম্নলিখিত নিদর্শনগুলি ব্যবহার করে ডেটা অখণ্ডতা সংরক্ষণ করে:

Theyre read-only, since they only define constants and getters.
Getter functions can contain no parameters.
A getter function can only return a simple object type (string, integer, Boolean), a simple type array, and another data interface.
Mixed types cant be returned by getter functions.
Data entity builders are the only way to populate and modify data interfaces.

পরিষেবা ইন্টারফেসগুলি ক্লায়েন্ট ব্যবহার করতে পারে এমন সর্বজনীন পদ্ধতিগুলির একটি সেট সরবরাহ করে। তিনটি পরিষেবা ইন্টারফেস সাব টাইপ রয়েছে:

Repository Interfaces
Management Interfaces
Metadata Interfaces

সংগ্রহস্থল ইন্টারফেস

সংগ্রহস্থল ইন্টারফেসগুলি নিশ্চিত করে যে কোনও ব্যবহারকারী অবিরাম ডেটা সত্তাগুলি অ্যাক্সেস করতে পারে। উদাহরণস্বরূপ, গ্রাহক মডিউলটিতে অবিরাম ডেটা সত্তা হ'ল গ্রাহক, ঠিকানা এবং গোষ্ঠী। এটি আমাদের তিনটি ভিন্ন ইন্টারফেস দেয়:

CustomerRepositoryInterface
AddressRepositoryInterface
GroupRepositoryInterface

এই ইন্টারফেসগুলির যে পদ্ধতি রয়েছে তা হ'ল:

Save  If theres no ID, creates a new record, and updates whats existing if there is one.
Get  Looks for the IDs in the database and returns a certain data entity interface.
GetList  Finds all data entities that correspond with the search criteria, then gives access to the matches by returning the search result interface.
Delete  Deletes the selected entity
DeleteById  Deletes the entity when you only have its key.

ম্যানেজমেন্ট ইন্টারফেস

এই ইন্টারফেসে বিভিন্ন ম্যানেজমেন্ট ফাংশন রয়েছে যা সংগ্রহস্থলের সাথে সম্পর্কিত নয়। এখানে কিছু উদাহরন:

AccountManagementInterface contains functions such as createAccount(), isEmailAvailable(), changePassword(), and activate().
AddressManagementInterface checks whether an address is valid by using the validate() function.

নিদর্শনগুলির সংখ্যা ক্রমাগতভাবে বৃদ্ধি পাচ্ছে এবং এটি যেমনটি করে, এই ফাংশনগুলির কয়েকটি তাদের সাথে যুক্ত হওয়ার সম্ভাবনা রয়েছে।

মেটাডেটা ইন্টারফেস

মেটাডেটা ইন্টারফেসগুলি নির্দিষ্ট সত্তার জন্য সংজ্ঞায়িত সমস্ত বৈশিষ্ট্য সম্পর্কে তথ্য দেয়। এটিতে কাস্টম বৈশিষ্ট্যও অন্তর্ভুক্ত রয়েছে যা আপনি getCustomAttribute ($ name) ফাংশন দিয়ে অ্যাক্সেস করতে পারবেন। এই কাস্টম বৈশিষ্ট্য অন্তর্ভুক্ত:

EAV attributes  Defined via the administration interface for a local site. They can differ according to the site, which means that they cant be represented in the data entity interface written in PHP.
Extension attributes, for which the extension modules are used.

রেফারেন্স:

https://www.interactivated.me/uk/blog/service-contracts-magento-2/

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