я пытаюсь динамически вызов класса в PHP, но каждый раз, когда я пытаюсь я получаю сообщение об ошибке говорит мне, что класс не может быть найденне может динамически вызвать класс
это мой класс завод (я использую фабричный метод для создания классов dynmically на лету):
class EmailFactory
{
public function build ($class)
{
return new $class();
}
}
сообщение об ошибке: это ошибка я получаю, когда я попытался назвать класс
Fatal error: Class 'ProfileApproved' not found
инстанцировании и Вызов класса это, как я назвал класс:
$this->emailClass = (new EmailFactory)->build("ProfileApproved");
класс может быть найден, потому что, когда я делаю это, система способна оказывать класс:
class EmailFactory
{
public function build ($class)
{
return new ProfileApproved();
}
}
Я использую PHP 5.5.12
поэтому я должен уметь отображать класс.
признателен за любые советы, как я сделал
CLAIRIFCATION
Я забыл упомянуть, что я сделал включать имя класса в верхней части страницы: т.е.
include_once('ProfileApproved.php');
вот мой профильApproved Class
Ниже i s мой класс ProfileApproved. в классе нет ничего особенного, нет конструкторов. он просто отображал HTML-адрес электронной почты.
так что нет причин, по которым его нельзя визуализировать динамически.
namespace ConversionEmails\Services\Employer\Emails;
use ConversionEmails\Services\ConversionEmails as Emails;
class ProfileApproved implements Emails
{
public function getHtmlEmail($params)
{
return "test works";
}
}
где ваш профильApporved class определен/объявлен? Если он не находится в том же файле, используйте автозагрузку, чтобы включить его при создании экземпляра .. –
привет. ПрофильApporved находится в том же каталоге. Я также пытался использовать автозагрузчик, но он не имеет значения, все еще не работает –
вы используете пространства имен? – astroanu