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
我正在开发一个库以连接到 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