修正setAccessible问题,支持php8.5

This commit is contained in:
2026-01-06 12:50:18 +08:00
parent d18044dbd7
commit a68ac1ce79
3 changed files with 60 additions and 38 deletions

View File

@@ -1,3 +1,5 @@
# 临时修复topthink/framework 的问题
![](https://www.thinkphp.cn/uploads/images/20230630/300c856765af4d8ae758c503185f8739.png)
# ThinkPHP 8

View File

@@ -191,7 +191,9 @@ class Event
if (empty($prefix) && $reflect->hasProperty('eventPrefix')) {
$reflectProperty = $reflect->getProperty('eventPrefix');
if(PHP_VERSION_ID < 80100) {
$reflectProperty->setAccessible(true);
}
$prefix = $reflectProperty->getValue($observer);
}

View File

@@ -30,6 +30,7 @@ abstract class Dispatch
{
/**
* 应用对象
*
* @var App
*/
protected $app;
@@ -40,6 +41,7 @@ abstract class Dispatch
/**
* 执行路由调度
*
* @access public
* @return Response
*/
@@ -76,6 +78,7 @@ abstract class Dispatch
/**
* 检查路由后置操作
*
* @access protected
* @return void
*/
@@ -116,6 +119,7 @@ abstract class Dispatch
/**
* 获取操作的绑定参数
*
* @access protected
* @return array
*/
@@ -131,8 +135,11 @@ abstract class Dispatch
/**
* 执行中间件调度
*
* @access public
*
* @param object $controller 控制器实例
*
* @return void
*/
protected function responseWithMiddlewarePipeline($instance, $action)
@@ -175,8 +182,11 @@ abstract class Dispatch
/**
* 使用反射机制注册控制器中间件
*
* @access public
*
* @param object $controller 控制器实例
*
* @return void
*/
protected function registerControllerMiddleware($controller): void
@@ -185,7 +195,9 @@ abstract class Dispatch
if($class->hasProperty('middleware')) {
$reflectionProperty = $class->getProperty('middleware');
if(PHP_VERSION_ID < 80100) {
$reflectionProperty->setAccessible(true);
}
$middlewares = $reflectionProperty->getValue($controller);
$action = $this->request->action(true);
@@ -229,9 +241,12 @@ abstract class Dispatch
/**
* 路由绑定模型实例
*
* @access protected
*
* @param array $bindModel 绑定模型
* @param array $matches 路由变量
*
* @return void
*/
protected function createBindModel(array $bindModel, array $matches): void
@@ -275,8 +290,11 @@ abstract class Dispatch
/**
* 验证数据
*
* @access protected
*
* @param array $option
*
* @return void
* @throws \think\exception\ValidateException
*/