-
TP5.1 convention.php下没有view_replace_str
官方文档中写明5.1系统没有任何内置的替换规则。
全局替换可以在
template.php
配置文件中添加://模板常量 'tpl_replace_string' => [ '__STATIC__' => '/public/static', '__JS__' => '/public/static/js', '__CSS__' => '/public/static/css', ]
查看全部 -
模版引入:include标签,引入公共模板
{include file="引入文件" /}
模板继承 :extend标签 ,在需要继承的文件中引入
{extend name="引入文件"}
在被继承的文件中可以加入“坑”:
{block name="ID"} 内容 {/block}
note:在需要修改的文件中替换原内容便好
layout:在配置文件中进行配置
config.php=>template=>['layout_on'=>true, 'layout_name'=>'layout']
通过在layout.html中添加{__CONTENT__}标签,将模板文件所输出的内容替换进来
通过在控制器controller中的配置函数中注册相关变量,在layout.html中,通过{$变量}进行单独配置
心得:编写后台界面的时候
在layout中通过include导入公共样式库和脚本
在需要更改的内容中,加入{__CONTENT__}
创建一个index文件为被继承文件,并挖好“坑”
其他文件就是改填坑的填坑
查看全部 -
{switch name="Think.get.level"}
{case value="1|2"}铜牌{/case}
{default /}游客
{/switch}
查看全部 -
在開發中,通過參數傳遞來控制response的類型會更加靈活!
查看全部 -
config类和助手函数
查看全部 -
{__block__}为模版中写的默认内容
{block name="footer"}
index_{__block__}
{/block}
查看全部 -
php系统环境变量 use think\Env $res = Env::get('名','默认值');
查看全部 -
extends 文件夹为第三方库不是通过composer下载的或者说一个好用的第三方库是composer上没有的 *****要修改命名空间就可以应用了****
public 网站根目录,此文件夹下都是可以访问的,其中的static文件夹为css js 静态文件的文件夹,robots.txt为搜索引擎爬虫文件(规则可以自己编写,例如前台希望被搜索引擎爬取,后台不希望被其爬取)
router.php为框架快速启动文件 例如本机没有安装apache 只安装了php 那么可以通过php内置的web server来启动此框架
runtime为程序运行中的缓存文件(日志缓存以及程序编译文件)
thinkphp为框架文件 base.php定义常量 composer.json定义composer的配置文件 console.php是控制台的配置文件 convention.php 为框架默认的配置文件 helper.php为助手函数 lang文件夹为语言包 library文件夹为框架的核心文件夹,其中的think文件夹整个项目的核心文件,traits为类库的扩展文件 LICENSE.txt为说明文件 README.md是说明文件 start.php是框架启动文件 tpl文件夹为框架的一些模板文件,其中的default_index_.tpl为自动生成的控制器模板文件,dispatch_jump.tpl是网站发出成功或者失败中间的跳转文件,page_trace.tpl是调试时的模板文件,think_exception.tpl是页面抛出异常时的模板文件
vender文件夹是composer安装过程生成的目录,通过composer安装的所有类库都会安装到此文件夹
查看全部 -
html注释用户可见
但是用php的注释方法 前端源码是看不见的 可以放心的写注释
查看全部 -
前段模版使用 php函数的用法 ###号为占位符
例如<h2>{time()} : {time()|date="Y-md-",###}</h2>
###代替的就是time()函数
支持管道模式
查看全部 -
默认路径在前端显示出来
__URL__
__CSS__
__JS__
__ROOT__
//常用的常量信息(获取不同路径) __ROOT__ 获取TP的根路径(/thinkphp) __SELF__ 当前浏览器地址栏中的地址(/thinkphp/index.php/Home/Index/test) __APP__ 入口文件的路径(/thinkphp/index.php) __MODULE__ 当前程序模块的路径(/thinkphp/index.php/Home) __CONTROLLER__ 当前控制器的路径(/thinkphp/index.php/Home/Index) __ACTION__ 当前操作方法的路径(/thinkphp/index.php/Home/Index/test)
查看全部 -
目录使用小写+下划线的方式命名
类库函数名均以.php结尾
类的文件名均以命名空间定义,并且命名空间和类库文件所在路径一致
查看全部 -
入口文件绑定
就是说,通过在入口文件(index.php)里设置
define('BIND_MODULE','admin');//定义此常量,绑定admin模块,这时整个项目,只能访问admin这个模块
define('BIND_MODULE','admin/index');//绑定admin模块下的index控制器(只允许访问admin模块下的index控制器)
define('BIND_MODULE','admin/index/index');//绑定admin模块下的index控制器下的index方法(只允许访问admin模块下的index控制器下的index方法)
可以使用户在访问网站时,只能访问指定模块下的控制器,或者只能访问指定模块下的指定控制器下的指定方法;
这个功能存在的意义?
当我们的项目在给第三方对接时,就可以重新定义一个入口文件(比如叫api.php),原本默认的入口文件是index.php依然存在,index.php这个入口文件是供正常用户访问项目的入口文件;
通过定义一个新的入口文件来限制第三方访问的模块(比如叫api.php);并且第三方只能通过api.php这个入口文件访问,才能得到他们想要的数据,同时我们一般把第三方想要的数据单独放在一个模块(比如api模块);
这时可以在api.php里面设置,只允许第三方访问指定模块,或者指定方法;其他模块或者其他方法不允许其访问;
在public下可创建多个入口文件,可实现不同入口文件访问不同模块。入口文件名与模块文件必须相同,自动访问与之对应的模块。
这时需要在在conf->config.php 里配置自动绑定 "auto_bind_module" => true
相当于public下api.php文件define("BIND_MODULE","api");
注意新建的入口文件里面的一些内容是默认的:
<?php
// 定义应用目录
define('APP_PATH', __DIR__ . '/../app/');
define('CONF_PATH', __DIR__ . '/../conf/');
// 加载框架引导文件
require (__DIR__ . '/../thinkphp/start.php');
?>
查看全部 -
配置文件执行顺序 conf/extra/database.php > conf/database.php > thinkphp/convention.php
在不同的环境中使用不同的配置文件叫场景配置
在conf/config.php文件中加多一项:
home场景时就加conf/home.php文件,office环境就加一个conf/offic.php文件,下面的值也改成offic
'app_status' => 'home',
home场景时就在conf里加一个home文件
场景配置文件 conf/home.php可以跟conf/config.php文件执行array_merge()操作
database会替换掉全部,所以需要全部复制。tp5的bug
查看全部 -
extra->扩展配置
config.php->应用配置
database.php->数据库的默认配置
extra里面的database为扩展配置可以替换掉数据库的默认配置convention下的database
database.php可以跟extra同级目录,而且可以替换掉应用配置config.php里面的database
优先级:扩展配置>应用配置>默认配置
查看全部
举报