ThinkPHP发生两次调用 附thinkphp3.0入口文件编译和调整说明

来源:互联网 发布:js处理undefined 编辑:程序博客网 时间:2024/05/14 12:33

将ThinkPHP升级后发现,所有调用输出都运行的两次。

如echo "hello ThinkPHP !";页面显示 “hello ThinkPHP !hello ThinkPHP ! ”两次输出

原因ThinkPHP3.0以上的版本不在使用App::run()。从ThinkPHP2.0升级后没有删除App::run() 导致二次输出。

将入口文件中的App::run()删除即可解决

define('APP_NAME','MyApp');

define('APP_PATH','./');   //[调整] THINK_PATHAPP_PATH常量定义最后必须是/结束

require ’../ThinkPHP/ThinkPHP.php‘;

thinkphp3.0入口文件编译和调整说明:

  • [新增] 调试模式增加不同的应用状态 自动加载不同的项目配置文件
  • [新增] 入口文件增加RUNTIME_FILE常量定义
  • [调整] THINK_PATH APP_PATH 常量定义最后必须是/结束
  • [调整] 调试模式设置改为在入口文件中使用APP_DEBUG常量
  • [调整] 默认调试模式配置调整 默认情况下不开启运行信息和页面TRACE信息
  • [改进] 部署模式和原ALLINONE模式合并 最终只生成一个项目编译缓存文件
  • [改进] runtime自动生成和目录检测优化
  • [改进] 核心编译生成文件支持常量分离到单独的文件外部加载
  • [改进] CORE_PATH TMPL_PATH HTML_PATH EXTEND_PATH MODE_PATH VENDOR_PATH常量可以在入口重新定义
  • [改进] 部署编译生成新的入口文件 可以用于替换入口
  • [改进] 支持 自定义编译缓存文件名 可以在入口文件增加常量RUNTIME_FILE默认位置不变
  • [改进] 调试模式切换删除编译缓存 便于调试后直接切换到部署模式
  • [删除] 废除入口文件中的APP_CACHE_NAMENO_CACHE_RUNTIMERUNTIME_ALLINONESTRIP_RUNTIME_SPACE常量定义
  • [删除]去掉入口文件中的App::run()代码

[配置]

  • 新版的惯例配置中去掉了行为才需要使用的配置项
  • 部分惯例配置参数移动到行为扩展中

所以我们建议

  • [新增] 增加APP_STATUS 参数 用于调试模式下面设置不同的应用状态 自动加载不同的项目配置文件
  • [新增] 增加TMPL_LAYOUT_ITEM 参数,用于配置布局内容替换标识 默认是{__CONTENT__}
  • [新增] 增加LOAD_EXT_FILELOAD_EXT_CONFIG参数,用于动态加载外部文件和配置文件
  • [新增] 增加APP_TAGS_ON参数 用于设置是否开启系统行为扩展,默认开启
  • [新增] 新增DB_SQL_BUILD_CACHEDB_SQL_BUILD_LENGTH参数用于sql缓存
  • [新增] 增加DB_MASTER_NUM参数用于设置主(写)服务器数量
  • [新增] 增加MEMCACHE_HOSTMEMCACHE_PORT配置
  • [新增] 增加LANG_LIST参数,用于设置允许切换的语言列表,用逗号分隔
  • [新增] 增加TMPL_DENY_PHP参数,用于设置模板是否禁用PHP代码
  • [新增] 增加DEFAULT_FILTER参数,用于设置默认的参数过滤方法
  • [新增] 增加VAR_SESSION_ID参数,用户可以指定session_id
  • [新增] 增加SHOW_LOAD_FILE 参数,用于控制是否显示加载文件数
  • [新增] 增加TOKEN_RESET参数,用于设置令牌错误后是否重置 默认为true
  • [新增] 惯例配置添加APP_SUB_DOMAIN_RULESAPP_SUB_DOMAIN_DENY默认设置
  • [调整] 当前模板主题名配置TEMPLATE_NAME更改为THEME_NAME
  • [调整] 当前扩展名称的定义THINK_MODE 更改为MODE_NAME
  • [调整] APP_CONFIG_LIST配置参数改为字符串方式,用逗号分隔
  • [调整] LOG_RECORD_LEVEL 配置参数改为字符串方式,用逗号分隔
  • [调整] 数据库端口设置DB_PORT默认为空
  • [调整] TMPL_ACTION_ERRORTMPL_ACTION_SUCCESS默认采用内置的错误提示模板
  • [调整] TMPL_STRIP_SPACE 默认为true
  • [调整] APP_AUTOLOAD_PATH参数设置最后不需要加. 例如ORG.Util 原先为ORG.Util.
  • [删除] 删除原调试模式配置参数APP_DEBUG 改为常量定义
  • [删除] 删除APP_GROUP_DEPR 参数
  • [删除] 删除APP_CONFIG_LIST 参数
  • [删除] 删除APP_PLUGIN_ON参数
  • [删除] 删除APP_AUTOLOAD_REG参数
  • [删除] 删除APP_DOMAIN_DEPLOY参数 只需要设置APP_NAME为空即可
  • [删除] 删除URL_PATHINFO_MODEL参数 只保留原来的智能模式
  • [删除] 惯例配置中去掉VAR_PAGE定义
  • [删除] 取消模块配置文件
  • [删除] 取消taglibs.php(标签库定义) 标签库会自动加载

[删除] 取消modules.php(扩展模块), actions.php(扩展操作)