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

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

فیلد ها در دروپال

مهیج ترین ویژگی دروپال 7، سیستم فیلد ها است. با این ویژگی امکان توسعه سیستم مدیریت محتوا فراهم می شود. وقتی می خواهید یک محتوا در سایت قرار بدهید، با یک فرم ثابت که عنوان و محتوای مطلب را از شما می گیرد، روبرو نیستید. می توانید برای این نوع محتوا، فیلد های اطلاعاتی بیشتری تعریف کنید مثل شکل زیر:

فیلد ها در دروپال

همانطور که دیده می شود می توان فیلد هایی از نوع تصویر، لیست انتخابی، متنی ساده یا ... ایجاد کرد و به محتوا اضافه کرد. البته فیلد ها منحصر به محتوای سایت نیستند و به هر Entity type دیگری نیز افزوده می شوند که در ادامه می خوانید.

مفهوم Entity در دروپال

مفهوم Entity در دروپال یک مفهوم Abstract یا انتزاعی است که به پاره ای از اشیاء (object ها) در دروپال مانند کاربر (User)، محتوا (Content)، نظر (comment)، دسته ها (Taxonomy Term) و ... اطلاق می شود.

در نمودار زیر با استفاده از نماد های UML برای کلاس دیاگرام ها، ارتباط اشیاء دروپال را با مفهوم انتزاعی Entity نمایش داده ایم.

مفهوم Entity در دروپال

در واقع یک مفهوم Abstract خود به صورت واقعی وجود ندارد و دسته ای از اشیاء که رفتارها یا خصوصیات مشابه دارند، اطلاق می شود. بنابراین در دروپال یک آبجکت نداریم که Entity باشد ولی از نوع یکی از entity type هایی که در دروپال یا توسط ماژول های نوشته شده برای آن، تعریف شده است، نباشد. مثلا نمی توانیم یک آبجکت داشته باشیم و بگوییم یک Entity است ولی نه فایل است، نه کاربر، نه محتوا، نه نظر، نه دسته و نه ..... در حالیکه به یک آبجکت از هر کدام از این انواع می توانیم بگوییم یک Entity است.

ویژگی های Entity ها در دروپال

یک Entity type در دروپال می تواند فیلدهایی داشته باشد یا نداشته باشد. یک Entity type (نوع entity) با پیاده سازی هوک hook_entity_info در یک ماژول به دروپال معرفی می شود، یکی از اطلاعاتی که در اینجا برای آن مشخص می شود، کلید fieldable است که اگر TURE باشد، این Entity می تواند از سیستم فیلد های دروپال استفاده کند.

پیاده سازی هوک hook_entity_info در یک ماژول دروپال

یکی دیگر از ویژگی های Entity ها این است که می توانند نسخه تجدید نظر شده یا revision داشته باشند. برای این منظور در هوک یاد شده، باید نام جدولی در دیتابیس که برای این منظور به کار می رود، با کلید revision table مشخص شود.

مفهوم Bundle در دروپال

کلمه دیگری در در بحث Entity ها و Field ها در دروپال مطرح می شود، Bundle است. در حقیقت فیلد ها به bundle ها اضافه می شوند. می توانیم بگوییم که هر Entityمی تواند انواع مختلفی داشته باشد که هر یک از این انواع یک bundle نامیده می شود. برای نمونه می دانیم که Node به عنوان Entity شناخته می شود. ولی Node خودش می تواند از نوع محتوا های مختلفی که در دروپال تعریف شده، باشد. هر نوع محتوا (content type یا node type) یک bundle است. مثلا Article یا Page که از آنها محتوا می سازیم.

همه Entity ها دارای bundle نیستند مگر اینکه دارای فیلد باشند. یک bundle بسته ای از فیلد ها است.

نظرات

بسیار عالی بود

آقا ممنون از پست خوبت ابهاماتی که راجع به انتیتی، باندل و فیلد داشتم رفع شد.
ماچ! :)

تصویر admin
ممنون از لطف شما امین جان.

مرسی خیلی خوب بود،خواهشا در مورد ماژول نویسی بیشتر مطلب بذارید.

ارسال نظر