نمایش نتایج: از شماره 1 تا 4 , از مجموع 4

موضوع: نگاهی به نسخه جدید لاراول ۵٫۳

  1. #1
    عضو جدید pamenary آواتار ها
    تاریخ عضویت
    Jun 2009
    نوشته ها
    81
    تشکر تشکر کرده 
    17
    تشکر تشکر شده 
    75
    تشکر شده در
    53 پست

    پیش فرض نگاهی به نسخه جدید لاراول ۵٫۳

    امکانات لاراول ۵٫۳

    لاراول توی نسخه ۵٫۲ تغییرات کوچکی داشت، تغییراتی که کار برنامه نویس رو برای کنترل تعداد درخواستهایی یک آدرس آی پی ساده میکردن، یا امکان استفاده از چند مرجع برای تشخیص هویت کاربران و لاگین بودن اونا. برای مثال وقتی جدولی دارید که ادمین های سیستم رو اونجا نگه میدارید و جدولی دارید که دانش آموزهارو ذخیره میکنید میتونید با استفاده از متدهای تعریف شده روی Auth نسبت به هر یک از جدولها اونارو احراز هویت کنید. امکان خوب ایجاد ساختار Auth به شکل خودکار رو هم میتونید توی نسخه ۵٫۲ ببینید و همینطور implicit model binding که امکان اضاف کردن مدل مورد نظرتون رو به روت میده. همینطور امکان دسته بندی یا گروه بندی middleware ها رو تو نسخه ۵٫۲ دارید. امکان اعتبارسنجی آرایه ها هم جالب بود و کاربردی که یکتا بودن مقادیر یک آرایه رو میشد باهاش بررسی کرد، برای مثال یکتا بودن تمام ایمیلهایی که توی یک آرایه هستن رو میشه با این امکان چک کرد.
    هرچند لاراول ۵٫۳ در نسخه developer در دسترس هست اما با نزدیک شدن laracon 2016 میتونیم منتظر معرفی رسمی لاراول ۵٫۳ باشیم. در این مقاله سعی میکنیم امکاناتی که با معرفی لاراول ۵٫۳ ارائه میشن رو بررسی کنیم.
    امکان رول بک کردن مایگریشن ها به تعداد قدمهای مشخص

    حتما با این مساله روبرو شدید که بخواید مایگریشنهایی که به واسطه اونها تغییراتی روی دیتابیس اعمال کردید رو برگردونید. اما تا به حال این امکان در دو حالت وجود داشت. یا باید قدم به قدم برگردونید یا تمام مایگریشنها رو یکباره برگردونید. در لاراول ۵٫۳ امکان مشخص کردن تعداد قدمها به وجود اومده. با دستور زیر میتونید به راحتی به روش زیر این کار رو انجام بدید.
    php artisan migrate:rollback --step=1
    کد PHP:
    php artisan migrate:rollback --step=
    این یه ابزار مفید برای افزایش سرعت هست.

    دسترسی به متغیر حلقه در blade

    در نسخه ۵٫۳ لاراول امکان دسترسی به متغیر حلقه به وجود اومده. این موضوع میتونه بسیار کاربردی باشه. برای کنترل براساس شماره حلقه دست ما باز میمونه. برای استفاده میتونید از نمونه های زیر استفاده کنید.

    کد PHP:
    @if($loop->first)    Do something on the first iteration.@endif @if($loop->last)    Do something on the last iteration.@endif 
    واکشی مدلهای مورد نیاز برای اجرای عملیات صف بندی شده

    لاراول امکان خوبی برای قراردادن عملیات مورد نظر در صف انجام ارائه میکند. برای مثال میتوانید به جای منتظر گذاشتن کاربر برای فرستادن ایمیل خوش آمدگویی، این کار را در صف اجرا قرار دهید و در پس زمینه این کار را انجام دهید. برای این کار یک کلاس با قابلیت صف بندی ایجاد میکنید پارامترهای لازم را میپذیرد. اما تصور کنید که در این مثال ایمیل فرد را به عنوان پارامتر بفرستید و کاربر پیش از رسیدن زمان ارسال متوجه شود ایمیل خود را اشتباه وارد کرده و بخواهد ایمیل خود را تصحیح کند. آنگاه مشکلی که پیش خواهد آمد واضح است. ایمیلی که قرار بود برای آن پیام خوش آمدگویی فرستاده شود دیگر معتبر نیست. حال با واکشی مدل در لحظه اجرای کار میتوان این مشکل را حل کرد. امکان این کار در نسخه ۵٫۳ لاراول به وجود آمده است.
    یعنی به جای
    کد PHP:
    $user User::find(1); dispatch(new SendWelcomeEmail($user->email)); 
    میتوان از این روش استفاده کرد
    کد PHP:
    $user User::find(1); dispatch(new SendWelcomeEmail($user)); 
    امکان شخصی سازی صفحه بندی ساده (Simple Pagination)

    صفحه بندی در لاراول خیلی ساده انجام میشه. شما کافیه متد paginate رو صدا بزنید و خروجی رو به view بفرستید. توی view کافیه از متد links() استفاده کنید برای نمایش دادن صفحه های اطلاعات. اما این صفحه بندی تا نسخه ۵٫۲ به سختی قابل شخصی سازی بود. اما از پستهای توییتر آقای اوتول Taylor Otwell (@taylorotwell) خبر میرسه امکان این کار در نسخه ۵٫۳ به سادگی فراهم شده.

    امکان فرستادن پارامترهای بیشتر به firstOrCreate

    این نیاز رو جوزف سیلبر اینجوری مطرح میکنه
    گاهی میخوای از پارامترهایی برای جستجو استفاده کنی اما اگه اون مدل وجود نداره میخوای یه مدل جدید ایجاد کنی. برای مثال فرض کنید میخواید از گیت هاب OAuth برای ورود استفاده کنید. برای اینکار از ID گیت هاب برای بررسی وجود کاربر استفاده میکنید، اما اگر کاربر جدیدی دارید ثبت میکنید میخواید آواتارش رو هم ذخیره کنید. پیش از این تغییر باید این کار رو میکردید
    $user = User::firstOrNew(['github_id', $githubUser->id]); if (! $user->exists) { $user->fill(['avatar' => $githubUser->avatar])->save(); } return $user;

    کد PHP:
    $user User::firstOrNew(['github_id'$githubUser->id]); if (! $user->exists) {    $user->fill(['avatar' => $githubUser->avatar])->save();} return $user
    اما توی تغییر جدید میتونید با استفاده از یک خط کد به شکل زیر انجامش بدید:
    return User::firstOrCreate(['github_id', $githubUser->id], ['avatar' => $githubUser->avatar]);
    کد PHP:
    return User::firstOrCreate(['github_id'$githubUser->id], ['avatar' => $githubUser->avatar]); 
    میتونید روال این تغییر رو توی گیت هاب دنبال کنید.

    خروجی Query Builder در نسخه ۵٫۳ لاراول collection خواهد بود

    تا به حال خروجی متدهای Query Builder از جنس آرایه بود. اما در نسخه ۵٫۳ این خروجی از جنس collection لاراول خواهد بود. این موضوع باعث خواهد شد بتوان از امکانات مربوط به کالکشن به خوبی استفاده کرد. روال اعمال این تغییر را در این درخواست ترکیب گیت هاب میتوانید ببینید.
    بارگذاری مایگریشنها از مکانهای مختلف

    این فیچر بیشتر به کار توسعه پکیج ها میاد. موقع اضاف کردن یه پکیج مرحله Publish هم وجود داره یا اینکه باید مایگریشنها رو از پوشه vendor/package/database/migrations به database/migrations کپی کنیم. در لاراول ۵٫۳ با استفاده از متد loadMigrationsFrom(‘آدرس پوشه مایگریشنها’) این نیاز برطرف میشه. و این موضوع وقتی نسخه جدید یک پکیج ارائه میشه نمود بیشتری پیدا میکنه، چرا که دیگه نیازی به کپی کردن مایگریشنهای مربوطه وجود نداره. تنها نیازی که هست اجرای فرمان معروف php artisan migrate هست

    بهبود در انتشار عمومی event با استفاده از فیچر جدید Echo

    این فیچر بهبود بسیاری در زمینه انتشار event و نحوه تعامل آن با Pusher در لاراول ایجاد میکند.



    تابع کمکی جدید cache

    این تابع کمکی به سادگی امکان استفاده از cache را فراهم میکند. سه کارکرد اصلی آن get، put و return هست که به راحتی قابل استفاده خواهد بود.


    • cache(‘abc’, null): در صورت وجود مقدار ارائه شده آن را برمیگرداند و در غیر اینصورت مقدار پیش فرض یعنی null را بازمیگرداند.
    • cache([‘abc’ => ‘def’], 5): برای مدت زمان ۵ دقیقه مقدار کلید abc را برابر با def قرار میدهد.
    • cache(): نمونه ای از CacheManager بازمیگرداند.

  2. تعداد تشکر ها ازpamenary به دلیل پست مفید


  3. # ADS




     

  4. #2
    عضو جدید pamenary آواتار ها
    تاریخ عضویت
    Jun 2009
    نوشته ها
    81
    تشکر تشکر کرده 
    17
    تشکر تشکر شده 
    75
    تشکر شده در
    53 پست

    پیش فرض پاسخ : نگاهی به نسخه جدید لاراول ۵٫۳

    نقل قول نوشته اصلی توسط vahid13713 نمایش پست ها
    اقا یک سوال استفاده از فریم ورک برای کد نویسی پی اچ پی روی امنیت سایت تاثیر نداره؟
    خیلی تاثیر داره دیگه درگیر SQL injection, XSS و... نیستی

  5. #3
    عضو انجمن
    تاریخ عضویت
    Oct 2015
    نوشته ها
    788
    تشکر تشکر کرده 
    569
    تشکر تشکر شده 
    1,269
    تشکر شده در
    882 پست

    پیش فرض پاسخ : نگاهی به نسخه جدید لاراول ۵٫۳

    نقل قول نوشته اصلی توسط pamenary نمایش پست ها
    خیلی تاثیر داره دیگه درگیر SQL injection, XSS و... نیستی
    البته اگه فقط دلیل رو این بدونید جسارت نباشه اما این یعنی تنبلی چون بدون فریم ورک هم میشه تمامی این موارد رو رعایت کرد نیاز هم نیست هر بار به قول شما درگیر باشیم فقط یه بار روش های خاصش رو یادبگیریم دفعات بعدی براحتی می تونیم انجام بدیم.تازه اینطوری روش Customize شده نسبت به نیاز های پروژه خودمون هم داریم البته من به شخصه استفاده از فریم ورک رو بیشتر برای تجربه کار با اونا و کسب مهارت درشون می دونم چون شرکت هایی که تو روزنامه ها آگهی استخدام برای برنامه نویس PHP می خوان اکثراً دنبال برنامه نویس فریم ورک هستن و از این نظر یادگیریشون مزیت حساب میشه.البته از این نظر باید تمامی فریم ورک ها رو بلد باشید چون حتی هنوز که هنوزه خیلی از شرکت ها من می بینم تو روزنامه دنبال برنامه نویس PHP با مهارت در فریم ورک های قدیمی مثل CakePHP هم هستن.

    البته نمیشه از ویژگی توسعه همزمان یه پروژه با فریم ورک ها توسط چندین نفر گذشت ولی به نظر من برای ما ایرانی ها که اکثراً تک نفری برنامه نویسی میکنیم تک نفری سایت خدماتی میزنیم تک نفری شرکت میزنیم و... حتی MVC هم لزومی نداره چه برسه به فریم ورک های قدرتمند و غنی تازه استفاده از فریم ورک برای فقط برنامه نویسی یه نفره باعث میشه اول کار خیلی هم گیج بشید چون موقعی که پروژه دست چندین نفر هست حداقل هر کسی مسئول یه بخش از اون همه بخش یه فریم ورک هست ولی وقتی تک نفری باشه یکم سخت میشه.

  6. #4
    عضو جدید pamenary آواتار ها
    تاریخ عضویت
    Jun 2009
    نوشته ها
    81
    تشکر تشکر کرده 
    17
    تشکر تشکر شده 
    75
    تشکر شده در
    53 پست

    پیش فرض پاسخ : نگاهی به نسخه جدید لاراول ۵٫۳

    نقل قول نوشته اصلی توسط iHSG نمایش پست ها
    البته اگه فقط دلیل رو این بدونید جسارت نباشه اما این یعنی تنبلی چون بدون فریم ورک هم میشه تمامی این موارد رو رعایت کرد نیاز هم نیست هر بار به قول شما درگیر باشیم فقط یه بار روش های خاصش رو یادبگیریم دفعات بعدی براحتی می تونیم انجام بدیم.تازه اینطوری روش Customize شده نسبت به نیاز های پروژه خودمون هم داریم البته من به شخصه استفاده از فریم ورک رو بیشتر برای تجربه کار با اونا و کسب مهارت درشون می دونم چون شرکت هایی که تو روزنامه ها آگهی استخدام برای برنامه نویس PHP می خوان اکثراً دنبال برنامه نویس فریم ورک هستن و از این نظر یادگیریشون مزیت حساب میشه.البته از این نظر باید تمامی فریم ورک ها رو بلد باشید چون حتی هنوز که هنوزه خیلی از شرکت ها من می بینم تو روزنامه دنبال برنامه نویس PHP با مهارت در فریم ورک های قدیمی مثل CakePHP هم هستن.

    البته نمیشه از ویژگی توسعه همزمان یه پروژه با فریم ورک ها توسط چندین نفر گذشت ولی به نظر من برای ما ایرانی ها که اکثراً تک نفری برنامه نویسی میکنیم تک نفری سایت خدماتی میزنیم تک نفری شرکت میزنیم و... حتی MVC هم لزومی نداره چه برسه به فریم ورک های قدرتمند و غنی تازه استفاده از فریم ورک برای فقط برنامه نویسی یه نفره باعث میشه اول کار خیلی هم گیج بشید چون موقعی که پروژه دست چندین نفر هست حداقل هر کسی مسئول یه بخش از اون همه بخش یه فریم ورک هست ولی وقتی تک نفری باشه یکم سخت میشه.
    بله حق با شما خیلی فریم ورک وسیع و خیلی کار سریع می کنه مخصوصا تو پروژه های تیمی خیلی کد نویسی لذت بخش می کنه

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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