我正在实现诸如创建基于组件的应用程序之类的东西
-- loader.php
-- comonents folder
-- router.php
-- database.php
-- payment.php
-- other components...
在loader.php
中,有一个基类,据称它将对components文件夹中的所有组件文件进行分组,以便前端应用程序可以通过该基类访问所有组件,例如
loader.php
class loader{
// components here
}
$loader = new loader;
然后在我的前端应用程序中,我可以做。.
index.php
<?php require_once(__DIR__.'/loader.php'); ?>
<!DOCTYPE html>
<html>
<head>
<?php $loader->router(); ?> // get router.php component and use
</head>
....
现在,可以使用php trait
创建组件,并且只需
class loader{
use Router, Database...; // put all traits
}
因此可以通过loader类访问它们,但是问题是,无论何时创建或删除组件,我都不想转到class loader
编辑所有特征的调用,应该是自动反映。在当前的php反射和继承功能中,似乎是不可能的。 PHP中有没有办法实现这种想法?
我可以创建一个配置并添加所有组件的文件名,例如
$config['components'] = [ 'Router', 'Database' ...
只需在loader.php
中执行此操作,并消除基类
foreach( $config as $c ){
require_once(__DIR__.'/components/'.$c.'.php');
$$c = new $c(); // array value to variable then initialize component class using array value since name all the way are the same
}
然后在前端应用中执行
<?php require_once(__DIR__.'/loader.php'); ?> // compose of loop components
<!DOCTYPE html>
<html>
<head>
<?php $router(); ?> // get router.php component and use
</head>
但是我不想这样做,我想尽可能将所有特征或类基础组件归为一个基础类,然后该基础类将可被前端应用程序调用(index.php )。有什么帮助吗,想法吗?