23
تشکر

آشنایی با Laravel 5

Laravel 5

Laravel 5

فریم ورک لاراول که در حال حاضر عنوان بهترین فریم ورک PHP را یدک میکشد نسخه جدید خود یعنی ورژن 5 را عرضه کرده است. این نسخه ابتدا با نام 4.3 شناخته میشد که به دلیل تغییرات گسترده ای که نسبت به نسخه های 4 داشته به نسخه 5 تغییر نام داده است.

نسخه 5 لاراول از استاندارد PSR-4 برای autoloading استفاده میکند. خب بیاید تغییرات عمده‌ای که این نسخه نسبت به نسخه های پیشین داشته است را در ادامه مطلب بررسی کنیم.

نیازمندی های سرور

نیازمندی های سرور نسبت به نسخه 4.2 تغییرات چشمگیری نداشته است و همچنان از PHP 5.4 به بالا پشتیبانی میکند.

  • PHP >= 5.4
  • Mcrypt PHP Extension
  • OpenSSL PHP Extension
  • Mbstring PHP Extension

ساختار جدید پوشه ها

ساختار پوشه ها در این نسخه تغییرات گسترده ای داشته است. ابتدا این را در نظر بگیرید که در این نسخه، لاراول استفاده از namespaceها را درون تمام قسمت‌های پروژه الزامی کرده است و تمام قسمت‌ها مانند Controllerها به صورت پیشفرض دارای namespace هستند، این در حالی است که در نسخه های پیشین استفاده از namespace اختیاری بود.

پوشه app/models که حاوی مدل های پروژه بود حذف شده و تمام کدهای برنامه دورن پوشه app قرار دارند که تمام آن‌ها درون زیر نیم اسپیس App هستند. Controllers, middleware و requests درون پوشه app/Http قرار دارند. در این نسخه middleware به جای filtersها مورد استفاده قرار میگیرد که به جای اینکه مانند نسخه پیشین فقط یک فایل باشد، میتواند حاوی کلاسهای متعددی باشد.

پوشه app/Providers مسئول راه اندازی پروژه را بر عهده دارد که به جای app/start در نسخه قبلی قرار گرفته است.

همچنین فایلهای زبان و View درون پوشه resources یعنی بیرون پوشه app قرار میگیرند.

Route Cache

همانطور که میدانید در هر بار لود شدن یک صفحه تمام مسیرها باید درون سیستم ثبت شوند که در اپلیکیشن های بزرگ اینکار از سرعت برنامه کم میکند. اگر اپلیکیشن شما دارای routeهای بسیار زیادی است، استفاده از Route Cache سرعت اپلیکیشن شما را به شدت افزایش میدهد. این قابلیت برای اپلیکیشن هایی که دارای بیش از 100 مسیر هستند توصیه شده است.

Route Middleware

middlewareها همانطور که اشاره کردیم جایگزین filterها در نسخه های پیشین شده‌اند و به جای اینکه فقط دارای یک فایل باشند، میتوانند کلاسهای متعددی را شامل شوند.

Authentication Scaffolding

تمامی قسمت‌های مربوط به ورود و خروج کاربر همچنین قسمت‌های فراموشی رمز عبور نیز در این نسخه به صورت پیشفرض وجود دارند و نیازی به پیاده‌سازی این قسمت نیست حتی ویوهای این قسمت نیز به صورت ساده وجود دارند.

DotEnv

یکی از سردرگمی ها در نسخه های پیشین محیط ها یا enviromentها بودند که در این نسخه‌ از پکیج DotEnv که توسط Vance Lucas نوشته شده است، استفاده میشود. این پکیج راه ساده‌تری را برای مدیریت enviromentها و تنظیمات مربوط به آن‌ها در اختیار ما میگذارد.

Laravel Elixir

مثل اینکه لاراول تمام جنبه‌های یک اپلیکیشن تحت وب را میخواهد دربر بگیرد. این قسمت دیگر مربوط به PHP نیست بلکه JavaScript است. این پکیج که توسط Jeffrey Way نوشته شده است میتواند کار کامپایل کردن فایل‌های Less, Sass یا CoffeeScript شما را بر عهده بگیرد.

Laravel Socialite

این پکیج در لاراول اختیاری است. با استفاده از این پکیج به راحتی میتوانید لاگین کاربر بوسیله سایت‌های طرف سوم مانند Google, Facebook, Twitter و Github را پیاده‌سازی کنید. این پکیج فعلاً فقط سایت‌های ذکر شده را پشتیبانی میکند.

public function redirectForAuth()
{
    return Socialize::with('twitter')->redirect();
}

public function getUserFromProvider()
{
    $user = Socialize::with('twitter')->user();
}

Flysystem Integration

لاراول توسط پکیج Flysystem توانسته است API خوبی را برای کار با سرورهای Cloud فراهم کند. این پکیج سرورهای Amazon s3 و Rackspace را پشتیبانی میکند. حالا ذخیره یک فایل درون سرور Amazon به سادگی زیر است.

