در بخش قبلی با نصب لاراول آشنا شدیم و تونستیم تنظیمات اولیه سیستم رو انجام دهیم. لاراول با یک روش و رویکرد ساده مسیریابی در طول پروژه رو انجام می ده. مسیریابی موتونه در یک برنامه باعث انعطاف پذیری و کنترل کلیه درخواستهای برنامه باشه. باتوجه به توضیح فوق می تونید در لاراول برای هر درخواست url برنامه ای جداگانه داشته باشید که البته پیاده سازی اون هم بسیار راحت هست. در این بخش آموزش ابتدا به ساختار لاراول  و سپس به توضیح روتینگ در فریم ورک لاراول می پردازیم پس با ما همراه باشید.

ساختار برنامه:

در قسمت قبل ما با دستورات وارد شده در ترمینال خود تونستیم که فولدر لاراول رو در htdocs  ایجاد کنیم.
در نگاهی اجمالی به ساختار آن می توان به دایرکتوری app  که شامل کنترلرها، مدل ها، فیلترها، درخواستها و … بوده ، دایرکتوریconfig  که همانطور که از اسمش پیداست جهت تنظیمات برنامه شما مورد استفاده قرار می گیره، resources که جهت نگهداریview ها و فایل های زبان برنامه بوده ،دایرکتوری storage  که شامل کدهای کامپایل شده blade ها هست اشاره کرد .
در آموزش های آتی به طور مفصل در مورد هر یک از این دایرکتوریها به طور مفصل صبحت خواهیم کرد.

روتینگ (Routing)

روتینگ یکی از اجزای اساسی لاراول است. وظیفه روتینگ را می توان به دریافت درخواست ها از URL و اتخاذ تصمیم مناسب اشاره کرد.
فایل routes در مسیر app/Http/routes.php قرار گرفته است.  پس از بازکردن فایل کد زیر مشاهده می شود.

Route::get('/', function () {
    return view('welcome');
});
این تکه کد مسئول نمایش صفحه پیش فرض لاراول می باشد. با این توضیح که درصورت درخواست “/” در URL ، صفحهwelcome  که در مسیر
app/resources/views/welcome.blade.php نمایش داده خواهد شد.

چهار حالت (get ,post ,put ,delete) برای ارسال درخواست به روتینگ وجود دارد که در آموزش های بعدی به طور مفصل توضیح داده خواهد شد.

Route::get('/', function () {
    return 'Hello World';
});

Route::post('foo/bar', function () {
    return 'Hello World';
});

Route::put('foo/bar', function () {
    //
});

Route::delete('foo/bar', function () {
    //
});

ثبت نام یک مسیر برای درخواستهای متعدد

گاهی اوقات ممکن است که در توسعه پروژه نیازمند ارائه یک فایل برای چندین نوع درخواست باشید.
برای این کار کافیست متد match در فایل routes به شکل زیر استفاده نمائید.
Route::match(['get', 'post'], '/', function () {
    return 'Hello World';
});

و یا نیازمند ارائه یک فایل برای تمامی درخواست ها باشید.

Route::any('foo', function () {
    return 'Hello World';
});

استفاده از پارامتر ها در مسیر دهی

گاهی اوقات شما نیازمند دریافت اطلاعات از URL هستید شما می توانید برای ارسال یک پارامتر و یا برای ارسال چندین پارامتر به صورت اجباری و یا اختیاری از کد زیر استفاده نمائید.
برای ارسال پارامتر به صورت اجباری
Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});


Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
    //
});

برای ارسال پارامتر به صورت اختیاری

Route::get('user/{name?}', function ($name = null) {
    return $name;
});

Route::get('user/{name?}', function ($name = 'John') {
    return $name;
}); 

از کد های فوق استفاده می شود. توجه داشته باشید که پارامترها نباید شامل (‘-’,’_’) باشد.

گروه بندی

گروه بندی مسیرها به شما این امکان را می دهد تا برای گروهی از مسیرها شرایط یکسانی از جمله(Middleware ، Namespaces، Sub-Domain Routing و یا Route Prefixes  را ایجاد نمائیم بدون نیاز به اینکه این کار را برای تک تک مسیرها تکرار نمائیم.
این ویژگیها به عنوان پارامتر اول در آرایه از متد Route::group مشخص می شوند.
برای یادگیری گروه بندی با ما همراه باشید.

فیلتر کردن (Middleware)

برای اختصاص فیلتر برای گروهی از مسیرها کافیست از صفت middleware به شکل زیر استفاده نمائید.
در کد زیر کاربرانی دسترسی دارند که دارای سطح دسترسی  ‘auth’ باشند.

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function ()    {
        // Uses Auth Middleware
    });

    Route::get('user/profile', function () {
        // Uses Auth Middleware
    });
});

ایجاد پیشوند برای مسیر دهی

گاهی اوقات می خواهید کلیه فایلهای بخش ادمین با پیشوند admin شروع شود. برای این کار می توانید از کد زیر برای این کار استفاده نمائید.
Route::group(['prefix' => 'admin'], function () {
    Route::get('users', function ()    {
        // Matches The "/admin/users" URL
    });
});
استفاده از namespace برای مسیر دهی
Route::group(['namespace' => 'Admin'], function()
{
    // Controllers Within The "AppHttpControllersAdmin" Namespace

    Route::group(['namespace' => 'User'], function()
    {
        // Controllers Within The "AppHttpControllersAdminUser" Namespace
    });
});
ایجاد Sub Domain برای مسیر دهی
Route::group(['domain' => '{account}.myapp.com'], function () {
    Route::get('user/{id}', function ($account, $id) {
        //
    });
});
در آموزش بعدی با ارائه مبحث Middleware (فیلتر کردن مسیرها) با ما باشید.

AMIR_AKD

دانشجوی کارآفرینی علاقه مند به کسب و کار،عاشق تکنولوژی و مهندس آی تی

0 دیدگاه در “آموزش لاراول؛محبوب ترین فریم ورک پی اچ پی -2”

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

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

نوشته‌های پیوسته

آموزش

۵ راه‌کار برای موفقیت در بازاریابی محتوا

یکی از مهمترین تکنیک‌های دیجیتال مارکتینگ بازاریابی بر اساس محتوا یا همان Content Marketing است. اشخاص و کسب‌وکارها در تلاش هستند با انتشار محتوا در رسانه‌های مختلف توجه مخاطبین را به خود جلب کنند هر چند در بسیاری از موارد هدف اصلی از انتشار محتوا فراموش شده و صرفا انتشار محتوا و تعداد آن مورد توجه قرار می‌گیرد. در این نوشته به چند نکته اشاره خواهم کرد که می‌تواند موفقیت بازاریابی محتوا (Content Marketing) را تضمین کند.

آموزش

چگونه با PHP یک ربات تلگرام بسازیم؟

با شنیدن واژه‌ی ربات همه‌ی ما ناخوداگاه به یاد ربات‌های فیزیکی که توسط انسان ساخته می‌شود، می‌افتیم. اما کلمه‌ی ربات تنها به هوش مصنوعی محدود نمی‌شود. ربات می‌تواند یک ابزار کوچک در یک نرم‌افزار پیام‌رسان باشد یا نرم‌افزار مستقلی که خدمات خاصی را به کاربر ارائه می‌دهد.

آموزش

صورت های مالی،آنچه یک کارآفرین باید حتما بداند

اولین گام و یکی از مهمترین معیارهای سنجش وضعیت مالی و سوددهی شرکت‌‌ها، ارزیابی صورت‌های مالی آن‌ها است که منعکس کننده اطلاعات مالی و شرایط دارائی‌ها و بدهی‌های شرکت خواهد بود.