### 问题描述

使用 swoole http 的问题

就是改变了 控制器文件 不重启 怎么还能 才能让类正常使用

比如 index\controller\index类里面的index方法 调用返回 333

然后我修改了 这个文件 让它index方法 返回444

在不重启服务的情况下 怎么 才能释放这个 命名空间

### Swoole版本,PHP版本,以及操作系统版本信息

Swoole 4

php 7

centos7

### 相关代码

```php

//自动加载类

$class_name=str_replace('\\',"//",$class_name);

$file_path= root_dir.DS.$class_name.".php";

if (is_file($file_path) && file_exists($file_path)) {

return include($file_path);

}

$file_path= APP.DS.$class_name.".php";

if (is_file($file_path) && file_exists($file_path)) {

include($file_path);

}

return false;

```

```php

//index.php 文件 第一次加载

namespace index\controller;

use core\controller;

class index extends controller{

public function __construct(){

parent::__construct();

}

public function index(){

return json_encode(array("a11"=>"333"));

}

public function index2(){

$this->assign("home","index12345621方法");

}

}

```

```php

//index.php 文件 希望 第二次加载 但是应为已经声明了所以不会再次加载

namespace index\controller;

use core\controller;

class index extends controller{

public function __construct(){

parent::__construct();

}

public function index(){

return json_encode(array("a11"=>"444"));

}

public function index2(){

$this->assign("home","index12345621方法");

}

}

```

```php

//判断文件是否存在

if (file_exists($controller_file)) {

echo 'get_declared_classes !';

var_dump(get_declared_classes ());

$class_namespacename = "\\" . $module_name . "\\".controller."\\" . $class_name;//模块,控制器,类名称

$class_obj = new $class_namespacename();

if (method_exists($class_obj, $function_name)) {

$http_data=$class_obj->$function_name();

} else {

$http_data = "模块/控制器/方法->" . $module_name . '/' . $controller_name . '/' . $function_name . "不存在!";

}

//判断试图文件是否存在 存在则使用试图

if(empty($http_data) && file_exists($view_file)){

$http_data = $smarty->fetch($view_file);

}

$this->swoole_response->header("Content-Type", "text/html; charset=utf-8");

$this->swoole_response->end($http_data);

unset($class_obj);//使用完成后释放对象

} else {

$this->swoole_response->header("Content-Type", "text/html; charset=utf-8");

$http_data = '

404 文件丢失

';

$this->swoole_response->end($http_data);

}

```

### 你期待的结果是什么?实际看到的错误信息又是什么?

php mcv,swolle http mcv设计问题相关推荐

  1. 谋而后动:解读数仓计划生成中行数估算和路径生成的奥秘

    摘要: 孙子兵法云:"谋定而后动,知止而有得",做任何事一定要进行谋划部署,做好准备,这样才能利于这件事的成功,切不可莽撞而行.同样,GaussDB(DWS)执行查询语句也会按照预 ...

  2. 最新golang语言面试题总结(三)

    1.go中拼接字符串有几种方式 1."+" 最常用的方法就是,使用"+"将两个字符串进行连接,与Python类似,不过Go语言中的字符串是不可变的类型,因此用& ...

  3. 对于Spring MCV的理解

    对于Spring MCV的理解 1.什么是Spring MCV? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Contro ...

  4. postgresql对于HashJoin算法的Data skew优化与MCV处理

    Data skew 很好理解,即数据倾斜.现实中的数据很多都不是正态分布的,譬如城市人口,东部沿海一个市的人口与西部地区一个市地区的人口相比,东部城市人口会多好几倍. postgresql的skew的 ...

  5. [PyQt] MCV模式学习-0

    MCV模式学习-0 目的 item-based模式 0.0 QStringListModel 0.1 QAbstractListModel 0.2 目的 之前的PyQt采用的是item based形式 ...

  6. MCV 和 MTV框架基本信息

    一 . MCV # web服务器开发最著名的MVC模式M : model.py 就是和数据库打交道的, 创建表等操作V : view 视图(视图函数,就是装HTML文件的)C : controller ...

  7. springBoot的mcv(视图)控制

    springBoot的mcv(视图)控制 新建个类,继承WebMvcConfigurer 类名上加注解@Configuration @Configuration public class MyMvcC ...

  8. 二、CI框架之MCV模型

    一.关于MCV,大概就是下图所示: 模型(model)-视图(view)-控制器(controller) M用来处理数据库,V用来显示界面,C用来控制 二.对应到CI的源码,对应的是这3个目录 转载于 ...

  9. 简单理解SpringMVC的三层结构顺序MCV以及ModelAndView的使用

    MVC三层结构 (M->C->V) requset–>中心总控制器(DispatcherServlet) 中心控制器接收到用户请求后:将请求转发到HandlerMapping (方法 ...

最新文章

  1. boost linux 下安装
  2. Py之easygui:easygui的简介、安装(最正确安装)、使用方法之详细攻略
  3. 2020-11-28 Latex相关小工具
  4. 如何解决SVN Commit failed (details follow): Access denied
  5. vi 搜索命令_vi或vim如何查询关键字
  6. 电子书下载:Programming Microsoft LINQ in Microsoft .NET Framework 4
  7. python args kw_Python基础-参数魔法,*args,**kwags
  8. 中国内部数据集成软件行业市场供需与战略研究报告
  9. ubuntu16.04安装天气预报软件
  10. 自助友情链接交换网站php源码,友情链接交换系统
  11. c51为啥要宏定义时钟_c51时钟
  12. PowerDesigner 下载安装
  13. Java中创建对象有哪几种方式,Java 中创建对象的4种方式--Java学习网
  14. RoundProgressBar(圆形进度条)
  15. (纯原创)分解质因数
  16. 怎么从Apache maven 官网下载旧版本
  17. 权限管理后端篇(一)之创建权限管理表引入knife4j和Druid数据源
  18. Discuz论坛升级攻略及踩坑处理
  19. 蓝精灵事件来袭: 深受喜爱的蓝色角色来 Web3 啦!
  20. 洛谷P1135:奇怪的电梯(lift)

热门文章

  1. 微信扫码 android sdk,H5中js-sdk扫码功能,Android手机微信中无法调用扫码?
  2. 题目1:MySQL基本练习【单、多表】
  3. IOS使用高德地图获取当前位置信息
  4. 云原生kubernetes六:namespace和Resourcequota
  5. curl ip.sb查询公网ip
  6. Java中的Math函数常用方法都在这里
  7. 了解MVP(最小可行产品) - 以及为什么我更喜欢最早的可测试/可用/可爱
  8. 【微分方程数值解】有限差分法(二)两点边值问题数值算例(附python代码)
  9. wsl2中安装QGC
  10. opencv函数测试对话框