سلام. در این پروژه از طریق کد زیر صفحه ایندکس رو لود میکنیم
public function __construct()
{
$this->contactModel = new Contact();
}
public function index()
{
$data = [
'contacts' => $this->contactModel->getAll()
];
view('home.index', $data);
}
کلاس Contact هم حاوی کد زیر هست:
class Contact extends MysqlBaseModel
{
protected $table = 'contacts';
}
پس در کد اول، آدرس صفحه ایندکس + یه دیتا رو به view میفرستیم. (دیتا حاوی اطلاعات موجود در دیتابیس ما هست)
حالا داخل view این کد هست:
function view($path, $data = [])
{
extract($data);
$path = str_replace('.', '/', $path);
$view_full_path = BASEPATH . "views/$path.php";
include_once $view_full_path;
}
در اینجا view میاد ابتدا یه دیتا رو extract میکنه. بعد هم اون آدرس که بهش دادیم رو include میکنه
حالا سوال من اینه که کد زیر چرا اطلاعات دیتابیس رو به اینجا فرستادیم و extract شد؟ چرا بعد از extract دیگه رها شد و استفاده نشد؟ اصلا چه نیازی بود؟