نمایش نتایج 1 تا 11 از 11

نام تاپیک: دلیل عدم static کردن بعضی از توابع مانند find دز yii

  1. #1

    دلیل عدم static کردن بعضی از توابع مانند find دز yii

    دلیل عدم static کردن بعضی از توابع مانند find دز yii چیه؟ آخه توابعی از این دست هیچ نیازی نداذند که از مدلمون نمونه داشته باشیم. چرا ما باید برای استفاده از این توابع مجبور باشیم ابتدا با استفاده از تابع استاتیک model یه نمونه‌ی خالی از مدلمون ایجاد کنیم تا بتوانیم از این تپابع استفاده کنیم؟
    اگر اشتباه می‌گم که منو از گمراهی در بیارید

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اصفهان
    سن
    35
    پست
    126

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    نقل قول نوشته شده توسط mojtaba.baghban مشاهده تاپیک
    دلیل عدم static کردن بعضی از توابع مانند find دز yii چیه؟ آخه توابعی از این دست هیچ نیازی نداذند که از مدلمون نمونه داشته باشیم. چرا ما باید برای استفاده از این توابع مجبور باشیم ابتدا با استفاده از تابع استاتیک model یه نمونه‌ی خالی از مدلمون ایجاد کنیم تا بتوانیم از این تپابع استفاده کنیم؟
    اگر اشتباه می‌گم که منو از گمراهی در بیارید
    با سلام
    به دلیل اینکه اگر تابعی static تعریف شود ممکن است بین صفحات share شود. که از سمت apache هستش.

  3. #3

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    به دلیل اینکه اگر تابعی static تعریف شود ممکن است بین صفحات share شود
    خوب الان مشکل چیه؟ خاصیت static بودن و خوبیش همینه که ما تو هر صفخه‌ای بودن نیاز به اینکه از مدلمون نمونه بسازیم بتونیم از اون استفاده کنیم.
    فکر کنم درست متوجه منظورتون نشدم که ممکن است بین صفحات share شود منظورتون چیه. به هر حال هر جا که فایلی که مدلمون توشه رو include کرده باشیم ما در اون صفحه به تمام خاصیت و متدهای استاتیک عمومی اون مدل دسترسی داریم و اگه یه نمونه از مدل بسازیم به تمام خاصیت و متدهای غیر استاتیک عمومی
    اون نیز دسترسی خواهیم داشت.
    که از سمت apache هستش.
    متوجه این نمیشم

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اصفهان
    سن
    35
    پست
    126

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    ببینید یک فکر اشتباه که متاسفانه اولش من هم داشتم این بود که apache با ورود هر کاربر به سایت یک thread آزاد می کند، بعدها فهمیدم اگر کاربری از آپاچه index.php رو بخواهد آپاچه بعد از کامپایل و ایجاد html برای ارسال سمت کلاینت بررسی می کند که در آن لحظه چند کاربر دیگه index.php رو همزمان صدا زده اند و بجای اینکه برای بقیه کاربران هم این کار را انجام دهد همین صفحه رو تحویل آنها می دهد و بار پردازشی رو کم می کند، خوب پس اگر ما یک کلاس رو new کنیم برایش حافظه جدا آزاد کرده ام و مختص آن Session هم می باشد.
    همچنین ما می دانیم که متغیر های static یکبار تعریف و در حافظه باقی می مانند تا session بسته شود. در مورد توابع اگر تابعی static باشد ممکن است بین این کاربر و آن کاربر مشترک شود و در اصطلاح share شود.
    منبع صحبت های خودم آقای مهرداد کیانیان استاد بزرگ من هستند که سر کلاس این حالت رو برای ما شبیه سازی کردند. و دیدیم که چه مشکل مهلکی ممکن است پیش بیاید.


    اگر از دوستان نظری دارند و این حرفم رو نقض می کنند لطفا بازگو کنند.

  5. #5

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    ممنون از جوابهای کاملتون
    الان متوجه شدم
    حالا به نظر شما آیا آپاچی نباید این رویه رو تغییر بده و واسه هر درخواستی یه thread جدا در نظر بگیره؟ آخه مگه با این کارش چقدر بار پردازشی رو کم می‌کنه مگر اینکه سایت اونقدر پر‌بازدید باشه که همزمان درخواستهای یکسان زیادی برسه؟
    آیا تو تنظیمات آپاچی این آپشن وجود نداره که این رویه رو تغییر داد؟

  6. #6
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اصفهان
    سن
    35
    پست
    126

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    البته من این رو هم بگم شاید دیگه این مشکلات وجود نداشته باشند و اینکه برای هر کاربر session جدا در نظر گرفته می شود.

    آپاچه یک بنیاده دوست عزیز، انقدر هم مهندس داره که تحلیل کنند آیا این کار خوبه یا بد! در ضمن فکر می کنید آپاچه همون اون بدون اشکال بود؟ می دونید چقدر باگ براش ارسال شده تا به این استاندارد رسیده؟

    در مورد تنظیمات واقعا اطلاعی ندارم شرمنده دوست عزیز.

  7. #7

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    ممنون از وقتی که گذاشتی
    پیروز باشی

  8. #8

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    تو نسخه ۲ فریمورک yii توابعی مانند find که منطقا باید استاتیک باشن رو استاتیک تعریف کردند

  9. #9
    کاربر دائمی آواتار mohsen_31369
    تاریخ عضویت
    مهر 1390
    محل زندگی
    خانه
    پست
    195

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii


    Post::model()->find();

    از طریق پروپرتی model که استاتیک می باشد می توان به تابع find دسترسی داشت

  10. #10

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    نقل قول نوشته شده توسط mohsen_31369 مشاهده تاپیک

    Post::model()->find();

    از طریق پروپرتی model که استاتیک می باشد می توان به تابع find دسترسی داشت
    تو yii2 دیگه اینجوری نیست و خیلی سرراست می‌نویسی

    Post::find();

  11. #11
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    نقل قول: دلیل عدم static کردن بعضی از توابع مانند find دز yii

    البته استاتیک تعریف نشدن متدها باعث می شه دست آدم برای استفاده از inheritance و override کردن متدها باز باشه!

تاپیک های مشابه

  1. عدم اجرای بعضی ار توابع در sql
    نوشته شده توسط Sahand87 در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: دوشنبه 24 بهمن 1390, 12:46 عصر
  2. عدم اضافه کردن Row به Datagrid
    نوشته شده توسط gh_fereydonpoor در بخش VB.NET
    پاسخ: 3
    آخرین پست: یک شنبه 14 فروردین 1384, 20:33 عصر
  3. چرا بعضی از توابع Api در ویندوز 2000 به بالا جواب نیمدن
    نوشته شده توسط mahdi_farhani در بخش برنامه نویسی در 6 VB
    پاسخ: 14
    آخرین پست: جمعه 13 شهریور 1383, 15:08 عصر
  4. اجرای بعضی از توابع Api در ویندوز Xp
    نوشته شده توسط mahdi_farhani در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: جمعه 06 شهریور 1383, 06:06 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •