Я пытаюсь динамически запускать разные классы в PHP, используя некоторый, возможно многократно используемый код, но у меня возникают проблемы с поиском правильного способа сделать это.
В настоящее время я выполняю запрос POST с данные передаются следующим образом:
Route::post('/user/create', 'UserController@createItem');
Для UserController:
namespace App\Http\Controllers;
use Illuminate\Cache\Repository;
use App\Models\User;
class UserController extends AbstractController{
const className = 'User';
}
И AbstractController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Exception\RequestException;
use App\Models\User;
class AbstractController extends Controller
{
public function createItem() {
$inputJSON = file_get_contents('php://input');
$this->className::buildItem($inputJSON);
return;
}
}
Который в идеале должен вызывать данные c метод с именем buildItem()
Когда я проверяю это путем жесткого кодирования User
в AbstractController, он работает как положено, но когда я пытаюсь сделать это таким образом, я получаю сообщение об ошибке в PostMan:
ErrorException: Undefined property: App\Http\Controllers\UserController::$className in file .../app/Http/Controllers/AbstractController.php on line 14
Я попытался объявить и сослаться на className
несколькими различными способами, но, похоже, не могу заставить это работать. Любая помощь приветствуется!