热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

peter.,521ThinkPHP5.1入门

ThinkPHP简介:官网(www.thinkphp.cn)ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,

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.按提示安装完成之后,打开命令行工具,进行测试,推荐安装中国全量镜像,提升下载速度

ec663f0dafea7780737763abbb10f7d1.png

21099979c902cf15f403bb5917b347be.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服务器上下载的)

fc37f6b4c3dfe92eeb2ef0d4e84032c9.png安装目录选择PHP工具箱php版本所在目录

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

9e4afc58244d8f4a54ccf1a525a6829a.pngThinkPHP5.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_idThinkPHP5.1目录结构:

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

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

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

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

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

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

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

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

e958311bb4487bae28bbf9288172885e.png

thinkphp核心框架目录下的所有文件都很重要  不可修改!!!app应用目录介绍:

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

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

c09ea8accdf8d7c0265c9ce327ab6991.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\.envindex/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



推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
author-avatar
张明怡紫茂佳尧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有