PHP class_alias 和 var_dump 一样 class

PHP class_alias with var_dump as that class

我正在开发一个库以连接到 Eventbrite API。我已经使它足够通用,以至于很多二级业务对象都是空的 classes。话虽如此,当我实例化这些对象时,我仍然希望它们注册为不同的 classes。我以为 class_alias 会是要走的路,但似乎原来的 class 是做 var_dump.

时返回的内容

当前:

<?php

namespace Project;

class_alias(
    '\Project\Classes\Aliaser', 
    '\Project\Classes\Attendee',
    true
);

use Project\Classes\Aliaser;
use Project\Classes\Attendee;

$attendee = new Attendee();
var_dump($attendee)
// Aliaser {}

我的拍摄目的:

$attendee = new Attendee();
var_dump($attendee);
// Attendee {}

我真的很想删除空的 classes 以支持通用的,同时注册新的动态生成的 class。

在不严重影响性能的情况下这可能吗?

注意:首选 PHP 5.4 或更高,但 PHP 7 也不错。

您可以创建 class 的实例,而无需使用 eval:

将代码放入文件
// define the class if it does not exists
if (!class_exists (\Eightfold\Eventbrite\Classes\ApiResource\Question::class)) {
    eval ( 'class Question extends \Eightfold\Eventbrite\Classes\ApiResource {} ');
}

//create instance
$instance = new \Eightfold\Eventbrite\Classes\ApiResource\Question ();

P.S。如果没有 eval 找不到其他解决方案,那么您应该考虑这句话:

If eval() is the answer, you're almost certainly asking the wrong question. -- Rasmus Lerdorf, BDFL of PHP