ThinkPHP5 ---基础篇(安装)

ThinkPHP5 ---基础篇(安装)

一、ThinkPHP简介

i. ThinkPHP是一个免费开源 快速简单 面向对象 轻量级的PHP开发框架

ii. 创立于2006年初 遵循Apache2开源协议发布

iii. 秉承简洁实用的设计原则 注重易用性

iv. 支持composer(包管理工具)方式安装 类似于node.js里面的npm

v. 5版本与之前版本不兼容

二、MVC简介

i. Model(模型) View(视图) Controller(控制器)的缩写 是一种业务逻辑 数据 显示页面分离的设计典范(设计模式:单例|工厂|观察者...) 业务逻辑封装之后 在改进或者个性化定制界面用户交互的同时 对编写好的业务逻辑不影响

ii. 优势

  1. 耦合性低 任何一层的改变 对其他层影响不大

  2. 重用性高

  3. 可维护性高

image.png
image.png

iii. MVC的变形

  1. 无Model模式

a) 企业官网 静态数据展示 基本上不涉及数据库操作 展示静态页面 Controller主要是路由跳转 View主要展示页面

  1. 无View的API接口开发

a) 给app写接口的时候 不需要展示界面 所有数据都通过json|xml返回

三、ThinkPHP5的安装

i. Git方式安装

  1. https://github.com/top-think
  1. 需要clone两个包
image.png

a) 进入think 选择open in Desktop(选择clone或者open in Desktop 本地都需要安装git环境 最简单的下载git桌面版 详情参考版本工具GIT篇) 如果是用命令行 可以加上git clone --depth=1 ... 只克隆最新一次commit

image.png

b) 选择本地项目目录

image.png
image.png

c) 然后clone framework 核心包

image.png

d) 在上一步的目录下新建thinkphp目录 clone

image.png
image.png

浏览器访问 进入到public目录 出现下面界面说明安装成功

image.png

同理 选择DownloadZip 然后解压缩 也可以 分别下载两个包 然后将framework包重命名thinkphp 移动到think目录下即可

ii. Composer方式安装

  1. 本地先安装composer环境

a) 进入官网 <u>https://www.phpcomposer.com/</u> ->下载

image.png
image.png

b) 双击 安装 (过程中需要绑定php.exe)


image.png

c) windows+R cmd 打开命令行 composer验证是否安装成功


image.png

d) 通过composer安装ThinkPHP

i. 命令行进入项目目录

image.png

ii. Composer create-project --prefer-dist topthink/think think_composer进入到项目目录 命令行安装

composer create-project --prefer-dist topthink/think=5.0.20 think_composer 可以指定下载版本


image.png
image.png
image.png
image.png

安装过程中 需要联网...... 网速不稳定的话 可能会导致安装不成功

也可以在composer官网 安装包列表 选择下载tp版本 上面的命令也可以指定版本

iii. localhost测试

image.png
image.png

iii. Download官网安装

  1. 进入http://www.thinkphp.cn/ 官网
    image.png
  1. 需要先登录 然后选择版本下载

四、设置网站根目录为 public目录 (选)

i. Apache配置文件 httpd-vhosts.conf

ii. 此文件下可以配置虚拟主机 如a.com 便于本地测试

  1. 需要在httpd.conf文件中打开扩展

  2. 需要在System32/drivers/etc/hosts文件中配置 127.0.0.1 a.com 配置

  3. 重启服务器生效

image.png

五、ThinkPHP5的目录结构

i. Application 应用目录

image.png

ii. Extend 扩展类库目录

  1. 下载第三方库的时候使用的 不是通过composer下载的

a) 如 有一个好用的第三方库 但是没有composer包 这种情况下可以将类库下载到extend目录 之后修改命名空间 就直接可以在应用中使用了

iii. Public根目录


image.png

iv. Runtime 网站运行中的缓存文件 日志缓存 编译文件等等

v. Thinkphp框架系统目录

image.png

vi. Vendor 通过composer安装 过程中生成的目录

  1. 里面有thinkphp主程序文件 各种类库文件

六、 目录和文件开发规范

i. 目录使用小写+下划线的方式命名(不允许大写)

ii. 类库函数文件名 均以.php结尾 (5版本以前是.class.php 5版本之后.php)

iii. 类的文件名均以命名空间定义 且命名空间和类库文件所在路径一致

  1. 如 application/index/controller/Index.php

namespace app\index\controller (app定义顶级应用模块目录)

iv. 类文件采用驼峰 首字母大写 其余文件为小写+下划线命名

  1. 如 控制器 Index.php

  2. 路由文件 route.php 数据库配置文件 database.php

v. 类名和类文件名保持一致 驼峰命名 首字母大写 不需要后缀

  1. 如 Index.php (5版本前是 IndexController.php 5版本之后是 Index.php)

vi. 函数驼峰命名 首字母小写

  1. 如 public function getUserName(){}

vii. 属性名驼峰 首字母小写

  1. 如 public $tableName = ‘’ ;

viii. 以双下划线(__)开头的函数或者方法为魔术方法

  1. 如 public function __construct(){}

  2. 自定义函数的时候 函数名注意避免

ix. 常量和配置

  1. 常量以大写字母和下划线命名

a) 如define(‘APP_PATH’, DIR . ’/../application/’) ;尽量不要下划线开头

  1. 配置参数以小写字母和下划线命名

a) 如 config.php

image.png

x. 其他规范

  1. 表和字段采用小写+下划线的命名方式 不能下划线开头

a) 如 tb_user 表

  1. 应用类库的命名空间统一为app(可以配置)

a) 一般情况下不要更改 app为默认顶级应用

七、ThinkPHP5模块设计

i. 概要:

5.0版本对模块的功能做了灵活设计 默认采用多模块的架构 并且支持单一模块设计 所有模块的命名空间均以app作为根命名空间(可配置)

根据项目需求

image.png

FAQ:

一、启动本地环境 查看端口占用

1.找到被占端口pid

netstat -aon|findstr "3306"

image.png

2.根据pid 查看进程

tasklist|findstr "1880"

image.png

3.结束进程

taskkill /f /t /im mysqld.exe

image.png

二、自定义common模块报错:

image.png

报错信息:

image.png

分析:

这是thinkphp的规定 默认common是公用模块 存放 通用方法 不允许在URL上直接访问

解决:

image.png
image.png

将重复性的代码 权限 数据处理放在common模块 简化程序

三、修改application目录

i. 将application目录重命名 app

ii. 修改public/index.php define(‘APP_PATH’, DIR . ‘/../app/’);

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 一、获取ThinkPHP 获取ThinkPHP的方式很多,官方网站是最好的下载和文档获取来源。建议使用compos...
    小小奶狗阅读 1,321评论 0 2
  • Awesome PHP 一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库、配置工具、W...
    guanguans阅读 5,685评论 0 47
  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 3,940评论 1 66
  • 前言 终于有那么点时间能将Laravel 5的一些好的实践总结出来,希望为普及Laravel和新的PHP编程思想出...
    该叶无法找到阅读 6,133评论 0 47
  • “抓大放小”就是:例外的决策,备案;例外的决策,报批。 首先,要设计好流程、规则与预算,这是抓大放小的基础,如果没...
    w小郭阅读 334评论 0 0