زمان جاری: 2012/05/26, 01:02 AM خوش آمدید مهمان گرامی! (ورودعضویت)



تعیین پیشوند برای جدول ها


ارسال موضوع  ارسال پاسخ 
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رتبه موضوع:
 
تعیین پیشوند برای جدول ها
نویسنده پیام
میلاد آفلاین
Sheriff
*****

ارسال‌ها: 62
تاریخ عضویت: Jan 2010
رتبه: 2
تشکر: 20
59 بار تشکر شده در 31 پست
ارسال: #1
تعیین پیشوند برای جدول ها
سلام
به غیر از استفاده از construct در مدل پلاگین چه روشی را برای تعیین پیشوند یا همون prefix برای تیبل های پلاگین ها پیشنهاد میکنید؟
با توجه به اینکه ما قبلا پیشوندی برای تیبل های اصلی در نظر گرفتیم و میخوایم پیشوند پلاگین ها به صورت زیر باشه و میخوایم قسمت اول پیشوند از خود کور گرفته بشه.
کد:
myapp_myplugin_tablename


[تصویر: 01323IMMi9k7q1tyawopv30g9dxs.png]
[تصویر: 01323IMMtw6x10xiwxlxsnp3h8vh.jpg]

اگر در اولين قدم، موفقيت نصيب ما مي شد، سعي و عمل ديگر معني نداشت.

(آخرین تغییر در این ارسال: 2010/06/22 11:19 AM توسط میلاد.)
2010/06/22 10:35 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 995
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 402
875 بار تشکر شده در 563 پست
ارسال: #2
RE: تعیین پیشوند برای جدول ها
نمیدونم منظورت از construct همون متغیر $prefix در مودال هست؟ یا نه اما در کل زیاد از استفاده از پیشوند رو برای کار های بزرگ که ممکنه زمانی مورد استفاده قرار بگیره صلاح نمیدنم. خودم یک جوری مشکل برام ایجاد شد.

اما فکر میکنم اگر در database.php یک پیشوند تعریف کنی به صورت کلی تعریف میشه. حالا اگر در مودال هم تعریف کنی. این دوتا باهم or میشند. بد نیست تست کنی این مورد رو
2010/06/23 04:56 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
میلاد آفلاین
Sheriff
*****

ارسال‌ها: 62
تاریخ عضویت: Jan 2010
رتبه: 2
تشکر: 20
59 بار تشکر شده در 31 پست
ارسال: #3
RE: تعیین پیشوند برای جدول ها
سلام
ما توی مدل میتونیم با tablePrefix پریفیکس تیبل اون مدل را ست کنیم به صورت دستی.
وقتی توی کانفیگ دیتابیس ما پی فیکس را ست میکنیم مقدار پیشفرض tablePrefix همون مقداری میشه که توی کانفیگ ست کردیم.
حالا برای اینکه ما بتونیم پریفیکس پلاگین را به پریفیکس کور سیستم اضافه کنیم به صورتی که گفتم باید یه تابع __construct به مدل اضافه کنیم تا بتونیم این کارو انجام بدیم. میخواستم ببینم راه بهتری هست؟


[تصویر: 01323IMMi9k7q1tyawopv30g9dxs.png]
[تصویر: 01323IMMtw6x10xiwxlxsnp3h8vh.jpg]

اگر در اولين قدم، موفقيت نصيب ما مي شد، سعي و عمل ديگر معني نداشت.

2010/06/23 10:11 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : saleh
farhadi آفلاین
عضو جدید
*

ارسال‌ها: 11
تاریخ عضویت: Jun 2010
رتبه: 0
تشکر: 1
13 بار تشکر شده در 6 پست
ارسال: #4
RE: تعیین پیشوند برای جدول ها
به نظر من که این کار منطقی نیست.

prefix کلی در واقع کاربردش اینه که جداول مورد نظر ما با سایر جداولی که ممکنه توی اون دیتابیس باشن و مربوط به برنامه ما نیستن تداخل نام نداشته باشه.

ولی prefix به ازای پلاگین به نظرم کاربردی نداره.
برای مثال فرض کن میخواییم یک مدل Post داشته باشیم برای پلاگین Blog طبق روش کیک ما باید یک مدل BlogPost برای این پلاگین ایجاد کنیم. اونوقت نام جدولش میشه blog_posts که اگر prefix کلی در برنامه تعریف شده باشه میشه myapp_blog_posts

حالا اینطور که من فهمیدم شما میخوای مدل رو به جای BlogPost با نام فقط Post تعریف کنی و براش یک prefix با نام blog_ تعریف کنی که با prefix کلی برنامه در نهایت بشه همون myapp_blog_posts
هدفت از این کار چیه؟ اگر میخوای با پیشوند _blog مانع از تداخل نام این جدول با مثلا نام جدول مدل Post از پلاگین News بشی که این کار غلطه. چون با این کار نام جداول تداخل نخواهند داشت ولی نام کلاس های مدل هات تداخل پیدا میکنند چون هر دو نامشون Post هست. پس مجبوری از همون روش کیک استفاده کنی ولی اگر مطمئنی که مدل دیگه ای با این نام توی سایر پلاگین ها نیست دیگه نیازی هم به استفاده از پیشوند نام پلاگین هم نیست.
2010/06/24 01:24 AM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
ارسال موضوع  ارسال پاسخ 


پرش در انجمن: