很多站长朋友们都不太清楚thinkphp5,今天小编就来给大家整理thinkphp5,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 thinkphp5配置二级域名 2、 小服务器选 ThinkPHP几好 3、 新手学习thinkphp6还是thinkphp5比较好? 4、 Thinkphp5防止某个IP多次登录的方法 5、 thinkphp5scopebase没有调用 6、 Thinkphp5项目在nginx服务器部署 thinkphp5配置二级域名最近有一个项目要将移动端和PC端分离开来,比如访问xxx测试数据,展示的是PC端的页面。而访问m.xxx测试数据,展示的是移动端的页面。
在thinkphp5中可以这样操作:
首先,在application\config.php修改url_domain_deploy为true,如图:
其次,在application\route.php注册域名部署规则。
其中m是子域名,而mobile是模块名.这段表示任何以m为子域名的访问,都会被解析到mobile模块。
如果是在本地配置,要在hosts中添加
另外:
在apache或nginx中要配置两个虚拟主机,一个域名为xxx测试数据,另一个域名为m.xxx测试数据。根目录都指向public文件夹,但两个的端口号不能相同。
参考:
小服务器选 ThinkPHP几好小服务器选ThinkPHP5好,因为ThinkPHP5比之前的版本好用了很多,增加了很多的一些特性,它采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持一些小服务器使用,并针对API开发做了很多优化。所以小服务器选ThinkPHP5好。
新手学习thinkphp6还是thinkphp5比较好?thinkphp5好
ThinkPHP5是一个全新的里程碑版本,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发),而且最好是忘记3.2版本的思维习惯,重新理解TP5。
Thinkphp5防止某个IP多次登录的方法//昨天写的思路不对,重新写....
/**
*检查IP是否重复登录多次
*/
public function check_ip(){
//获取ip
$login_ip=$_SERVER["REMOTE_ADDR"];
$login_time=date("Y-m-d",time());
if(Cache::get('cache_login_data')==false){
//如果ip换成为false,那么创建一个缓存,并赋值第一个
$login_data[0]=['login_ip'=>$login_ip,'login_time'=>$login_time];
Cache::set('cache_login_data',$login_data);
}else{
//如果有cache,那么将这条数据加入到缓存中最后一条去
$cache_login_data=Cache::get('cache_login_data');
$count=0;
foreach($cache_login_dataas$k=>$v){
//如果当前缓存中的值含有当前ip和时间,那么计算当前时间内登录次数
if($v['login_time']==$login_time$v['login_ip']==$login_ip){
$count++;
if($count>10){
//当前ip登录超过10次
$this->error("你登录超过了10次,请不要再来登了...","Login/index");
}else{
//当前时间内有该IP登陆过,但是没有超过10次
$cache_login_data[count($cache_login_data)+1]=['login_ip'=>$login_ip,'login_time'=>$login_time];
Cache::set('cache_login_data',$cache_login_data);
}
}else{
//当前时间内,该IP没有登陆过
$cache_login_data[count($cache_login_data)+1]=['login_ip'=>$login_ip,'login_time'=>$login_time];
Cache::set('cache_login_data',$cache_login_data);
}
}
}
}
thinkphp5scopebase没有调用一、调用方法。
1、调用当前控制器的test方法
1)、使用面向对象的技术
echo $this->test();
echo self::test();
echo Index::test();
2)、使用系统方法
echo action('test');
2、调用User控制器下的index方法
1)、命名空间
$model=new \app\index\controller\User;
echo $model->index();
2)、使用系统方法
echo action('User/index');
3)、调用后台模块下Index控制器index方法
a、命名空间
$model=new \app\admin\controller\Index;
echo $model->index();
b、使用系统方法
echo action('admin/Index/index');
二、执行流程。
1、入口文件(C:\AppServ\www\tp5\public\index.php)
作用:
1)定义目录常量
2)加载框架引导目录
2、加载框架的引导文件(C:\AppServ\www\tp5\thinkphp\start.php)
作用:
1) 引导基础文件
2) 对应用进行运转
3、加载框架的基础引导文件(C:\AppServ\www\tp5\thinkphp\base.php);
作用:
1) 加载系统常量
2) 引入loader类 (C:\AppServ\www\tp5\thinkphp\library\think\loader.php)
3) 引入环境变量
4) 注册自动记载机制
5) 注册异常处理机制(C:\AppServ\www\tp5\thinkphp\library\think\Error.php)
6) 记载惯例配置(C:\AppServ\www\tp5\thinkphp\convention.php)
4、运行应用(C:\AppServ\www\tp5\thinkphp\library\think\App.php) 下的run方法;
1)、第一步: 加载当前控制器中 initCommon() 方法
2)、第二步: 加载当前控制器中 init() 方法
a、加载各种配置文件
b、加载公共文件
c、加载语言包
3)、第三步: 设置时区
4)、第四步: 加载当前控制器 routeCheck() 方法 路由检测
5)、第五步: 调用控制器中exec方法
根据用户请求进行分发处理
6)、第六步: 根据不同请求类型记载对应文件 module方法
加载到对应的控制器和对应方法
5、响应输出
用户看到的所有界面就加载出来了
thinkphp5.0
不好意思,能点进来看一下嘛,真的能领金币······
芯悦社
?广告
?
JavaScript的异步操作
128阅读·0评论·0点赞
2020年12月15日
php定时自动运行thinkphp方法(含停止)
1370阅读·0评论·0点赞
2017年4月20日
tp5跨控制器调用方法
936阅读·0评论·0点赞
2021年8月12日
tp5 跨控制器调用
610阅读·0评论·1点赞
2021年8月12日
php thinkphp5模型类,thinkphp5调用模型的方法
570阅读·0评论·0点赞
2021年5月7日
tp5控制器调用,方法调用
2353阅读·0评论·0点赞
2018年8月3日
好消息!京东特价版搞活动啦~补贴加码真的省钱
?
京东
?广告
在使用tp框架的链式操作的field方法,出现数据库‘找不到列‘的问题
171阅读·1评论·0点赞
2021年3月3日
浅析ThinkPHP框架SQL操作链式写法原理
175阅读·0评论·0点赞
2015年8月10日
php调用class文件路径,thinkphp文件处理类Dir.class.php的用法分析
145阅读·0评论·0点赞
2021年3月23日
链式写法php,浅析ThinkPHP框架SQL操作链式写法原理
61阅读·0评论·0点赞
2021年4月21日
PHP技巧之链式调用
224阅读·0评论·0点赞
2020年6月12日
thinkphp5 控制器以及方法的调用
1223阅读·0评论·1点赞
2019年8月12日
tp5下自定义类,not found
1.2W阅读·6评论·2点赞
2017年6月23日
tp5中调用一些类的静态方法前面加\
3755阅读·0评论·1点赞
2017年7月13日
tp5怎么跨控制器调用别的方法
6105阅读·0评论·1点赞
2019年4月8日
thinkphp 输出变量使用函数处理
778阅读·0评论·0点赞
2016年8月23日
TP5行为扩展(钩子函数)
1.7W阅读·0评论·0点赞
2017年3月31日
TP5.1 调用request方法
3137阅读·0评论·0点赞
2018年12月7日
TP5调用模型内自定义方法
3294阅读·0评论·0点赞
2019年3月28日
去首页
看看更多热门内容
评论1
?
ctotalk
?
赞
very good
Thinkphp5项目在nginx服务器部署1,切换到nginx的配置目录,找到nginx.conf文件
????cd ? /usr/local/nginx/conf
? ? vim ?nginx.conf
2,如果是单项目部署的话,只需要在nginx.conf文件里面加上以下
server{
????????listen 80;
????????# 域名,本地测试可以使用127.0.0.1或localhost
????????server_name ;
????????# php项目根目录
????????root /home/data-www/blog;
????????location /{
????????????????# 定义首页索引文件的名称
????????????????index index.php index.html index.htm;
? ??????????????# 影藏入口文件
? ??????????????if (-f $request_filename/index.html){
????????????????????????????rewrite (.*) $1/index.html break;
????????????????}
????????????????if (-f $request_filename/index.php){
????????????????????????????rewrite (.*) $1/index.php;
????????????????}
????????????????if (!-f $request_filename){
????????????????????????????rewrite (.*) /index.php;
????????????????}
????????????????try_files $uri $uri/ /index.php?$query_string;
????????}
????????# PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
????????# Fastcgi服务器和程序(PHP)沟通的协议
????????.location ~ .*\.php${
????????????????# 设置监听端口
????????????????fastcgi_pass 127.0.0.1:9000;
????????????????# 设置nginx的默认首页文件
????????????????fastcgi_index index.php;
????????????????# 设置脚本文件请求的路径
????????????????fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
????????????????# 引入fastcgi的配置文件
????????????????include fastcgi_params;
? ??????????????fastcgi_split_path_info ^(.+?\.php)(/.*)$;
????????????????set $path_info $fastcgi_path_info;
????????????????fastcgi_param PATH_INFO $path_info;
????????????????try_files $fastcgi_script_name =404;
????????}
}
3,如果多项目部署,就需要配置vhost
第一步:编辑nginx.conf文件,在最后加上 ? ??include ? ?vhost/*.conf;
第二步:进入vhost文件夹,创建 ? ?域名.conf ? ?文件,如创建一个:quanma.meyat测试数据.conf
第三步:编辑quanma.meyat测试数据.conf文件,内容如下:
????????server
????????{
????????????????listen 80;
????????????????server_name quanma.meyat测试数据;
? ? ? ? ? ? ? ? index index.html index.htm index.php default.html default.htm default.php;
????????????????root /data/wwwroot/default/quanma/public/;
????????????????#error_page 404 /404.html;
????????????????location / {
????????????????????????index index.html index.php;
????????????????????????if (-f $request_filename/index.html){
????????????????????????????????rewrite (.*) $1/index.html break;
????????????????????????}
????????????????????????if (-f $request_filename/index.php){
????????????????????????????????rewrite (.*) $1/index.php;
????????????????????????}
????????????????????????if (!-f $request_filename){
????????????????????????????????rewrite (.*) /index.php;
????????????????????????}
????????????????????????try_files $uri $uri/ /index.php?$query_string;
????????????????}
????????????????location ~ [^/]\.php(/|$)
????????????????{
????????????????????????# comment try_files $uri =404; to enable pathinfo
????????????????????????#try_files $uri =404;
????????????????????????fastcgi_pass 127.0.0.1:9000;
????????????????????????fastcgi_index index.php;
????????????????????????include fastcgi_params;
????????????????????????fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
????????????????????????fastcgi_split_path_info ^(.+?\.php)(/.*)$;
????????????????????????set $path_info $fastcgi_path_info;
????????????????????????fastcgi_param PATH_INFO $path_info;
????????????????????????try_files $fastcgi_script_name =404;
????????????????????????#include fastcgi.conf;
????????????????????????#include pathinfo.conf;
????????????}
????????????location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
????????????{
????????????????????expires 30d;
????????????}
????????????location ~ .*\.(js|css)?$
????????????{
????????????????????expires 12h;
????????????}
????????????# Disallow access to .ht, .svn, .bzr, .git, .hg, .cvs directories
????????????location ~ /\.(ht|svn|bzr|git|hg|cvs) {
????????????????????deny all;
????????????}
????????????#access_log /date/nginx/bmp测试数据.conf/access.log main;
}
关于thinkphp5的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于thinkphp5 thinkphp5菜鸟教程的详细内容...