مفاهیم Entity, Bundle و Field در دروپال

اگر با دروپال کار کرده باشید به احتمال زیاد واژه‌های Entity, Bubdle و Field به گوشتان خورده است. bundleها زیرمجموعه entity‌ها هستند، ما می‌توانیم یک entity ایجاد کنیم و سپس از روی آن یک bundle بسازیم و  فیلد‌هایی را به آن اضافه کنیم. bundle در دروپال به عنوان Content type نیز شناخته می‌شود.

ممکن است هر entity دارای چندین bundle باشد، اما الزامی نیست و ممکن است یک entity هیچ باندلی نداشته باشد، برای مثال user entity هیچ گونه bundle وابسته‌ای ندارد. در مقابل آن،  node که یک entity پیش فرض دروپال هست، شامل دو باندل Basic page و Article است. ما می‌توانیم فیلدهایی را به یک باندل اضافه کنیم. مثلا در صفحه ثبت نام کاربر فیلدی برای فایل رزومه کاربر ایجاد کنیم. فیلد‌ها دارای اعتبار سنجی، نوع داده و ویجت‌هایی برای نمایش هستند، با توضیح این مقدمات در ادامه به بررسی دقیق تر مفهوم entity می‌پردازیم.

 

CK-Product-Entity

توسعه دهندگان ماژول‌ها در دروپال ۶ اغلب از nodeها به عنوان یک ابزار برای ایجاد ابجکت‌ها استفاده می‌کردند و آن‌ها را در دیتابیس ذخیره می‌کردند. در دروپال ۷ ما entity‌ها را داریم. entity‌ها علاوه بر داشتن همه قابلیت‌های node در دروپال ۶، قابلیت‌های ویژه دیگری نیز دارند. ماژول‌های هسته دروپال مانند node.module و  user.module از entity‌ها برای کار با رکوردهای دیتابیس خودشان و انجام عملیات CURD استفاده می‌کنند.

آن‌ها را می توان به عنوان کلاس والد nodeها در نظر گرفت. entityها در واقع مفاهیم انتزاعی برای انجام عملیات‌ها در nodeها، واژه‌های رده بندی و کاربران و … هستند. برای مثال این مفهوم را با نگاه کردن به  توابع ()user_load_multiple() , node_load_multiple در دروپال ۷ می توانید مشاهده نمایید

همینطور که می‌بینید روش لود کردن nodeها و کاربران تقریبا مشابه یکدیگر هستند و باعث می‌شود حجم عظیمی از کد‌های هسته دروپال قابلیت نگهداری بیشتری داشته باشند و خیلی تمیزتر و واضح‌تر باشند.

entity API مجموعه توابعی تعریف می‌کند که به وسیله آن‌ها می‌توانیم  اطلاعاتی مانند برچسب و uri را بگیریم که در دروپال ۶ این عمل نیازمند انجام کار بیشتری است. یکی از بزرگترین مزیت‌های entity امکان تعریف entity‌های دلخواه است. entity‌ها از revision tracking پشتیبانی می‌کنند، که به شما این امکان را می‌دهد چند ورژن از یک entity را داشته باشید که در دیتابیس ذخیره شده‌اند. برای مثال اگر شما یک entity با نام “Wiki page” ایجاد کرده باشید می‌توانید تغییرات را دنبال نمایید و تفاوت‌های بین بازبینی‌های مختلف را ببینید.

منبع: + +

وحید کاظمی

توسعه دهنده دروپال، علاقه‌مند به پلتفرم‌های موبایل، دنیای اپن سورس و موسیقی.

همچنین ممکن است دوست داشته باشید ...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *