phpstudy+phpstorm+tp5
tp5缓存问题导致的页面不更新,可删除runtime解决
namespace
命名空间是用来组织和重用代码的。命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。
FORBIDDEN
tp5的访问目录是public,不再是以前的根目录,所以配置站点出现forbidden的时候,可能就是对应的文件夹不对。
命名规则
emmet插件——前端
命令+tab键
<!--生成html5文件 html:5或者!+tab-->
<!doctype html>
<html lang="en">
<head>
<!--设置当前文档的默认字符集 meta:utf+tab -->
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<!--当前页面缩放 meta:vp+tab -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--兼容IE8 meta:compat+tab -->
<!--ie=edge:IE8/9及以后的版本都会以最高版本IE来渲染页面。-->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--引用css文件 link:css+tab -->
<link rel="stylesheet" href="style.css">
<!--引用js script:src+tab -->
<script src=""></script>
<title>emmet学习实例加注释</title>
</head>
<body>
<p>1、生成带样式的标签</p>
<!--标签.样式名 如下面的p标签:p.red+tab -->
<!--div是emmet默认的标签可以不写,直接写样式或者ID生成 .red+tab -->
<p class="red"></p>
<div class="red"></div>
<p>2、生成带ID的标签</p>
<!--标签.id名 如下面的p标签:p#header+tab -->
<p id="header"></p>
<p>3、a标签 如下面的a标签 a+tab</p>
<a href=""></a>
<!--a:link+tab -->
<a href="http://"></a>
<!--a:mail+tab -->
<a href="mailto:"></a>
<p>4、根据标签的位置关系生成标签</p>
<!--生成同级标签,兄弟标签 h2.header+p.info+tab -->
<h2 class="header"></h2>
<p class="info"></p>
<!--生成后代标签,也叫下线标签,且指定个数 ul>li*3-->
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<p>给标签自动添加编号或排序$,@</p>
ul.list>li*5>a{导航$}
<ul class="list">
<li><a href="">导航1</a></li>
<li><a href="">导航2</a></li>
<li><a href="">导航3</a></li>
<li><a href="">导航4</a></li>
<li><a href="">导航5</a></li>
</ul>
ul.list>li*5>a{导航$$}
<ul class="list">
<li><a href="">导航01</a></li>
<li><a href="">导航02</a></li>
<li><a href="">导航03</a></li>
<li><a href="">导航04</a></li>
<li><a href="">导航05</a></li>
</ul>
ul.list>li*5>a{导航$@5}
<ul class="list">
<li><a href="">导航5</a></li>
<li><a href="">导航6</a></li>
<li><a href="">导航7</a></li>
<li><a href="">导航8</a></li>
<li><a href="">导航9</a></li>
</ul>
<!--这个命令是倒序排列,在此显示不对-->
ul.list>li*5>a{aa$@-}
<ul class="list">
<li><a href="">导航1</a></li>
<li><a href="">导航0</a></li>
<li><a href="">导航-1</a></li>
<li><a href="">导航-2</a></li>
<li><a href="">导航-3</a></li>
</ul>
ul>li.item$@-*5
<ul>
<li class="item5"></li>
<li class="item4"></li>
<li class="item3"></li>
<li class="item2"></li>
<li class="item1"></li>
</ul>
<!--生成当前父级标签,也叫上级标签 h2>span.red^p.green+tab ^叫脱字符,在数字6上面-->
<h2><span class="red"></span></h2>
<p class="green"></p>
<p>5、生成标签的时候创建文本和属性</p>
<!--文本:标签{文本文字}+tab-->
<p>这里是p标签的文本文字</p>p{这里是p标签的文本文字}
<!--文本:标签[属性=""]+tab-->
<p class="red" title="这是title属性内容"></p>p.red[title="这是title属性内容"]+tab
<a href="http://" class="red"></a>a.red[href="http://"]+tab
a[link="www.emmet.io"]
<a href="" link="www.emmet.io"></a>
</body>
</html>
tp5支持的URL模式
URL大小写问题
建议访问的时候用下划线分开两个单词,这样URL的可读性更好
配置
模块配置文件常见问题
1、在入口文件中定义了配置目录,就必须在该文件夹中建立相应的模块进行设置,直接在模块中的配置文件中修改是无效的。
如果还是修改后不改变,可能是入口文件的地址不对!
2、扩展配置文件的文件名称就是配置项的名称
3、支持的配置文件格式
4、模块配置(场景配置可用于线上线下的数据库配置,如下)
5、加载其他位置的配置文件
好处:加载任意位置,非PHP格式的配置文件,不仅提高了灵活度,还给其他应用接口提供了一个配置接口。
6、读取配置项
简化代码
7、设置配置项
8、配置优先级
ThinkPHP5配置项的优先级:惯例配置(thinkphp文件夹下的convention.php)<应用配置(application文件夹下的config.php)<应用扩展(application文件夹下extra文件夹下的配置文件,该文件的名称即配置项的名称)<应用场景(application文件夹下的config.php的app_status的内容命名的场景配置文件)<模块配置(application文件夹>模块文件夹下的config.php)<模块扩展(application文件夹>模块文件夹>extra文件夹下的配置文件,该文件的名称即配置项的名称)<模块场景(application文件夹>模块文件夹下的econfig.php的app_status的内容命名的场景配置文件)<动态配置(控制器中动态配置的,方法config::set)
9、配置项的作用域
作用域为 sys 的配置文件几乎在所用php文件中都可以使用,但是自定义作用域的配置只能在当前文件中使用
上图第二点
目前不理解切换作用域有什么用,不切换,同样都可以打印出来所有的配置。
路由