现在的框架中都有一个容器, 而容器解决依赖的问题是通过反射来达到的, 所以记录一下PHP反射的只是。
首先先说明一下项目文件结构:
/ ROOT_PATH
├─src
│ ├─Controllers
│ │ └─IndexController.php
| ├─Application.php (核心,获得实例)
│ ├─Http.php
│ └─Request.php
│
├─vendor
│ └─autoload.php
│
├─composer.json
└─index.php
而我们要运行IndexController.php
,而这个控制器的构造函数需要一个Request
类,而Request
类构造函数需要一个Http
类。
- IndexController.php
<?php
namespace Waitmoonman\Reflex\Controllers;
use Waitmoonman\Reflex\Request;
class IndexController
{
/**
* 注入一个 Request 类
* IndexController constructor.
* @param Request $request
*/
public function __construct(Request $request)
{
echo '我是 ' . __CLASS__ . ' 我依赖' . $request->className;
}
}
- Application.php
<?php
namespace Waitmoonman\Reflex;
u