首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ThinkPHP3.1.2笔记

ThinkPHP3.1.2笔记

作者头像
苦咖啡
发布于 2018-05-08 09:49:20
发布于 2018-05-08 09:49:20
1K0
举报
文章被收录于专栏:我的博客我的博客

1.开启trace

方法一:在配置文件中添加(默认在config.php,如果定义debug模式,可以定义在debug.php) SHOW_PAGE_TRACE => 1, 方法二:在入口文件 defined(“SHOW_PAGE_TRACE”, 1); 方法三:动态设置 C(‘SHOW_PAGE_TRACE’, 1);

使用方法 trace(‘展示代码’,’info’);

2.函数库

系统函数库和项目函数库不需要加载即可试用,扩展函数库需要加载才可以用 加载函数库文件可用配置”LOAD_EXT_FILE”=>’user,db’这样可以加载项目公共目录(common)下的函数库文件user.php和db.php 可以手动加载load(“@.user”);

3.类库

显示导入import(“Think.Util.Array”);//导入基类库Util/Array.class.php文件 导入当前项目类库可用import(“@.Action.UserAction”)或者import(“APP.Action.UserAction”); 可以参考import函数代码

别名导入 在配置目录alias.php中配置别名,即可试用import(“page”);

第三方类库存放在系统扩展目录Extend下的Vendor目录 可以用Vendor(“Zend.Filter.Dir”);导入第三方

自动加载 自动加载优先级从高到底:别名自动加载=》系统规则自动加载=》自定义路径自动加载 可以配置”APP_AUTOLOAD_PATH”=>’@.Common,@Tool’加载自定义下类库

4.URL模式

配置项URL_MODEL 普通模式为0 PATHINOF模式为1 Rewrite模式为2 兼容模式为3

推荐使用PATHINFO模式开发,如果空间不支持,可以试用兼容模式或者普通模式

5.空操作和空模块—方便定义错误处理页 如果定义了空操作那么如果一个方法不存在,即使存在模板文件也会优先定向到空操作 eg:比如一个控制器中定义了_empty方法,那么即使模板中有test.html模板,但是不存在testAction,那么请求test 方法的时候会优先定位到_empty方法中

6.模块分组 配置APP_GROUP_LIST 用逗号分开,设置默认分组DEFAULT_GROUP

7.伪静态配置 ‘URL_HTML_SUFFIX’ => ‘shtml|html|xml’, 配置多个伪静态后缀

8.URL路由 开启路由URL_ROUTE_ON=>true

规则路由 格式 规则=> “分组/模块/操作?额外参数=值” 规则=> array(‘分组/模块/操作’, ‘额外参数=值’) 规则=>外部地址 规则=>array(‘外部地址’, ‘重定向代码’) 要点 :开头的是动态变量 外部地址可以引用动态变量采用:1,:2的方式 路由规则支持:id\d表示只能匹配数字 排除非数字变量:cate^add|edit 路由规则中的静态地址不分大小写

9.APACHE隐藏index.php入口文件 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>

10.ULR生成

在控制器中我们可以用U方法生成URL地址 比如U(“News/read?id=1”) 在不同的url模式下生成的url地址不同

在模板中我们可以用{:U(参数1,参数2…)}的方式生成URL

如果设置URL_CASE_INSENSITIVE=>true那么生成的url地址全是小写的

11.URL地址大小写 ‘URL_CASE_INSENSITIVE’ =>true 这样就不区分大小写了

12.前置操作和后置操作可以参考手册

13.跨模块调用 A方法可以实现跨模块调用其他分组下的控制器.A[项目名://][分组名]模块名 A(“User”)当前模块下的user控制器 A(“Admin://User)调用admin项目的User模块 A(“Admin/User”)调用admin分组中的User模块 A(“Admin://Tool/User”)调用Admin项目Tool分组中的User模块

R方法可以调用一个模块下的一个操作方法。R[项目名://][分组名]模块名, array(‘参数1′,’参数2’);

14.自定义提示页面模板 TMPL_ACTION_ERROR => ‘Public:error’ TMPL_ACTION_SUCCESS=>’Public:success’ 模板中可以用$msgtitle表示操作标题;$message页面提示信息;$status来表示状态 1表示成功;$waitSecond跳转等待时间 $jumpUrl跳转地址 如果是ajax提交,会自动调用ajaxReturn返回

15.重定向 在控制器中用redirect实现页面重定向功能;参数可以参考U方法

17.获取系统变量 在控制器中我们可以使用$this->方法名(“变量名,[过滤方法],[‘默认值’]); 其中方法名有_get,_post,_param,_request(REQUEST参数),_put,_session,_cookie($_COOKIE),_server($_SERVER) _globals($GLOBALS)

可以设置默认过滤函数 ‘DEFAULT_FILTER’ => ‘htmlspecialchars,strip_tags’

支持获取全部变量$this->_get();

可以试用$this->_param(0)获取PATHINFO中的第一个参数,以及获取get和post等参数,推荐使用

18.判断请求类型 isGet()判断是否是GET方式提交 isPost()判断是否是POST方式提交 isPut()判断是否是PUT方式提交 isDelete()判断是否是delete方式提交 isHead()判断是否是Head方式提交 isAjax判断是否是ajax提交,如果用Jquery类库则不需要添加隐藏域,否则需要添加一个隐藏域

19.Ajax返回 status 操作状态 info 提示信息 data 返回数据 $this->ajaxReturn(返回数据,提示信息,操作状态);

支持$data[‘status’] =1;$data[‘info’] = ‘test’;$this->ajaxReturn($data,’JSON’);

20.Action参数绑定 比如/News/read/id/1,绑定read方法,function read($id = 0) { echo $id; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年6月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ThinkPHP-PHP开发中的主流框架
PHP 中的框架是什么? 框架就是通过提供一个开发 Web 程序的基本架构,PHP 开发框架把 PHPWeb 程序开发摆到了流水线上。换句话说,PHP 开发框架有助于促进快速软件开发(RAD),这节约了开发时间,有助于创建更为稳定的程序,并减少开发者的重复编写代码的劳动。 框架专门用于为这些常用元素(数据库交互、表示层、应用程序逻辑)提供结构,以便可以花费更少的时间来编写数据库接口代码或者表示层接口,而花费更多的时间来编写应用程序本身。以这种方式分解应用程序,这种架构被称为模型-视图-控制器(Mod
沈唁
2018/05/24
3K0
PHP全栈学习笔记20
thinkphp概述,thinkphp项目构建流程,thinkphp项目结构,thinkphp配置,thinkphp控制器,thinkphp模型,thinkphp视图,thinkphp的内置模板引擎。
达达前端
2019/07/03
2.1K0
PHP全栈学习笔记20
thinkphp常用配置config
下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home)。
PM吃瓜
2019/08/12
3.1K0
thinkphp常用配置config
Thinkphp5学习笔记
​ ThinkPHP5.0的URl访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于:
全栈程序员站长
2022/07/13
2K0
tp3.1.2缓存,日志,调试,模板,标签,视图
1.模板 默认在tpl目录下 默认后缀是.html,可以通过TMPL_TEMPLATE_SUFFIX来配置 如果启用分组,那么模板可能在tpl/分组名/目录下,可以配置TMP_FILE_DEPR来简化模板目录层次 2.赋值 $this->assign(‘name’, $name); 3.模版渲染 调用当前模块下当前操作$this->display(); 调用当前模块下的其他操作$this->display(‘user’);//当前在index,注意不要带后缀 调用其他模块下的操作$this->
苦咖啡
2018/05/08
1.5K0
PHP-ThinkPHP框架学习
每个项目都有一个独立的配置文件(位于项目目录的Conf/config.php),配置文件的定义格式均采用PHP返回数组的方式,例如:
偏有宸机
2020/11/04
7.2K0
TP3.2升级TP5踩到的坑
TP5: M 方法 替换为 Db::name、S 方法 替换为 session、I 方法 替换为 input、U 方法 替换为 url
黄啊码
2020/05/29
2.7K0
Thinkphp框架的项目规划总结和踩坑经验
1、项目分为PC端、移动端、和PC管理端,分为对应目录为 /Application/Home,/Application/Mobile,/Application/Admin;
PM吃瓜
2019/08/12
2.7K0
Thinkphp框架的项目规划总结和踩坑经验
[ThinkPHP6.*安装 (草稿先发布,再维护)
ThinkPHP6.0的安装,官方文档中有详细的说明,不过在安装之前,大家还是要做一些准备的,就是PHP本地开发环境 的搭建。
landv
2019/08/20
1.3K0
thinkjs学习笔记
IMWeb前端团队
2017/12/29
1.3K0
Thinkphp6学习笔记,持续记录
由此开始:https://www.kancloud.cn/manual/thinkphp6_0/1037479
房东的狗丶
2023/02/17
2K0
入坑!通过ajaxreturn jquery json提交form
\Think\Controller类提供了ajaxReturn方法用于AJAX返回数据给客户端(视图、模板、js等)。并且支持JSON、JSONP、XML和EVAL四种方式给客户端接受数据(默认JSON)。
PM吃瓜
2019/08/12
5.5K0
入坑!通过ajaxreturn jquery json提交form
thinkphp 路由
http://localhost:8082/admin/blog/23/ 此时会匹配23内容
mySoul
2019/05/30
1.4K0
Thinkphp
thinkphp:mvc模式 1,thinkphp的安装配置 条件 PHP>=5.4.0 PDO MbString CURL PHP Externsion Mysql Apache或Nginx 安装: composer composer config -g repo.packagist composer https://packagist.phpcomposer.com composer create-project --prefer-dist topthink/think think_co
Dean0731
2020/05/11
2.5K0
thinkphp创建应用的一般流程
下载完成后,解压,将文件里的ThinkPHP文件夹复制,我们在XAMPP/htdocs目录(服务器或者本地web目录)下新建一个文件bookstore文件夹,再将ThinkPHP文件夹拷贝到bookstore文件夹路径下
PM吃瓜
2019/08/13
1.6K0
ThinkPHP5框架与ThinkPHP3.2的对比区别
今天周一,又有一位新同事入职。正好大牛说要更新框架,最后确定了升级框架,原先使用的 ThinkPHP3.2 版本的,现在确定升级为 5 系列。应该庆幸没选择其他框架,什么 CI、YII、Laravel 之类的,Laravel 了解过一些,但是没深入过,还是 TP 系列使用的顺手一些。 ThinkPHP5 系列,十二载初心不改,值得信赖的 PHP 框架,十二周年献礼版本! ThinkPHP5.1 在 5.0 的基础上对底层架构做了进一步的改进,引入新特性,并提升版本要求。另外一个事实是,5.1 版本看起来对开
沈唁
2018/05/24
4.2K0
ThinkPHP控制器-精华总结
TP3.23对控制器做了更加细致的分层,除了默认的Controller层,还可以自定义事件控制层Event。
PM吃瓜
2019/08/12
1.2K0
ThinkPHP控制器-精华总结
控制器操作【2】
三.跳转和重定向 ThinkPHP 在操作数据库时,需要跳转和重定向页面。ThinkPHP 提供了一组方法来解决了这个问题。 //成功和失败的跳转 class UserController extends Controller { public function index() { $flag = true; if ($flag) { //会跳转到:http://localhost/demo39/User/all $this->success('新增成功!', '../User/all'); } else { //会跳转到本页的上一页 $this->error('新增失败!'); } } } PS:success()方法和 error()方法,第一个参数是提示信息、第二个跳转的地址、第三个跳转时间。默认情况下 success()方法是 1 秒,error()方法是 3 秒。
PM吃瓜
2019/08/13
6250
ThinkPHP5开发的正确姿势
安装篇 使用composer,既然是趋势就早日拥抱,能写PHP的这点工具用不来说不过去(另外官方的所有扩展都会以composer方式提供); 如果只需要核心单独安装核心框架就行了,应用仓库并非必须; 如果你安装的是dev-master,composer更新的也是开发版,如果安装的是正式版那么更新的也是最新的正式版(就和Chrome的开发版和正式版一样); 把web根目录指向public目录而不是根目录; 资源文件不要放到public目录以外; TP5完美支持PHP7,不要以为基于PHP7写的框架才会
超级小可爱
2023/02/23
1.1K0
CI基础知识笔记
1.知识点 $config[‘url_suffix’] = ”;//url后缀 $config[‘enable_query_strings’] = FALSE; $config[‘controller_trigger’] = ‘c’;//类似Thinkphp当中的m,可以传递c=news控制器名 $config[‘function_trigger’] = ‘m’;//类似Thinkphp当中的a,可以传递a=index方法名 $config[‘directory_trigger’] = ‘d’;
苦咖啡
2018/05/08
1.5K0
相关推荐
ThinkPHP-PHP开发中的主流框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档