autoload و dynamic call

پرسیده شده
فعالیت 1376 روز پیش
دیده شده 564 بار
0

سلام 

استاد با Autoload  نمیتونیم شی رو  Dynamic بسازیم؟

مثال:

$class = $_GET['class'] ?? '';
$obj = new $class;

توی این کد namespace رو تشخیص نمیده.

فایل پیوست

امیر ضیائی
امیر ضیائی

1 مرداد 99

0
حذف شده

سلام 

شما برای اینکه بتونید کلاسی رو با استفاده از autoload از اون شی بسازید باید کلاس رو حتما use کنید تا بتونید ازش استفاده کنید.

داینامیک هم امکان پذیر به کد زیر دقت کنید باید چنین چیزی رو شما انجام بدین از کدی که خودتون فرستادین من استفاده کردم و نیم اسپیس کلاس رو داخل ارایه get ذخیره کردم و بعد بهش دسترسی پیدا کردم.

<?php
require_once "../vendor/autoload.php";

 $_GET['class']="App\\Http\\Controllers\\HomeController";

$class = $_GET['class'] ?? '';

$obj = new $class();

$obj->index();

 

فایل پیوست

میثم نصرتی

توسط

میثم نصرتی

4 مرداد 99

حذف شده
درسته ولی اگر برای روتر بخوایم استفاده کنیم نمیتونیم namespace رو از URL ارسال کنیم.
امیر ضیائی

4 مرداد 99

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

4 مرداد 99