در آموزش ساخت فایل 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 خواهند شد.