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

快速入门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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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