为了账号安全,请及时绑定邮箱和手机立即绑定

快速入门ThinkPHP 5.0--基础篇

难度中级
时长 5小时20分
学习人数
综合评分9.63
150人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 1)模板变量使用函数 * 格式:变量名|函数名=参数2,参数3.... * 函数里面变量默认为第一个参数,如果变量不是第一个参数,则需要在对应位置用 ### 来占位。 * 多重函数的时候,执行顺序从左到右,把前一个函数的执行结果作为后面函数的第一个参数。 2)模板变量进行计算 +、-、*、/、%(取余)、++、-- * 格式:{$a+$b}等。 * ++和--在字符串前后会影响返回的结果,比如$a++是先返回结果再进行+1。 3)模板变量设置默认值 * 格式:{$email|default="huqin@qq.com"},如果控制器里面没有分配同名变量,则会输出这个默认值。 4)literal标签 * {literal}{/literal},在标签之内的内容是不会进行编译解析的,包括变量。 * 如果<script>标签内想不被解析的话,literal需要在script外面包裹住。 5)模板注释 * 格式:{/*内容*/} * 使用模板注释的话,不会输出到html中。这样可以让我们尽情注释不怕被用户看到。
    查看全部
  • 模板变量输出:花括号,和$符号。如 {$email} 定义和修改模板变量输出符号标记的位置:配置文件里面template内的tpl_begin和tpl_end配置项,默认是{}。这两个符号标记必须紧靠变量前后,不能有空格,不然不能解析。 修改标记的必要性:使用一些前端框架,模板中可能和前端存在一些冲突。 每次运行的时候产生的编译文件所在目录:runtime/temp目录。 编译文件的安全机制:一开始就判断是否在tp环境内,如果不是就直接中止程序。不能直接访问temp文件来获取文件内容。 模板变量赋值: 1. 继承controller类,return 使用fetch的第二个参数 2. 继承controller类,使用assign方法 3. 继承controller类,使用$this->view来获取view对象,在对象里面可以设置属性值。如$this->view->key2 = 'value2'; 4. use think\View, 继承controller类,使用静态方法来赋值,如 View::share('key3','value3'); 模板变量替换: 1. 继承controller类,return 使用fetch的第三个参数 2. 修改配置项 view_replace_str 来统一替换模板变量 3. 系统默认提供的一些字符串替换,如 * __URL__ //当前模块名和当前控制器名 如 /index/index * __STATIC__ // public下面的static目录,一个放静态文件的地方。 * __JS__ // /static/js目录 * __CSS__ // /static/css目录 * __ROOT__ // public目录 * 当然,以上默认值可以通过修改配置项、动态配置等方法去修改。可以解决直接引入静态文件地址的话如果要修改就很大工程的弊端。
    查看全部
  • 调用view渲染输出的3种方式 (1)view()(web应用中不推荐,如第三个参数会使某些配置失效) 通过在控制器内return view()可使用view对象。 1. 无参数:默认调用当前模块下view层的当前控制器的当前方法的html模板文件。 2. 传递一个参数: * 字符串:如'upload',无后缀,调用当前模块view层的当前控制器的upload模板。 * 带斜杠:如'public/upload',无后缀,调用当前模块view层的public控制器的upload模板。 (这里的控制器和操作不一定需要有实际对应的控制器和操作,只是目录名称和文件名) * 点杠开头:如'./123.html',要后缀,点杠代表入口文件所在的public目录。点杠后面可以带文件夹如 './test/123.html' * 杠开头:如'/index',无后缀,代表调用view层下的index.html模板文件。 3. 第二个参数:数组形式[]向页面分配多个变量,key为变量名,value是变量值,在模板文件输出的时候格式为{$key}, 4. 第三个参数:数组形式[]向页面传递替换(把页面内所有和key同名字符替换成value内容,区分大小写),key是要替换的字符串,value是替换后的值,模板文件输出的时候直接写key即可,不是变量不需要{}和$。 (2)fetch方法(推荐) 1.继承controller,return $this->fetch()渲染模板输出,和view()使用一致。 2.除了在fetch的第二个参数里面分配变量,也可使用$this->assign来赋值模板变量。 * 单个赋值:$this->assign('email','123456@qq.com'); * 数组赋值:$this->assign(['name' => 'huida',]); (3)display方法(不推荐,没实现MVC分层,乱) 继承controller, return $this->display() 渲染内容输出,不使用模板文件,传递字符串 * 第一个参数:字符串,如'testinfo{$email}',可以调用第二个参数数组里面的变量,也可以调用assign里面定义好的变量 * 第二个参数:数组,定义变量。
    查看全部
    6 采集 收起 来源:视图view

    2018-03-22

  • Config类和config助手函数 use think\Config |Config::get(); config();//获取 |Config::set('key','value');config('key','value');//设置 |Config::set('key','value','控制器');config('key','value','控制器');//作用域 |Config::has('key');config('?key');//检测有没有 (注意:未配置和值为NULL都返回false)
    查看全部
  • 在模板中使用系统变量:{$Think.xxx.xxx},如 server/session/cookie/env(自己实现不了)/get/post/request * $Think.server.HTTP_HOST * $Think.session.id * $Think.cookie.id 在模板中获取常量:{$Think.const.APP_PATH} 或者 {$Think.APP_PATH},两种方式均可 在模板中使用原生PHP标签:<?php ?>直接在里面和之前一样写php代码即可。可以使用模板变量,系统变量。不建议使用原生,混编维护起来复杂。大多数逻辑在控制器完成。
    查看全部
  • $_ENV为空的可能原因: 你的php.ini的variables_order值为"GPCS",也就是说系统在定义PHP预定义变量时的顺序是 GET,POST,COOKIES,SERVER,没有定义Environment(E),你可以修改php.ini文件的 variables_order值为你想要的顺序,如:"EGPCS"。这时,$_ENV的值就可以取得了。 EGPCS是Environment、Get、Post、Cookies、Server的缩写,这是PHP中外部变量来源的全部范围,可以用print_r($_ENV)来打印这个变量,查看他的数据。 注意,生产环境下,$_ENV都是空数组,主要是为了安全起见,不让它获取操作系统信息! $_ENV,作为PHP的9个超级变量($GLOBALS,$_SERVER,$_GET,$_POST,$_COOKIE,$_FILES,$_ENV,$_REQUEST,_SESSION)中的一个, 不用它真是有点浪费,所以说你会看到DiscuzX系统就“重用”了这个 超全局变量 配置环境系统变量,根目录下.env文件,以.ini的方式来写,转为大写,key值添加前缀PHP_。如果是分组的方式,会在key上添加组名 比如: database_hostname=localhost [database] hostame=localhost $res = Env::get('email','default'); dump($res);
    查看全部
  • 开发规范

    命名规范

    ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:

    目录和文件

    • 目录使用小写+下划线;

    • 类库、函数文件统一以.php为后缀;

    • 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;

    • 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;

    • 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

    函数和类、属性命名

    • 类的命名采用驼峰法(首字母大写),例如 UserUserType,默认不需要添加后缀,例如UserController应该直接命名为User

    • 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip

    • 方法的命名使用驼峰法(首字母小写),例如 getUserName

    • 属性的命名使用驼峰法(首字母小写),例如 tableNameinstance

    • 以双下划线“__”打头的函数或方法作为魔术方法,例如 __call 和 __autoload

    常量和配置

    • 常量以大写字母和下划线命名,例如 APP_PATH和 THINK_PATH

    • 配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert

    数据表和字段

    • 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表字段命名。

    应用类库命名空间规范

    应用类库的根命名空间统一为app(不建议更改,可以设置app_namespace配置参数更改,V5.0.8版本开始使用APP_NAMESPACE常量定义);
    例如:app\index\controller\Indexapp\index\model\User


    查看全部
  • 创建.env文件,设置参数后,读取不到数值问题? 修改thinkphp5核心文件,thinkphp/base.php 找到: 加载环境变量配置文件 if (is_array($val)) { foreach ($val as $k => $v) { $item = $name . '_' . strtoupper($k); putenv("$item=$v"); // 自己修改 author:DXing1202 $_ENV[$item] = $v; $_SERVER[$item] = $v; } } else { putenv("$name=$val"); // 自己修改 author:DXing1202 $_ENV[$name] = $val; $_SERVER[$name] = $val; } 亲测过没问题,发现有问题后请告诉我!
    查看全部
  • TP5开发规范: * 目录命名、配置参数、非类库文件名、表名、字段名:小写+下划线 * 类文件名和其内的类名:驼峰,首字母大写,两者名字要一样 * 函数、属性名:驼峰,首字母小写 * 常量:大写字母+下划线 * 类文件名均以.php结尾 * 类文件的命名空间和类文件所在的路径一致 * 以双下划线__开头的函数或方法为魔术方法 * 应用的类库文件的命名空间,最顶级的统一为app
    查看全部
  • 相等:eq标签(也可以写equal),用法是 {equal name="a" value="6"}相等{else/}不相等{/equal},name是控制器分配的变量名,value是要对比的值(也可以使用模板分配的变量),else是取反,一定要加斜杠 不相等:neq标签(也可以写成notequal),用法同上 大于:gt标签,用法同上 小于:lt标签,用法同上 大于等于:egt标签,用法同上 小于等于:elt标签,用法同上
    查看全部
    4 采集 收起 来源:比较标签

    2018-03-22

  • volist:一般循环select结果(二维数组) * 格式:{volist name="list" id="a"}<p>{$a.email}</p>{/volist} * 参数说明: * name:控制器中分配的数组变量名 * id:当前循环变量名,一维的key * offset:偏移量,表示从指定单元位置开始遍历。数组第一个单元为0。 * length:遍历次数 * mod:当前的单元位置对mod值取余。数组第一个单元位置为0。 * key:默认为i,可自定义,是代表循环第几次 * empty:定义当数组为空的情况下的说明文字,可以是字符串也可以是变量(变量建议在控制器内分配,在变量内可使用html标签),字符串的时候不能直接使用html标签。 * 可以直接使用$key输出索引,也就是数组下标名 foreach * 第一种最简单的格式: {foreach $list as $vo} <p>{$vo.email}</p>{/foreach} * 第二种格式:{foreach name="list" item="vo"} * 可以直接输出索引$key,也可以在foreach里面定义 key="s"来定义索引变量名 for * 格式:{for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" } {/for} * comparison默认是lt,也就是小于,start小于end * step默认是1 * name默认是i,可以修改 * 等同于 for($i=1;$i<10;$i++)
    查看全部
    4 采集 收起 来源:模板循环标签

    2018-03-22

  • config类和助手函数config();主要功能获取和设置配置的两种方法

    tp5的全局config()函数;

      1.实现的原理

        a.config()函数的所有功能来源于thinkphp框架目录下library目录下的think目录下的config.php类提供的方法

        b.通过thinkphp框架目录下的helper.php文件定义了一个全局的function config()方法,根据传参调用config.php类中不同的方法实现不同的功能,注意Config是首字母大写,因为tp5中所有类首字母都是大写

      2.config()函数的使用

        a.可以在项目任何地方调用

        b.因为不能确保在helper.php文件定义全局function config()方法之前是否已经定义了,所以在项目中建议使用config.php中的类方法操作整个框架的配置参数

        c.项目文件中通过 use think\config 引入类方法,因为是静态类,所以通过 Config::get() 可以获取所有配置的参数

        获取配置参数的值:Config::get('key');    等价于   config('key');

        设置配置参数的值:Config::set('key', 'value');   等价于   config('key', 'value');

        设置配置参数的作用域:Config::set('key', 'value', '作用域');   等价于   Config('key','value','作用域');

        检测配置参数是否存在:Config::has('key');  等价于   Config('?key');

        注意:参数不存在或者值为null,var_dump时都返回false;例:key=null; $a=Config::has('key'); var_dump($a);则返回false;

        

    设置配置时,注意所设置的配置的服务作用域;

    例:Config::set('key', 'value', 'index');设置配置的作用域是服务index模块的,那么获取的时候也要加上作用域

    Config::get('key','index');


    查看全部
  • 1、打印环境变量 dump($_ENV);(直接打印时是空白的。要对php.ini做修改)

    修改方法:

    第一步:$_ENV会为空,其原因通常是php的配置文件php.ini的配置项为:variables_order = "GPCS"。
    要想让$_ENV的值不为空,那么variables_order的值应该加上一个大写字母“E”,即:variables_order = "EGPCS"。


    2、在网站根目录下新建 .env文件,文件名也是不能更改的,在网站运行时人自动加载这个文件里的配置(直接右键新建再改名是不行的,要先新建文本文档然后再另存为设置文件名为 .env就可以了。.env文件是用来模拟环境变量配置)


    https://img1.sycdn.imooc.com//5b6d71eb0001ab5207700368.jpg

    还可以在.env文件中直接配置 databse的相关配置


    如果使用了不同系统环境配置那就一定要设置.env文件,这样就可以方便的把开发环境、测试环境 、运营环境相互切换

    查看全部
  • 动态配置 |<?php namespace app\index\controller; class Index { public function __construct() { config('before','beforeAction');//对当前控制器有效 } public function demo() { config('demoAction','demo'); //只对当前demo方法有效 dump(config()); } public function index() { config('indexAction','index');//只对当前index方法有效 dump(config()); } }
    查看全部
    3 采集 收起 来源:动态配置

    2018-03-22

  • fetch()和display()的区别 

    *fetch()适用于html视图文件中输出

    *display()不在前台html文件中展示时使用,只输出单纯的字符串



    查看全部
    3 采集 收起 来源:视图view

    2019-07-19

首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
1、有一定的php基础。 2、对git composer 有一定的了解。 3、本机安装好相应的开发环境 4、最好有一定的mvc 框架的使用经验
老师告诉你能学到什么?
1、框架的搭建 2、目录文件的介绍 3、环境的配置 (开发 测试 线上环境) 4、请求对象和数据请求参数获取 5、相应对象和返回相应类型的数据 6、模板的使用 比较 判断 循环

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!