سرفصل‌های آموزشی
آموزش معماری MVC
تکمیل فایل index.php

تکمیل فایل index.php

در آموزش ساخت فایل composer.json فایل index.php را تا مرحلهٔ زیر تکمیل نمودیم:

<?php
ini_set('display_errors', '1');
require_once __DIR__ . '/../vendor/autoload.php';

function dd($input)
{
    echo "<pre>";
    var_dump($input);
    echo "</pre>";
    die;
}

حال که کلیهٔ بخش‌های فریمورک تکمیل شده‌اند، نیاز داریم تا کلاس App را داخل این فایل فراخوانی کنیم که برای این منظور خواهیم داشت:

<?php
ini_set('display_errors', '1');

use Core\App;
require_once __DIR__ . '/../vendor/autoload.php';
new App();

function dd($input)
{
    echo "<pre>";
    var_dump($input);
    echo "</pre>";
    die;
}

همان‌طور که می‌دانیم، کلاس App در نِیم‌اِسپیس Core قرار دارد و زمانی که بخواهیم آن را مورد استفاده قرار دهیم، می‌باید ابتدا کلیدواژهٔ‌ use را نوشته سپس نام نِیم‌اِسپیس که در اینجا Core است را ذکر کنیم و در نهایت نام کلاس مد نظر که در اینجا App می‌باشد را بیارویم. در خط ششم می‌بینیم که با استفاده از کیورد new کلاس App را فراخوانی کرده‌ایم با این توضیح که نحوهٔ فراخوانی این کلاس را به صورت زیر نیز می‌توانیم انجام دهیم:

<?php
ini_set('display_errors', '1');

// use Core\App;
require_once __DIR__ . '/../vendor/autoload.php';
new Core\App();

function dd($input)
{
    echo "<pre>";
    var_dump($input);
    echo "</pre>";
    die;
}

می‌بینیم که خط چهارم را کامنت کرده و در عوض پس از کلیدواژهٔ new ابتدا نِیم‌اِسپیس Core را نوشته سپس نام کلاس را آورده‌ایم که خروجی هر دو روش یکسان خواهد بود.

تست معماری سه‌لایهٔ MVC

حال نوبت به تست فریمورکی می‌رسد که بر اساس معماری MVC توسعه داده‌ایم که برای این منظور تک‌تک یوآر‌ال‌های زیر را در مرورگر چک می‌کنیم:

http://mvc.local
http://mvc.local/default/homepage

http://mvc.local/default/about
http://mvc.local/default/about/test-txt

http://mvc.local/default/users

http://mvc.local/default
http://mvc.local/default/test

دو یوآرال اول با اَکشن ()homepage در کنترلر DefaultController به اصطلاح Map می‌شوند؛ دو یوآرال دوم با اَکشن ()about در کنترلر DefaultController مَپ می‌شوند با این توضیح که یوآرال دوم حاوی پارامتری تحت عنوان test-txt است که در ویو این اَکشن نمایش داده خواهد شد؛ یوآرال http://mvc.local/default/users نیز لیست کاربران سایت را نمایش می‌دهد و در نهایت به دو یوآرال آخر می‌رسیم که با توجه به اینکه در پراپرتی routes$ داخل کلاس Routing تعریف نشده‌اند، منجر به فراخوانی اَکشن ()notfound و بالتبع ارور 404 خواهند شد.

online-support-icon