متد load در yii2 – آموزش فریم ورک PHP

yii ( بخوانید ییی ) که مخفف yes it is میباشد، یکی از فریم ورک های متعدد زبان php است. اولین آشنایی من با فریم ورک ها از یادگیری لاراول شروع شد و به محض اتمام دوره ی یادگیری با آن خداحافاظی کردم و در اولین قدم ( بعد از یاد گرفتن مفاهیم مشترک فریم ورک ها ) در هتل درویشی مشهد با فریم ورک codeigniter شروع به کار کردم. دلیل خداحافظی کردن با لاراول به دلیل موقعیت ها و شرایط کاری بود. همانگونه که بعد از کدایگنیتر در ModiranDev مجبور به کار کردن با فریم ورک yii2 بودم و اینگونه بود که تا همین اواخر نتوانسته بودم با فریم ورک لاراول کار کنم.

فریم ورک چیست؟

به طور خلاصه می توانم بگویم، فریم ورک چارچوبی از پیش تعیین شده است که به شما در نوشتن برنامه های جدید کمک می کند. فریم ورک ها از یک ساختار مشترک به نام MVC استفاده می کنند. به همین دلیل است که با یاد گرفتن یکی از فریم ورک ها می توان فریم ورک های بعدی را سریع تر یاد گرفت.

 

MVC چیست؟

mvc الگویی که به شما کمک می کند تا قسمت های کنترلر ( controller ) و نمایشگر (view) و بالاخره منطق (model) را از یکدیگر جدا کنید. از مزایای آن می توانم به سهولت مدیریت کدها، خطایابی ها و به طور خلاصه توسعه و نگهداری کد ها اشاره کنم. حدود سه سال پیش خبرگذاری ژورنال افغانستان را با استفاده از MVC ای خودم نوشته بودم، توسعه دادم. بعد از گذشت حدود یک سال زمانی که به برنامه ی مربوطه مراجعه کردم، با وجود اینکه این سه قسمت از یکدیگر جدا بود اما باز هم فهمیدن برخی از قسمت ها برایم سخت بود، برنامه ای که خودم نوشته بودم! اینجا همان نقطه ای است که MVC و فریم ورک با استفاده از مستندات خود به کمک شما می آید.

 

مزیت فریم ورک ها؟

فریم ورک علاوه بر MVC مجموعه ای از کدهایی که ممکن است در روند توسعه ی یک برنامه به آن نیاز داشته باشید را در اختیار شما قرار می دهد، از طرفی روزانه افراد بسیاری در جهت بهینه سازی و امنیت همین کد ها تلاش می کنند. پس می توان فریم ورک ها امن تر از pure php ( برنامه ای که صرفا با php و بدون استفاده از فریم ورک نوشته باشد ) دانست.

فریم ورک باعث می شود که یک برنامه را سریع تر لانچ کنید و خیلی از قسمت های تکراری را انجام ندهید!

علاوه بر آن فریم ورک به شما این امکان را می دهد که برنامه نویس های دیگر راحت تر روی پروژه ی شما کار کنند، چرا که تمامی مستندات یک فریم ورک در سایت رسمی آن در دسترس عموم است. بعلاوه کد ها نیز از قوانین خاصی پیروی می کنند. به طور مثال می توانم به پروژه ی اخیرم که با استفاده از laravel نوشته بود اشاره کنم ( سامانه مدیریت حضور و غیاب schoex ) با وجود اینکه توسط فرد دیگری نوشته شده بود اما باز هم توانستم با کمترین مشکلات ممکن، برنامه را با توجه به معیار ها و درخواست های کارفرما ویرایش کنم.

 

متد Load در yii2 یا همان model->load

متد load مربوط به بخش model (منطق) بوده و وظیفه ی انتقال مقادیر درون متغیر post به مدل مربوطه می باشد. به عنوان مثال قصد داریم مقادیر آیدی و نام را که در    $_POSTذخیره است به مدل مربوطه پاس دهیم. برای اینکار اینگونه عمل می کنیم.

 

 

اما yii راه ساده تری را در نظر گرفته است که به صورت خودکار شرط فوق را نیز در نظر می گیرد و آن استفاده از load می باشد. برای نسبت دادن مقادیر به مدل با استفاده از load

 

 

تک کد فوق به صورت خودکار تمامی مقادیر درون post  را به همان فیلد های در مدل ارجاع می دهد، نام این کار  massive assignments می باشد. اما نکته ای که وجود دارد ، این متد گاهی تمامی موارد خصوصیات را در مدل ذخیره نمی کند.

 

چرا load در yii کار نمی کند؟

برای جلوگیری از این مشکل باید قسمت Rules مدل مربوطه را چک کرد! در حقیقت مدل مربوطه قسمتی به نام Rules وجود دارد. یکی از مقادیری که rule می تواند داشته باشد مقدار safe می باشد. در حقیقت متد load تنها متغییر هایی را درون مدل می گذارد که پیش از ان قسمت safe قرار داشته باشد.

0

2 Replies to “متد load در yii2 – آموزش فریم ورک PHP”

  1. میشه بگید انقدر می نویسید آخرش می خواهید به چه برسید؟
    فکر می کنید ذات نویسنده شدن پول دراوردنه؟ این تشخیص اشتباه هست در مشکل
    نویسنده شدن تهش هیچی نیست
    ناراحت نشوید ولی این روش نوشتن شما مساله ای را حل نمی کنه.
    مکتب شعبانعلی گفتن و تبعیت کردن به نظر من فقط وقت تلف کردن هست
    و فرو رفتن افراد در توهم اینکه دارند رشد می کنند و به موقعیت های عالی شغلی می رسند
    واقعیات رو ببینید
    جامعه چه کسی رو موفق می دونه یا تحویل می گیره؟
    خاص بودن و نویسنده گشنه بودن تهش هیچی نیست

    0
    1. بعد از خوندن کامنت شما، به خودم و مطلبی که نوشته بودم شک کردم.
      حداقل چند بار دیگه این مطلب رو خوندم، اما هر چقدر که خوندمش، هر چقدر که فکر می کنم بازم متوجه نمی شم که چرا باید چنین کامنتی برای چنین مطلبی نوشته بشه!
      هیچ کجای این متن ربطی به محمدرضا شعبانعلی نداره، حتی در مورد نوشتن هم نیست. یک چنین کامنت اونم ذیل مطلبی تقریبا تخصصی! جای بسی تعجب! ای کاش کمی وقت صرف می کردید و حداقل یکی از مطالبی که اسمی از محمدرضا شعبانعلی در اون برده شده رو پیدا می کردید و کامنت می گذاشتید!

      0

دیدگاهتان را بنویسید

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