• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ThinkPHP6.0学习笔记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Think PHP 6 .0 学习笔记

特性

  1. 全面支持组件模式开始
  2. 全面支持采用PHP7强类型特征
  3. 全面支持几乎所有的 PSR 开发规范
  4. 实现了多应用支持
  5. 全面引入事件系统代替行为
  6. 全新的应用服务架构
  7. 视图和模板引擎分离,项目配置更灵活
  8. IDE助手,使编辑器智能提示更准确
  9. 对原来版本的一些函数和类方法进行了统一和精简

环境要求

PHP 7.1 +

下载方式

通过 Composer 和 Git下载,Composer可以理解为一个应用商城

  • Composer 更新

  • composer selfupdate
    
  • Composer 下载 ThinkPHP 6.0 框架源码

  • composer create-project topthink/think tp6 6.0.*-dev
    

启动服务

切换到项目所在位置,输入以下命令,用来检测项目是否下载成功

php think run

系统的配置

系统推荐通过环境变量 .env 的方式进行系统的配置

举个栗子:(注:; 表示注释,database_type 中的database表示对应config文件夹中的database.php 文件)

.env 文件

; 开启跟踪器
app_trace = true

; 数据库的配置项
database_type = 'mysql'

database.php 文件

use think\facade\Env;

'type' => Env::get('database_type');

数据库相关操作

// 使用 query() 来执行原生的SQL语句
Db::query("原生SQL语句");
// 使用查询构造器
// table() 表, where() 条件【支持字符串‘id = 1’,表达式字段,操作符,值】,find() 只得
// 到一条数据同时支持一主键作为条件,field()返回的字段,select()返回满足条件的所有记录,
// fetchSql(true)返回SQL语句,order("age desc")排序逆序同样支持字符串和表达式,
// limit() 限制返回的记录数,如果只传递一个参数这表示返回这个参数对应的那么多条记录,如果
// 是两个数据,则表示(页码,每页的长度)
Db::table('user')->where('id', 1)->find();

模型

  • 本质还是对数据库的操作,不过它自己对该操作进行了一次面向对象的封装,数据表> 模型类,记录>模型对象,字段==>对象属性 ORM

使用方法:

// 实例化在操作
$user = new User();
dump($user->db()->find(1));
    
// 依赖注入(推荐)
public function index(User $user)
{
    dump($user->db()->find(2));
}
  • 新增数据操作 create(),他是一个静态方法,返回的数据是一个新增记录的对象,同样可以通过数组或对象的方式访问
  • TP6 中删除了get/all,直接用db()来调用Query类中的方法
  • 数据更新 update(被更新的值,条件),也是一个静态方法
  • 数据删除 destroy(条件),也是一个静态方法
public function index(User $user)
    {
        dump(Db::query("select * from `user` where id = :id", array('id' => 3)));
        dump(Db::table('user')->where('id', 1)->field('name')->find());
    
    	// 创建模型对象
        $res = $user->db()->find(2);
        dump($res);
        dump($user->db()->select());

        // 插入数据
        // User::create(array('id' => 4, 'name' => 'yuchan'));

        // 更新
        // User::update(array('name' => 2), array('id' => 2));

        // 删除
        // User::destroy(array('id' => 2));
    }

视图

  • 模板引擎是基于 smarty
  • 模板的包含使用的是 include或者require标签

如果提示 Driver [Think] not supported

# 通过 composer 在项目根目录所在位置安装模板引擎
composer require topthink/think-view
  • 通过 $view->fetch() 渲染到指定HTML文件中
class Index extends BaseController
{
    public function muban(View $view)
    {
        return $view->fetch();
    }
}
// 渲染到 view/index/muban.html
// 如果将 fetch() 添加参数,比如 fetch('muban2') 将渲染到 view/index/muban2.html
  • 通过 $view->assign('模板文件中使用的变量名', '模板的值') 给模板赋值,在HTML中通过大括号加$来取值 ,举个栗子: {$name};$view->assign([])也可以通过数组的形式传递一组数据;同时也可以传递数组,举个栗子:{$user.name}或{$user['name']};还可以传递对象,举个栗子{$user->name}
  • 预定义变量,可以通过 {$_GET['name']}或{$Think.get.name}来获取GET变量中的值
  • 循环遍历的原生写法
<?php foreach($users as $user):?>
<!--<?php echo $user['name']?>-->
<!-- 或 -->
<?=$user?>
<?php endforeach;?>
  • 通过 foreach 模板标签遍历
{foreach $users as $user}
{$user}
{/foreach}
  • 通过 volist 模板标签遍历
{volist name="users" }
{$user}
{/volist}
  • 通过 if 标签进行条件判断
{if ($user.name == 'GetcharZp')}
{$user.name}
{/if}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php构造函数__construct()发布时间:2022-07-10
下一篇:
Java以及PHP安装环境发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap