thinkphp5的简单介绍与使⽤
此⽂章适⽤于刚学过php但还没接触过框架的⼩伙伴。
前⾔:
不知⼤家是否有这样的感觉,经过⼀段时间的php学习发现这门语⾔并不是很难,⽽且很容易上⼿。随随便便写个⽹页界⾯,再把数据库内容弄⼀弄,貌似就没什么难度了。当初的⼩编也是这样傻fufu的认为做个⽹站也就仅此⽽已-------just so so( ̄_, ̄ )。然⽽随着学习的不断深⼊,猛然发现事实并⾮如此,再回想当初的念头,只能默默地感叹⾃⼰too young too simple。就⼩编⽽⾔,⼀开始学的内容是PHP 的⼊门阶段知识,简⽽⾔之就是把代码往那⼀堆,然后调数据库显⽰实现功能就完事了。随着想写的的功能的增加,⼩编渐渐发现写个设计要写20多个页⾯,改个代码就要半天,but⼩编当时还并没有框架这⼀概念。直到学习了java EE的Struts2框架,⼩编才意识到⾃⼰是如此的菜----瞬间原地爆炸。为了强化php的学习,⼩编就花了些时间来研究php众多框架中的⼀个—>thinkPHP5。
后序
⼩编写这篇⽂章旨在做⼀个学习笔记,顺便给想要学习thinkphp5的⼩伙伴⼀个简单地浅显地介绍,置于数据库的操作⼩编就不介绍了,因为真的很多,不过开发⼿册上有较为详细的解释,写的不好的地⽅请⼤神纠正。此外⼩编个⼈觉得tp5的快速⼊门⼿册也是值得⼀看的(付费)。
1.什么是thinkphp5框架?(这是废话)
在介绍thinkphp5之前,我们先来谈⼀谈什么是框架。简⾔之,别⼈帮你建好了房⼦但尚未装修,你需要在别⼈设计好的户型⾥去装修,省去你搬砖的重复性操作。(对于框架的深⼊理解⼤家可以⾃⾏百度)。
ThinkPHP是⼀个快速、简单的基于MVC和⾯向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,⾃2006年诞⽣以来⼀直秉承简洁实⽤的设计原则,在保持出⾊的性能和⾄简代码的同时,尤其注重开发体验和易⽤性,并且拥有众多的原创功能和特性,为WEB应⽤和API开发提供了强有⼒的⽀持。(对于初学者⽽⾔了解概念⼩编认为并没什么⽤,还不如直接在做项⽬中感受⼀下)
(2)⽬录结构:(⼤致了解即可)
tp5的⽬录⽂件有很多,这⾥我们着重讲⼀下划线的部分,其他部分⼤家可以参考开发⼿册。⾸先说⼀下application,简单地说这个部分就是我们编写代码的地⽅。如上图所⽰,index模块为前端,⽽我们⼀般会⾃⼰创建admin模块及后端管理员。
index模块和admin模块下是我们熟悉的MVC,datebase.php为配置数据库的⽂件,application下的config.php是影响全部模块的配置⽂件,⽽index和admin的config.php只影响⾃⼰模块下的⽂件。public下的static是放静态资源的⽂件,index.php为⼊⼝⽂件,即只能通过这⼀⽂件访问。
(3)MVC
Model(模型)是应⽤程序中⽤于处理应⽤程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。
View(视图)是应⽤程序中处理数据显⽰的部分。
  通常视图是依据模型数据创建的。
Controller(控制器)是应⽤程序中处理⽤户交互的部分。
  通常控制器负责从视图读取数据,控制⽤户输⼊,并向模型发送数据。
Model(模型)
a: 数据库的配置:
打开database.php,⼀般要改动的就是划线部分。另外在thinkphp5.0完全开发⼿册中,我们在基础⽬录下可以看到开发规范,这是我们需要了解的。
b: 建⽴模型:(这部分在开发⼿册中也有更详细的解读)
<?php
namespace app\admin\model;
use think\Model;
class User extends Model
{
}
>
⼤多情况下,我们⽆需为模型定义任何的属性和⽅法即可完成基础的操作。模型会⾃动对应⼀个数据表。规范是:数据库前缀+当前的模型类名(不含命名空间)因为模型类命名是驼峰法,所以获取实际的数据表的时候会⾃动转换为⼩写+下划线命名的数据表名称,所以只要建⽴⼀个与数据表同名的model就可以。如果你的数据表不是像tp_user这样以前缀加下划线命名可以在model中指定数据表。
<?php
namespace app\admin\model;
use think\Model;
use think\Db;
class Swe extends Model
{
// 设置完整的数据表(包含前缀)
protected $table = 'swe';
}
下⾯⽤⼀个例⼦来解释:
⾸先在admin模块下建⽴以下⼏个⽂件,在controller下建⽴User.php ,Model下建⽴User.php ,在view下建⽴user⽂件夹,在user⽂件夹下建⽴user.html
并建⽴user表 字段有id,clickname,email,birthday
代码如下:
controller下的User.php
<?php
namespace app\admin\controller;
use think\Controller;
use app\admin\model\User as UserModel;
class User extends Controller
{
//    // 创建⽤户数据页⾯
//    public function create()
/
/    {
//        return $this->fetch('user');//加载模板,会⾃动到view下的user的user.html并显⽰
//    }
// 创建⽤户数据页⾯
public function create()
{
return view('user');//加载模板,会⾃动到view下的user的user.html
}
// 新增⽤户数据
public function add()
{
php初学者项目$user = new UserModel;
if ($user->allowField(true)->save(input('post.'))) {//input('post.'))为表单提交的数据
return '⽤户[ ' . $user->nickname . ':' . $user->id . ' ]新增成功';
} else {
return $user->getError();
}
}
// model的助⼿函数新增⽤户数据
public function add3()
{
// 使⽤model助⼿函数实例化User模型
$user = model('User');
// 模型对象赋值
$user->data([
'nickname'  =>  'SWE',
'email' =>  'thinkphp@qq'
]);
if ($user->save()) {
return '⽤户[ ' . $user->nickname . ':' . $user->id . ' ]新增成功';
} else {
return $user->getError();
}
}
Model下的User.php
<?php
namespace app\admin\model;
use think\Model;
class User extends Model
{
}
user.html
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>创建⽤户</title>
<style>
</style>
</head>
<body>
<h2>创建⽤户</h2>
<FORM method="post" class="form" action="{:url('admin/user/add')}">
昵称:<INPUT type="text" class="text" name="nickname"><br/>
邮箱:<INPUT type="text" class="text" name="email"><br/>
⽣⽇:<INPUT type="text" class="text" name="birthday"><br/>
<input type="hidden" name="__token__" value="{$ken}" />
<INPUT type="submit" class="btn" value=" 提交 ">
</FORM>
</body>
</html>
url:localhost/tp5/public/index.php/admin/user/create 执⾏user.php下的create⽅法return $this->fetch(‘user’); //加载模板,会⾃动到view下的user的user.html并显⽰
user.html提交数据到add⽅法
实例化Model类 ,$user->allowField(true)->save(input(‘post.’))提交数据到数据库

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。