ThinkPHP发生两次调用 附thinkphp3.0入口文件编译和调整说明
2012-07-06 19:43
239 查看
将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_PATH
和APP_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_NAME、NO_CACHE_RUNTIME、RUNTIME_ALLINONE、STRIP_RUNTIME_SPACE常量定义
[删除]
去掉入口文件中的App::run()
代码
[配置]
新版的惯例配置中去掉了行为才需要使用的配置项
部分惯例配置参数移动到行为扩展中
所以我们建议
[新增] 增加APP_STATUS 参数 用于调试模式下面设置不同的应用状态 自动加载不同的项目配置文件
[新增] 增加TMPL_LAYOUT_ITEM 参数,用于配置布局内容替换标识 默认是{__CONTENT__}
[新增] 增加LOAD_EXT_FILE和LOAD_EXT_CONFIG参数,用于动态加载外部文件和配置文件
[新增] 增加APP_TAGS_ON参数 用于设置是否开启系统行为扩展,默认开启
[新增] 新增DB_SQL_BUILD_CACHE和DB_SQL_BUILD_LENGTH
参数用于sql缓存
[新增] 增加DB_MASTER_NUM参数用于设置主(写)服务器数量
[新增] 增加MEMCACHE_HOST和MEMCACHE_PORT配置
[新增] 增加LANG_LIST参数,用于设置允许切换的语言列表,用逗号分隔
[新增] 增加TMPL_DENY_PHP参数,用于设置模板是否禁用PHP代码
[新增] 增加DEFAULT_FILTER参数,用于设置默认的参数过滤方法
[新增] 增加VAR_SESSION_ID参数,用户可以指定session_id
[新增] 增加SHOW_LOAD_FILE 参数,用于控制是否显示加载文件数
[新增] 增加TOKEN_RESET参数,用于设置令牌错误后是否重置 默认为true
[新增] 惯例配置添加APP_SUB_DOMAIN_RULES和APP_SUB_DOMAIN_DENY
默认设置
[调整] 当前模板主题名配置TEMPLATE_NAME更改为THEME_NAME
[调整] 当前扩展名称的定义THINK_MODE 更改为MODE_NAME
[调整] APP_CONFIG_LIST配置参数改为字符串方式,用逗号分隔
[调整] LOG_RECORD_LEVEL 配置参数改为字符串方式,用逗号分隔
[调整] 数据库端口设置DB_PORT默认为空
[调整] TMPL_ACTION_ERROR和TMPL_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(扩展操作)
如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_PATH
和APP_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_NAME、NO_CACHE_RUNTIME、RUNTIME_ALLINONE、STRIP_RUNTIME_SPACE常量定义
[删除]
去掉入口文件中的App::run()
代码
[配置]
新版的惯例配置中去掉了行为才需要使用的配置项
部分惯例配置参数移动到行为扩展中
所以我们建议
[新增] 增加APP_STATUS 参数 用于调试模式下面设置不同的应用状态 自动加载不同的项目配置文件
[新增] 增加TMPL_LAYOUT_ITEM 参数,用于配置布局内容替换标识 默认是{__CONTENT__}
[新增] 增加LOAD_EXT_FILE和LOAD_EXT_CONFIG参数,用于动态加载外部文件和配置文件
[新增] 增加APP_TAGS_ON参数 用于设置是否开启系统行为扩展,默认开启
[新增] 新增DB_SQL_BUILD_CACHE和DB_SQL_BUILD_LENGTH
参数用于sql缓存
[新增] 增加DB_MASTER_NUM参数用于设置主(写)服务器数量
[新增] 增加MEMCACHE_HOST和MEMCACHE_PORT配置
[新增] 增加LANG_LIST参数,用于设置允许切换的语言列表,用逗号分隔
[新增] 增加TMPL_DENY_PHP参数,用于设置模板是否禁用PHP代码
[新增] 增加DEFAULT_FILTER参数,用于设置默认的参数过滤方法
[新增] 增加VAR_SESSION_ID参数,用户可以指定session_id
[新增] 增加SHOW_LOAD_FILE 参数,用于控制是否显示加载文件数
[新增] 增加TOKEN_RESET参数,用于设置令牌错误后是否重置 默认为true
[新增] 惯例配置添加APP_SUB_DOMAIN_RULES和APP_SUB_DOMAIN_DENY
默认设置
[调整] 当前模板主题名配置TEMPLATE_NAME更改为THEME_NAME
[调整] 当前扩展名称的定义THINK_MODE 更改为MODE_NAME
[调整] APP_CONFIG_LIST配置参数改为字符串方式,用逗号分隔
[调整] LOG_RECORD_LEVEL 配置参数改为字符串方式,用逗号分隔
[调整] 数据库端口设置DB_PORT默认为空
[调整] TMPL_ACTION_ERROR和TMPL_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(扩展操作)
相关文章推荐
- ThinkPHP 入口文件定义 3.0 输出两次解决办法
- ThinkPHP发生两次调用
- 未找到入口文件,或者文件读取失败,请检查后重新编译。 pages/contact/contact 出现脚本错误或者未正确调用 Page()。
- Rails : css或js文件无法成功预编译或调用jquery类插件时预编译问题
- C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件
- Matlab中调用VS编译的exe文件并传递变量 的方法
- Linux下gcc编译生成动态链接库*.so文件并调用它 是转载的
- 调用G2O,编译的时候提示:error C1083: 无法打开包括文件: “sys/time.h”
- ThinkPHP里用U方法调用js文件
- Linux下gcc编译生成动态链接库*.so文件并调用它
- c#把cs文件编译为dll文件(二) 处理带有调用WebService方法的cs
- 【Thinkphp】入口文件和配置文件
- Linux下gcc编译生成动态链接库*.so文件并调用它
- ThinkPHP 项目构建与入口文件概念
- thinkphp5.0学习(四):入口文件、路由模式、路由设置和url生成
- 把js文件编译成dll供页面调用的方法
- ThinkPHP 入口文件加载
- Vc6.0 编译发生致命链接错误 :不能打开exe的文件
- 对于ThinkPHP入口文件以及模块目录结构的学习
- Android下编译自己的库文件jar并在应用中调用