как вы приводите из пространства имен константных строк

Я пытаюсь найти способ легко привести динамически созданный объект, чтобы я мог видеть его свойства и открытые методы в моей IDE. Это выглядит странно, когда строка содержит полностью определенное пространство имен.

Есть ли в любом случае я могу привести объекты из константной строки в абстрактный класс?

abstract class Models
{
const MODEL = "foo\\bar\\Model";
}//OK
$p1 = "foo\\bar\\Model";
$p2 = new $p1;

//FAILS

//$wannaDoThis = (Models::MODEL) Generator::generate(Models::MODEL);//$str1 = Models::MODEL;
//$str2 = (string) Models::MODEL;
//$o1 = new Models::MODEL;
//$o2 = new "".Models::MODEL;
//$o3 = new (Models::MODEL);

0

Решение

Это должно работать:

<?php

namespace foo\bar;

class Model
{
}

namespace SomeOtherNamespace;

abstract class Models
{
const MODEL = "foo\\bar\\Model";
}

$class = Models::MODEL;
$x = new $class();
var_dump($x);

Который вы можете увидеть здесь https://3v4l.org/87sKs

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector