tp5_tp5.1 - CSDN
精华内容
参与话题
  • Tp5 1. 路由:我们定义一个url 通过这个url就可以访问我们指定的控制器 2. 控制器是我们具体编写业务的入口 业务逻辑是写着model层的 控制器的任务是调用 model层 3. 技术只是一个工具 我们要拿工具实现我们的...
    Tp5 
    1. 路由:我们定义一个url 通过这个url就可以访问我们指定的控制器 
    2. 控制器是我们具体编写业务的入口 业务逻辑是写着model层的 控制器的任务是调用 model层 
    3. 技术只是一个工具 我们要拿工具实现我们的思路 
    4. 模型就是数据库中的一张表 把表看做对象 
    5. 数据库设计时,数据冗余可以合理利用 
    6. 网站是什么? wed体系结构 如果有不明白的回来 在学习 基础知识 基础很关键 根据课程反向学习基础 
    7. 面向对象三大特性 
    封装性 本性就是封装 
    继承性 多多理解 单继承 可以用接口 
    多态性 用的不是特别多 
    8. 理解技术 
    语言框架有很多,关键是使用 “他们”来解决我们的问题 先有想法,再找工具 ,而不是反过来 
    9. wed 网站只是其中很小的一部分 网站不仅仅是一个网站 还包括 app ios 小程序 微信下面的h5 公众号 api可以通用网站 小程序 ios 安卓 result api 
    10. 软件最难应对的是变化 设计模式 都是为了应对软件频繁变化 代码要写的易维护 不要太直白 
    11. 前端除了不能直接操作数据库 其他跟后台没什么区别了 服务器少处理业务逻辑 可以把更多的业务逻辑放到 前端 
    12. Tp5 为我们集成了很多类库 不需要大量引入包
    
    展开全文
  • tp5框架实现登录功能

    万次阅读 热门讨论 2020-09-03 21:55:17
    TP5框架实现登录功能 安装TP框架 使用最简单的安装方式,直接从官网下载解压,将压缩包里的文件复制到项目目录下。 管网地址:http://www.thinkphp.cn/down.html 安装完框架的目录如图所示 添加控制器 在...

    TP5框架实现登录功能

    安装TP框架

    使用最简单的安装方式,直接从官网下载解压,将压缩包里的文件复制到项目目录下。
    管网地址:http://www.thinkphp.cn/down.html
    安装完框架的目录如图所示
    目录图

    添加控制器

    在application\index\controller目录下新建Login.php,主要用来实现登录功能的业务逻辑。代码如下:

    <?php
    namespace app\Index\controller;
    use think\Controller;
    use app\index\model\Admin;
    class Login extends Controller
    {
    	public function index()
    	{
    		return $this->fetch('login');
    	}
    }      
    

    创建登录模型

    在这我用的是事先准备好的自适应的登录页面只需要将HTML文件、CSS文件和JS文件导入相应的位置并且配置常亮用来引入样式的文件路径。(需要登录页面模板的可以评论邮箱)

    1. 将login.html放入index模块下view\login文件下。如果没有此文件新建相应文件即可。
    2. 将准备好的fonts、style文件放入public\static\index目录下(如果没有此文件新建相应文件即可)。
    3. 导入好的目录为:
      在这里插入图片描述
      导入完文件之后的页面是:
      首次登录页面
      现在虽然我们可以显示页面但是页面的样式还没有成功引入进来。

    配置常亮引入样式文件

    1. 在public文件下的index.php中定义常量
    define('SITE_URL','http://127.0.0.1/tptest');
    
    1. 在application\index下新建配置文件config.php,并且配置常量。
    <?php
    return [
    	'view_replace_str' =>[
    		'__PUBLIC__'=>SITE_URL.'/public/static/index',
    	],
    ];
    
    1. 在login.html里面添加常量引入样式文件,代码:
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"><!--Head--><head>
        <meta charset="utf-8">
        <title>登录</title>
        <meta name="description" content="login page">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <!--Basic Styles-->
        <link href="__PUBLIC__/style/bootstrap.css" rel="stylesheet">
        <link href="__PUBLIC__/style/font-awesome.css" rel="stylesheet">
        <!--Beyond styles-->
        <link id="beyond-link" href="__PUBLIC__/style/beyond.css" rel="stylesheet">
        <link href="__PUBLIC__/style/demo.css" rel="stylesheet">
        <link href="__PUBLIC__/style/animate.css" rel="stylesheet">
    </head>
    <!--Head Ends-->
    <!--Body-->
    
    <body>
        <div class="login-container animated fadeInDown">
            <form action="" method="post">
                <div class="loginbox bg-white">
                    <div class="loginbox-title">SIGN IN</div>
                    <div class="loginbox-textbox">
                        <input value="admin" class="form-control" placeholder="username" name="username" type="text">
                    </div>
                    <div class="loginbox-textbox">
                        <input class="form-control" placeholder="password" name="password" type="password">
                    </div>
                    <div class="loginbox-submit">
                        <input class="btn btn-primary btn-block" value="Login" type="submit">
                    </div>
                </div>
                    <div class="logobox">
                        <p class="text-center">第一个登录页面</p>
                    </div>
            </form>
        </div>
        <!--Basic Scripts-->
        <script src="__PUBLIC__/style/jquery.js"></script>
        <script src="__PUBLIC__/style/bootstrap.js"></script>
        <script src="__PUBLIC__/style/jquery_002.js"></script>
        <!--Beyond Scripts-->
        <script src="__PUBLIC__/style/beyond.js"></script>
    
    
    
    
    </body><!--Body Ends--></html>
    
    1. 填完之后的页面是:
      登录页

    后台代码实现

    1. 数据处理M层,在index模块下model文件夹下新建Admin.php,代码如下:
    namespace app\index\model;
    use think\Model;
    use think\Db;
    class Admin extends Model
    {
    	public function login($data){
    		$user=Db::name('admin')->where('username','=',$data['username'])->find();
    		if($user){
    			if($user['password'] == md5($data['password'])){
    				session('username',$user['username']);
    				session('uid',$user['id']);
    				return 3; //信息正确
    			}else{
    				return 2;//密码错误
    			}
    		}else{
    			return 1;//用户不存在
    		}
    	}
    }
    
    1. C层修改代码实现业务逻辑,Login.php代码如下:
    <?php
    namespace app\Index\controller;
    use think\Controller;
    use app\index\model\Admin;
    class Login extends Controller
    {
    	public function index(){
    		if(request()->isPost()){
    			$admin=new Admin();
    			$data=input('post.');
    			$num=$admin->login($data);
    			if($num==3){
    				$this->success('信息正确,正在为您跳转','index/index');
    			}else{
    				$this->error('用户名或密码错误');
    			}
    		}
    	}
    	return $this->fetch('login');
    }
    

    创建数据库,配置数据库

    根据自己的需求建立数据表连接,并在配置文件里配置数据库。就可以实现登录功能了。

    自取:
    网盘链接:https://pan.baidu.com/s/1tZkzdf0zXJlvj7SsSANxsQ
    提取码:2gjv

    展开全文
  • tp5的理解。

    千次阅读 2018-06-21 18:22:55
    tp5 主流框架。 MVC开发模式。 就是 首先界面html文件,然后系统默认通过方法调用其控制器Controller中的方法。一般控制器的名称和html的文件夹名字相同。然后控制器里面写一些方法跳转,转到对应的logic层。 ...

    tp5 主流框架。 

    MVC开发模式。  就是 首先界面html文件,然后系统默认通过方法调用其控制器Controller中的方法。一般控制器的名称和html的文件夹名字相同。然后控制器里面写一些方法跳转,转到对应的logic层。 logic里面主要写的就是方法。 之后logic里面实例化modal类。 modal的名字对应的就是具体链接的数据库中的表名。


    整个的流程必然是这样的。看到很多不清楚的跳转,可以按照这个逻辑来找代码。

    也有一些其他的方式,只是简单的添加html文件也不行,需要加admin.phpl里面和route路由里面的路径。

    展开全文
  • TP5学习(一)

    千次阅读 2019-04-29 23:31:04
    1、目录结构 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─config.php 模块配置文件 ...│ │ ├─con...

    一、目录结构

    project  应用部署目录
    ├─application           应用目录(可设置)
    │  ├─common             公共模块目录(可更改)
    │  ├─index              模块目录(可更改)
    │  │  ├─config.php      模块配置文件
    │  │  ├─common.php      模块函数文件
    │  │  ├─controller      控制器目录
    │  │  ├─model           模型目录
    │  │  ├─view            视图目录
    │  │  └─ ...            更多类库目录
    │  ├─command.php        命令行工具配置文件
    │  ├─common.php         应用公共(函数)文件
    │  ├─config.php         应用(公共)配置文件
    │  ├─database.php       数据库配置文件
    │  ├─tags.php           应用行为扩展定义文件
    │  └─route.php          路由配置文件
    ├─extend                扩展类库目录(可定义)
    ├─public                WEB 部署目录(对外访问目录)
    │  ├─static             静态资源存放目录(css,js,image)
    │  ├─index.php          应用入口文件
    │  ├─router.php         快速测试文件
    │  └─.htaccess          用于 apache 的重写
    ├─runtime               应用的运行时目录(可写,可设置)
    ├─vendor                第三方类库目录(Composer)
    ├─thinkphp              框架系统目录
    │  ├─lang               语言包目录
    │  ├─library            框架核心类库目录
    │  │  ├─think           Think 类库包目录
    │  │  └─traits          系统 Traits 目录
    │  ├─tpl                系统模板目录
    │  ├─.htaccess          用于 apache 的重写
    │  ├─.travis.yml        CI 定义文件
    │  ├─base.php           基础定义文件
    │  ├─composer.json      composer 定义文件
    │  ├─console.php        控制台入口文件
    │  ├─convention.php     惯例配置文件
    │  ├─helper.php         助手函数文件(可选)
    │  ├─LICENSE.txt        授权说明文件
    │  ├─phpunit.xml        单元测试配置文件
    │  ├─README.md          README 文件
    │  └─start.php          框架引导文件
    ├─build.php             自动生成定义文件(参考)
    ├─composer.json         composer 定义文件
    ├─LICENSE.txt           授权说明文件
    ├─README.md             README 文件
    ├─think                 命令行入口文件
    

    二、生命周期

    1. 加载入口文件
    2. 执行框架引导文件
    3. 注册自动加载机制
    4. 注册错误和异常机制
    5. 应用初始化
    6. URL访问检测
    7. 路由检测
    8. 分发请求
    9. 响应输出
    10. 应用结束

    三、开发规范

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

    目录和文件

    • 目录使用小写+下划线
    • 类库、函数文件统一以.php为后缀
    • 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致
    • 类文件采用首字母大写的驼峰法命名,其他文件采用小写+下划线命名
    • 类名和类文件名保持一致,统一采用首字母大写的驼峰法命名

    函数和属性命名

    • 函数的命名使用小写字母+下划线的方式,例如get_client_ip
    • 方法的命名使用首字母小写的驼峰法,例如getUserName
    • 属性的命名使用首字母小写的驼峰法,例如tableName、instance
    • 以双下划线__打头的函数或方法作为魔术方法,例如__call和__autoload

    常量和配置

    • 常量以大写字母+下划线命名,例如APP_PATH和THINK_PATH
    • 配置参数以小写字母+下划线命名,例如url_route_on和url_convert

    数据表和字段

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

    四、入口文件

    ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定唯一)的入口。

    所有的应用都是从入口文件开始的,并且不同应用的入口文件是类似的。

    入口文件的作用:

    • 定义框架路径、项目路径(可选)
    • 定义系统相关常量(可选)
    • 载入框架入口文件(必须)

    TP5默认的应用入口文件位于public/index.php,内容如下:

    // 定义应用目录
    define('APP_PATH', __DIR__ . '/../application/');
    // 加载框架引导文件
    require __DIR__ . '/../thinkphp/start.php'
    

    入口文件的设计是为了让应用部署更安全,public目录为web根目录,其他文件都应放到非web访问目录下面。

    修改入口文件位置

    我们也可以通过修改入口 文件的位置及内容,将入口文件改到根目录下面:

    // 应用目录
    define('APP_PATH', __DIR__.'/apps/');
    // 加载框架引导文件
    require './thinkphp/start.php';
    

    这样最终的应用目录结构如下:

    www  WEB部署目录(或者子目录)
    ├─index.php       应用入口文件
    ├─apps            应用目录
    └─think           框架目录
    
    

    linux系统下部署

    部分 Linux 主机设置了 open_basedir(可将用户访问文件的活动范围限制在指定的区域,通常是入口文件根目录的路径) 选项,导致 ThinkPHP5 访问白屏或者报错:
    在这里插入图片描述

    这种情况下,需要把权限作用域由入口文件目录修改为框架根目录,打开php.ini(php.ini 文件通常是在 /usr/local/php/etc 目录中,当然了这取决于环境配置)搜索open_basedir,把

    open_basedir = "/home/wwwroot/tp5/public/:/tmp/:/var/tmp/:/proc/"
    

    修改为:

    open_basedir = "/home/wwwroot/tp5/:/tmp/:/var/tmp/:/proc/"
    

    如果php.ini文件的open_basedir设置选项是被注释的或者为none,那么需要通过修改apache或nginx来实现

    apache修改方法:

    Apache 需要修改 httpd.conf 或者同目录下的 vhost 目录下域名.conf 文件,如果是 LAMP 一键安装包配置那么多半就是直接修改域名.conf 文件

    打开域名.conf 文件搜索 open_basedir,把

    php_admin_value open_basedir "/home/wwwroot/www.thinkphp.cn/public/:/tmp/:/var/tmp/:/proc/"
    

    修改为

    php_admin_value open_basedir "/home/wwwroot/www.thinkphp.cn/:/tmp/:/var/tmp/:/proc/"
    

    然后重新启动 apache 即可生效

    nginx修改方法:

    Nginx 需要修改 nginx.conf 或者 conf/vhost 目录下域名.conf 文件,如果LNMP/LTMP一键安装包配置那么多半就是直接修改域名.conf 文件

    打开域名.conf 文件 搜索 open_basedir,把

    fastcgi_param  PHP_VALUE  "open_basedir=/home/wwwroot/www.thinkphp.cn/public/:/tmp/:/proc/";
    

    修改为

    fastcgi_param  PHP_VALUE  "open_basedir=/home/wwwroot/www.thinkphp.cn/:/tmp/:/proc/";
    

    然后重新启动 Nginx 即可生效

    fpm/fastcgi user.ini 修改方法:

    打开 项目根目录下找到 user.ini 文件,搜索 open_basedir,把

    open_basedir=/home/wwwroot/www.thinkphp.cn/public/:/tmp/:/proc/
    

    修改为

    open_basedir=/home/wwwroot/www.thinkphp.cn/:/tmp/:/proc/
    

    然后重新启动 web 服务器 即可生效

    .htaccess文件解读

    隐藏入口文件

    <IfModule mod_rewrite.c>
            Options + FollowSymlinks -Multiviews
            RewriteEngine On    #开启rewriteEngine模块
            RewriteCond %{REQUEST_FILENAME} !-d #!-d不是目录或目录不存在
            RewriteCond %{REQUEST_FILENAME} !-f #不是文件或文件不存在
            RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]  #转给index.php处理,并将其后的参数作为index.php的参数传递给它[L]这是最后一个匹配项,不再往下匹配
    </IfModule>
    
    展开全文
  • 最新tp5完整版

    2020-07-30 23:31:57
    thinkphp_5.0.20_with_ext完整版框架,包涵验证码等拓展资源!
  • TP5 模板

    2020-07-30 23:31:44
    NULL 博文链接:https://onestopweb.iteye.com/blog/2392124
  • tp5框架完整版

    2020-07-30 23:32:03
    tp5框架的完整版!解压即可使用,简便,快捷,实用。包涵基层
  • TP5框架青春少年

    千次阅读 2020-06-16 10:25:18
    上面的环境扩展信息必须在php.ini进行开启,同时还需要将php.exe加入到环境变量中(TP5里面也提供了类似laravel里面的artisan命令行功能,所以也要把php.exe加入到环境变量) 1.建议使用PHPstudy集成开...
  • 目录目标下载安装TP5框架下载运行demo前提准备配置web服务器了解框架结构 目标 下载 TP5 框架并在本地运行出 TP5 默认 demo 下载安装TP5框架 thinkphp 5.0 是为API开发而设计的的高性能框架,虽然发布时间不...
  • tp5字符串截取。

    万次阅读 2018-08-10 11:08:05
    前端截取从后台传过来的数据(截取10个字符) {$d['title']|mb_substr=0,10,'utf-8'} 没有截取前:    截取后:   
  • tp5获取插入的数据的自增id

    万次阅读 2017-09-25 10:10:27
    tp5: insertGetId方法新增数据并返回主键值使用getLastInsID方法: Db::name('user')->insert($data);  $userId = Db::name('user')->getLastInsID(); // 使用insertGetId方法 Db::name('user')->...
  • tp5的打印最后一条sql

    万次阅读 2017-10-31 14:11:57
    最后一条sql Db::table('contract')->getLastSql()
  • tp5 对数据库某个字段进行数值加减

    万次阅读 2018-10-11 09:05:44
    tp5 对数据库某个字段进行数值加减具体用法手册已经列出 具体用法手册已经列出 TP5 用setInc/setDec 带上想要的值即可进行更新操作。
  • 想直接获取单个字段值,弄了半天,tp5的getField()方法变了,具体如下: TP5中的getField():拆分为value和column了 例子: ••• where("id = 1")->value("title");  输出:(string) title  ••• ...
  • TP5 在模板读出Session值

    万次阅读 2017-10-17 18:00:17
    后台登录中心{$Request.session.username}
  • TP90,TP99,TP999含义

    万次阅读 2018-12-21 10:10:10
    TP90就是满足百分之九十的网络请求所需要的最低耗时。 TP99就是满足百分之九十九的网络请求所需要的最低耗时。 同理TP999就是满足千分之九百九十九的网络请求所需要的最低耗时。...
  • TP5使用mongodb扩展

    万次阅读 2017-07-26 18:35:13
    ThinkPHP 5.0 MongoDb驱动 首先安装官方的mongodb扩展: http://pecl.php.net/package/mongodb 找到对应的php版本的扩展 然后,配置应用的数据库配置文件database.php的type参数为: ...即可正常使用MongoDb,
  • Tp5 session赋值与取值 用法

    万次阅读 2018-06-28 22:52:21
    助手函数赋值 session('name', 'thinkphp'); 模版中取值 {$Request.session.username}
  • 中图法分类号(计算机专业) T 工业技术 TP 自动化技术、计算机技术 TP3 计算技术、计算机技术 TP3-0 计算机理论与方法 TP3-05 计算机与其他学科的关系 TP30 一般性问题 TP301 理论、方法 TP301.1 ...
  • 一张图理解什么是TP、FN、FP、TN

    万次阅读 多人点赞 2019-05-23 18:35:49
      预测     P N 实际 P TP FN N FP TN
1 2 3 4 5 ... 20
收藏数 191,493
精华内容 76,597
关键字:

tp5