Blogger Information
Blog 71
fans 1
comment 1
visits 86891
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
521-ThinkPHP5.1入门
小威的博客
Original
2302 people have browsed it
  • ThinkPHP简介:官网(www.thinkphp.cn)

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产品发布/销售。

  • ThinkPHP框架开发项目的优点:

1.效率高: 框架中已经将常用的类库与数据库操作进行封装,远比从零开发要快得多;

2.易维护: 框架自身遵循了一套成熟的设计模式和代码规范,所以使用框架开发的项目,文件结构与功能模块设计会更加的合理,代码也更加的规范,有利于团队开发,以及后期的维护与项目升级.

  • ThinkPHP5.1下载方法:

从ThinkPHP5.1开始,官网已不提供下载了,必须使用Composer或Git来下载.

Composer是PHP用来管理依赖(dependency)关系的工具,类似于ThinkPHP的插件下载中心

  • 使用Composer下载ThinkPHP5.1源码的步骤:

1.打开Composer中文网(https://www.phpcomposer.com/)  点击   Composer-Setup.exe  下载

2.如果是windows系统可以下载安装包.exe文件,Mac/Linux必须使用命令行进行安装

3.按提示安装完成之后,打开命令行工具,进行测试,推荐安装中国全量镜像,提升下载速度

QQ截图20180603140036.png

QQ截图20180603140143.png

4.打开包依赖搜索器,也叫安装包列表(https://packagist.org/),输入thinkphp,点击进入

5.复制下载命令: composer create-project topthink/think   备用

6.打开命令窗口,进入到你的Web目录,例如: WWW

7.输入: composer create-project topthink/think  tp51

8.tp51是自定义的项目名称,其实就是一个目录,不需要事先创建,下载时会自动创建!

9.等待下载完成(其实在中国远程的GitHub服务器上下载的)

QQ截图20180521202636.png

  • 安装目录选择PHP工具箱php版本所在目录

  • D:\myphp_www\PHPTutorial\php\php-7.2.1-nts\php.exe

QQ截图20180603132456.png

  • ThinkPHP5.1开发规范:

一、目录与文件

1. 目录必须使用小写字母,多个单词之间必须用下划线: user_hub

2. 类文件名首字母必须大写,其它文件名必须使用小写字母

3. 类名与类文件名必须保持一致,例如User类,所在类文件必须是User.php

二、函数,类与属性和方法

1. 函数必须使用小写字母+下划线方式命名: get_user_info()

2. 类名必须采用驼峰命名法,首字母大写

3. 属性和方法也必须采用驼峰命名法,首字母必须小写:$userName, getInfo()

三、常量与配置

1. 常量必须全部使用大写字母+下划线来命名: APP_NAME

2. 配置参数必须使用小写字母: url_route_on

3. 环境变量(.env)与常量声明规则相同,全部采用大写字母+下划线

四、数据表与字段名: 必须使用小写字母+下划线: think_user, user_id

  • ThinkPHP5.1目录结构:

1. application: 应用目录,用户大部分代码都写在这个里面 一般都改名为:app

2. config: 框架配置目录,每个文件对应着一级配置

3. public: 对外可访问的Web目录

4. route: 路由目录,存放用户自定义的路由定义

5. runtime: 运行目录,存放临时生成的缓存或编译脚本文件

6. thinkphp: 框架核心目录(尽可能不要修改,以方便框架升级)

7. extend: 扩展类库目录,用来存放不便归类模块和扩展框架功能

8. vendor: 由Composer加载并管理的第三类库目录

QQ截图20180522095251.png

thinkphp核心框架目录下的所有文件都很重要  不可修改!!!

  • app应用目录介绍:

1. common: 公共模块目录,存放被其它模块所共享的代码,外部禁止URL访问

2. module: 模块目录,可以有多个,例如index,admin

QQ截图20180522095222.png

  • 最重要的是controller,model,view目录,即MVC架构

  • ThinkPHP5.1框架配置:

1.惯例配置:

(1)位置:think/convertion.php; 

(2)生效范围:整个框架都有效,也是框架的默认配置

(3)强烈建议不要修改,否则会影响到升级;

(4)因为一旦你对框架核心进行了升级,你的惯例配置将会被重置.

2.应用配置:

(1)位置: application/config/...

(2)生效范围: 整个应用项目application

(3)配置采用二级配置,全部以php数组格式返回

(4)一级配置名称就是配置文件名(一定要注意,这与其它版本都不一样)

例如: app.php(应用配置),database.php(数据库配置),tmplate.php(模板配置)...

(5)默认的一级配置名称是: app

3.模块配置[可选]:

(1)位置: application/module/config/...

(2)生效范围: 仅对当前模块有效

(3)同名模块配置项会覆盖应用配置项

(4)并非所有的应用配置都可以在模块中重新声明

(5)最常用的是app.php,database.php

4.动态配置[可选]

(1)位置: 写在当前请求的控制器中

(2)生效范围: 仅限于当前URL请求

(3)不会保存到任何配置文件中

对于项目开发来说,app.php中的配置项应该是第一步要进行设置的。

下面对常用的做一个解释:(详见手册或config/app.php中的注释)

注意:有二个配置项仅允许在环境变量中修改

app_namespace : 应用空间名称

config_ext: 配置文件后缀


  • 环境变量文件的创建方法:

1.必须在根目录下面创建

2.文件名必须是: .env

3.必须采用ini格式: APP_DEBUG = true   即名值之间用等号,且结尾直接回车

注意:

1. 并非总是有效,推荐使用原生的$_ENV

2. 打开php.ini打开并设置:variables_order = "EGPCS"

3. 'E'表示将环境变量添加到当前系统变量中

4. 写到.env中的环境变量,必须要用Env::get()获取, 因系统不同,$_ENV中有可能获取不到

5. 环境变量不区分大写,但推荐变量名全部大写(与常量规则一致)

例如: 在tp51\.env

index/controller/Index.php
use think\facade\Env;
public function index()
{
$_ENV['MY_EMAIL'] = 'peter@php.cn';  //原生方式写入
    dump($_ENV);  //直接读取系统环境变量
    dump(getenv());  //函数读取系统环境变量
    return Env::get('MY_EMAIL');  //获取.env中的变量
}
  • 查看与设置环境变量

1. 先导入环境门脸类: use think\facade\Env;  

2. 查看当前全部环境变量: Env::get();  //不要添加参数

3. .env中的app_debug和app_trace优先于app.php中的配置

4. 可直接查询某个变量: Env::get('app_trace');

5. 返回数据,数组用dump(),字符串可直接用return

6. 可以.env文件中直接进行设置或添加新变量

  • 获取配置项

有二种方式来获取配置: 系统Config类和助手函数config()

namespace app\index\controller;
use think\facade\Config; //必须先导入配置类: 
class Index
{
    public function index()
    {   
        //1.使用Config类
        dump(Config::get());  //获取全部配置项
        dump(Config::pull('app'));  //获取app.php,一级配置项
        dump(Config::get('app.')); //获取app.php的另一方式,app后加一个点
        dump(Config::has('app.default_lang')); //查询是否存在某个配置项
        dump(Config::get('app.default_lang')); //获取某个指定配置项
        //2.使用助手函数config()
        dump(config());  //获取全部配置项
        dump(config('app.')); //获取app.php中的配置项,一级配置
        dump(config('?default_lang')); //查询是否存在某个配置项,默认为app.php
        dump(config('default_lang'));  //获取某个指定配置项
    }
}

动态设置

1.动态设置仅在当前请求中生效,写在控制器中

2.动态设置的参数,必须之前没有设置过

public function index()
{   
    Config::set('app.admin_mail','peter@php.cn'); //设置自定义配置项
    dump(Config::pull('app'));  //查看app配置中是否有自定义的配置项
    //但是要注意,app.php文件中,并没有admin_mail配置项,因为动态配置不写入文件
    return Config::get('app.admin_mail'); //app可以省略
}

常用系统路径变量如下:

1. 应用根目录: root_path

2. 应用目录: app_path

3. 框架目录: think_path

4. 配置目录: config_path

5. 扩展目录: extend_path

6. composer目录: vendor_path

7. 运行缓存目录: runtime_path

8. 路由目录: route_path

9. 当前模块目录: module_path

Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post