Storage::put('file.txt', 'contents');

Symfony VarDumper

تابع معروف dd حالا با پشتیبانی Symfony VarDumper قویتر میشود. این تابع که برای دیباگ بسیار مناسب است حالا خروجی خود را به صورت متن ساده نمیدهد و آن را مانند فایلهای JSON استایل بندی میکند. برای مثال کد زیر را اجرا کنید تا خروجی را مشاهده کنید.

dd([1, 2, 3]);

نصب Laravel 5

برای نصب لاراول 5 کافیست دستور زیر را اجرا کنید.

composer create-project laravel/laravel --prefer-dist

Laravel 5 تغییرات بسیار گسترده ای نسبت به 4.2 داشته است و کار برنامه نویس را بسیار ساده‌تر کرده است. امیدواریم این فریم ورک همچنان به پیشرفت خود ادامه بدهد. شاید در آینده مطالبی را نیز در مورد Laravel 5 داشته باشیم. البته شما از همین الان Laravel 5 را شروع کنید…

  • مسعود می‌گه:

    سلام و نوروزتون مبارک!
    _بنده بعنوان مدیر یک گروه طراحی و برنامه نویسی سایت و بعنوان یه برنامه نویس front end حدود یکی دوسال پیش طبق بنچمارکهایی اینچنینی:
    http://systemsarchitect.net/performance-benchmark-of-popular-php-frameworks/

    فریم ورک بزرگتر رو فالکن قرار دادم و پروژه ها رو روی اون بستم و پروژه های کم حجم رو روی کدایگنایتر قرار دادم.
    با Yii که اصلاً نتونستم کنار بیام!

    دوتا سوال:
    “فریم ورک لاراول که در حال حاضر عنوان بهترین فریم ورک PHP را یدک میکشد”
    -از کدوم منبع و ماخذ هستش؟

    فالکن به شدت پرفرمنس بالایی داره که اصلاً هیچ فریم ورکی به گرد پاش نمیرسه! اما یه عیب بیشتر نداره اونم اینه که نیاز به اکستنشن داره و روی سرورهای اشتراکی عموماً نصب نیست!

    -موندم چرا هیچوقت تو ایران به این فریم ورک توجه نمیشه؟؟؟

    Larvel:Eleoquent و Phalcon:ORM در یه سطح هستند و حتی شاید میشه گفت فالکن بهتر عمل کرده!

    کاش یه کم در مورد این فریم ورک هم حرف بزنید! واقعاً بهترینه برای سایتهای بزرگ و با حجم ترافیک بالا

    • محسن شفیعی می‌گه:

      بله، حرف شما کاملا درسته. اما Phalcon همونطور که خودتون گفتید بیشتر برای پروژه های بزرگتر کاربرد داره به همین دلیل هم زیاد از اون حرفی زده نمیشه، و من با نظر شما موافقم.

  • عرفان می‌گه:

    سلام. من مشکل جدی با model ها در لاراول 5 دارم. در روت app یک فایل مثلا Test.php می سازم و درونش class Test extends Model رو می نویسم. اما در routes.php دائما ارور میده که کلاس Test رو نمی شناسم. میشه راهنماییم کنید؟
    همین مشکل رو با کلاس User هم دارم.

  • پیشگامان می‌گه:

    از وب سایت فوق العادتون و نویسنده های حرفه ایتون تشکر ویژه دارم – من مطالب زیادی در زمینه php از سایتتون یاد گرفتم – هر چند خودم asp کار میکنم .
    وظیفه دونستم برای یکبار هم که شده ازتون تشکر کنم – همیشه موفق باشید .

  • حسین می‌گه:

    مرسی تشکر
    از تغییرات جدیدش خوشم اومد

  • محمد می‌گه:

    خیلی عالی
    ممنون از توضیحات خوبتون

  • حمیدرضا مژده می‌گه:

    خیلی خوب بود :-) ممنونم

  • آروین می‌گه:

    سلام

    خیلی ممنون عالی بود

    عجب عکس خفنی انداختی آقا محسن
    خخخخخخخخخخخخ :)

  • به آقای شفیعی چه عجب برگشتی
    خوش برگشتی
    welcome back

  • مهرشاد می‌گه:

    لطف کنید یه دوره آموزش فریم ورک Kendu ui و ترکیبش با PHP برای ما قرار بدین
    الان خیلی ها دارن استفاده می کنن واسه قسمت مدیریت سایت ازش.

  • محمد صالحی می‌گه:

    طی مقایسه های بعمل اومده بین دو فریمورک laravel و Yii، فریمورک Yii به خاطر پرفورمنس بالاتر و برخی موارد دیگه بهتر از لاراول شناخته شده…
    نمیشه گفت لاراول بهترین فریمورک هست.

    • عسکری می‌گه:

      سلام

      منبع مقایسه تون رو هم ذکر کنید.
      به نظر من که yii در مقابل laravel چیزی برای گفتن نداره.

  • محمد می‌گه:

    مثل همیشه عالی


  • نظرات این مطلب بسته است.