0基础自学linux运维-2.9-win7 phpStudy+phpStorm+ThinkPHP5安装

前言

ThinkPHP(简称TP)是国人开发的比较火的php

web框架,除了TP还有YII、Laravel等


ThinkPHP支持传统的MVC(Model-View-Controller)模式以及流行的MVVM(Model-View-ViewModel)模式的应用开发,但无论采用何种模式,URL的规范仍然是统一的。


ThinkPHP目前最新版本为5.1,最新代码都放在github中。


因为TP是国人开发的,所以官方教程是中文的,学起来也方便,本文档技术参照主要是官方教程的《ThinkPHP5.1完全开发手册》(写得不错,也适合初学者学习),链接地址:

https://www.kancloud.cn/special/thinkphp5_quickstart,点“ThinkPHP5.1完全开发手册”即可


一、安装环境

1.1 安装系统说明

操作系统:win7 64位旗舰版

所需要软件

1.4 SQLyog安装

SQLyog 64位下载地址

https://www.cr173.com/soft/126913.html

如果怕自带的注册机有毒,可以删除,用下面的注册码(实验使用,建议购买正版)。

姓名(Name):cr173

序列号(Code):8d8120df-a5c3-4989-8f47-5afc79c56e7c

或者(OR)

姓名(Name):cr173

序列号(Code):59adfdfe-bcb0-4762-8267-d7fccf16beda

或者(OR)

姓名(Name):cr173

序列号(Code):ec38d297-0543-4679-b098-4baadf91f983

备    注:最好关闭软件的自动更新功能^_^


连接phpStudy的mysql

phpStudy说明中mysql连接默认的用词名和密码都是root

测试通过就可以连接上phpStudy的mysql了

1.5 PhpStorm

下载地址:https://www.jetbrains.com/phpstorm/,点“DOWNLOAD NOW”就行了

目前最新版本为2018.2.5

上面的图标是30天试用期,如果是实验可以用下面链接激活,建议购买正版。

http://idea.lanyus.com/

把上面复制的粘贴到激活主OK,安装好了的话,选择菜单

Help Register…选中“Activation code”,把上面代码粘贴进来

注意:使用前请将“0.0.0.0

account.jetbrains.com”添加到hosts文件中,否则有可能激活失败!!


1.6 ThinkPHP5安装(网站文件下载即用)

ThinkPHP5是一个网站文件,框架已经在里面,下载配置nginx/apache+php就可以使用。

TP5要求PHP版本为5.6或以上,建议用目前官网最新版本PHP7.2,性能上特性上都不错。

1.6.1 绑定host访问github

根据《ThinkPHP5.1完全开发手册》安装说明:

https://www.kancloud.cn/manual/thinkphp5_1/353948

推荐去github下载,版本会保持最新,因为国内的原因打很打开github,所以要做一下地址绑定,操作如下:

去“老D博客”中下载hosts替换或者添加本地的hosts就行了,下载地址

https://laod.cn/hosts/

如果你连怎么下载替换都不懂的话,我有点无语

ps:host文件路径为“C:\Windows\System32\drivers\etc\hosts”

绑定完后打开浏览器输入“https://github.com/”看是否能打开。

1.6.2 git clone下载TP5

电脑右下角找到phpStudy右击à“网站目录”

或者主界面

得知我网站目录为:G:\phpStudy2018\PHPTutorial\WWW

根据TP5安装文档 https://www.kancloud.cn/manual/thinkphp5_1/353948

得知会在网站根目录自动生成TP5目录

打开Git Bash进行如下操作:

cd g:

cd phpStudy2018/PHPTutorial/WWW/

git clonehttps://github.com/top-think/think tp5

cd tp5

git clone https://github.com/top-think/framework thinkphp

ps:因为是国外下载的,所以有些慢,看情况,需要耐心等待。

1.6.3 访问测试TP5

配置好上面的,保证phpStudy运行的情况下就可以访问试一下,根据安装文档说明

打开浏览器输入http://localhost/tp5/public/,结果如下:

为了方便,我“127.0.0.1”代替“localhost”结果是一样的。


PS:为什么是public目录呢?

从《ThinkPHP5.1完全开发手册》的目录结构或附录一中的“a1.1

TP5目录结构”得知TP5的WEB目录为public,为了安全其它不对外,所以访问public目录,为了方便访问也可以直接把网站指向public目录

1.7 修改nginx配置

根据《ThinkPHP5.1完全开发手册》看安全建议,链接地址为

https://www.kancloud.cn/manual/thinkphp5_1/354111

其中有一条

设置public目录为唯一对外访问目录,不要把资源文件放入应用目录;

所以修改一个phpStudy的配置把它指向根目录中的public目录中,操作如下:

二、ThinkPHP5 简单例子

编写TP5当然需要一些基础知识,官方教程的《ThinkPHP5.1完全开发手册》写得不错,也适合初学者学习,链接地址:

https://www.kancloud.cn/special/thinkphp5_quickstart,点“ThinkPHP5.1完全开发手册”即可

如果有新书或版本也会在ThinkPHP官方发布的,可以留言一下


2.1 编写一个简单的hello

要求:

建立一个测试文件里里面写一个hello访求输出“hello,”+“你的名字”

如“你好,hua”。


分析:

  可以在index模块中建立一个名为“T1”的控制器,再在里写一个hello方法

名字有url传参过来。


打开PhpStorm,在界面中点“open”打开TP5所在目录,我这里是:

G:\phpStudy2018\PHPTutorial\WWW\tp5

找到applicationàindexàcontroller目录,右击建立一个名为Test的php Class文件

Test.php代码如下:

namespace app\index\controller;

// TP5中的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装

//

的\think\Controller类或者其他的控制器类,或者根据业务需求封装自己的基础控制器类。class T1

{


public function hello($name){


// TP5中控制器一般用retrun返回不用echo输出

        return "你好,".$name;

    }

}


2.2 通过学号sid查询该生的信息

数据库的CURD操作,为了方便我只做查询操作,如果要知道更多方法请查看“数据库”和“模型”章节

https://www.kancloud.cn/manual/thinkphp5_1/353997

https://www.kancloud.cn/manual/thinkphp5_1/354040


2.2.1 需求及分析

需求:学生成绩表如下图所示:

其中id为主键,sid为学号,要求通过sid号,查看该生的学习成绩

只显示sid,name(名字)、yuWen(语文)、shuXue(数学)


分析:

通过sid学号查询信息,可以用get方法,为了方便我直接用url提交了。

可以用MVC模式,根据ThinkPHP工作原理图:(附录一中“a1.3 ThinkPHP工作原理图”)

可以做如下设计:

model(模型,即M):

         可以建立一个名为Stu的类,CURD写在里面,一般不建议写在控制器不好分层

建立一个getBysid($sid)方法来传参查询,返回数据控制器。

Controller(控制器,即C

         可以建立一个名为“chengji”的控制器,写一个queryBySid($sid)方法,其中$sid为get传入的参数,再调用Stu模型类,把模块类返回的数据传给对应的视图展示就OK了。

控制器宣染视图可以用fetch() 或assign()方法

view(视图,即V):

         主要就是找到控制器对应的视图,并填充模板数据,把最后结果展示给用户。

2.2.2 建立数据表

打开phpStudy用SQLyog连接数据库,下面是数据库创建SQL命令:

会生成生成stu表,数据如下:      

2.2.3 建立Stu模型

模型自动对应的数据表名称都是遵循小写+下划线规范,如果你的表名有大写的情况,必须通过设置模型的table属性。

1)配置数据库database.php

配置链接可以参看:https://www.kancloud.cn/manual/thinkphp5_1/353998

如果不配置数据库的话就使用的是tp5全局database.php,为了更针对模块,我在index模块下建立一个config目录,把全局config下的database.php复制到过来就行了,

并打开进行配置,我建立hua用户密码是hua123

2)配置phpStorm数据库(可选)

这个选项是可选的,因为我用的是phpStudy中的数据驱动,没有用它自身的,只不过让你们了解一下而已。完全可以不配置(∩_∩)

操作如下:

点phpStorm右侧边的Database,如果没有找到,可以点菜单栏中的

“View”-->“Tool Windws”-->“Database”


会自动下载驱动程序

3)建立Stu模型

在index模块下建立一个model目录并在该目录下建立一个Stu的php类文件

Stu.php代码如下:

2.2.4 建立控制器

在index模块下建立一个名为“Chengji”的控制器,写一个queryBySid($sid)方法,其中$sid为get传入的参数

queryBySid($sid)方法代码如下:

2.2.5 建立视图

根据:https://www.kancloud.cn/manual/thinkphp5_1/354065

表示系统会按照默认规则自动定位模板文件,其规则是:

当前模块/view/当前控制器名(小写)/当前操作(小写).html

所以操作如下:

在index模块下建立view目录-->chengji目录--> query_by_sid.html文件

querybysid.html内容如下:

PS:

1. 我用了<ul><li></li></ul>方式去展示效果

2. {$stu}是控制器Stu中assign()定义的变量,把它转到模板上而已


2.3 测试效果

打开浏览器输入:http://127.0.0.1/index.php/index/chengji/querybysid/sid/2

其中2是是sid的值,可以是1-9都行,我懒写form表单提交了

效果如下:


附录一、文档涉及的ThinkPHP5知识点

a1.1 TP5目录结构

打开PhpStorm,在界面中点“open”打开TP5所在目录,我这里是:

G:\phpStudy2018\PHPTutorial\WWW\tp5

与《ThinkPHP5.1完全开发手册》的目录结构,链接地址为

https://www.kancloud.cn/manual/thinkphp5_1/353950

进行对比就知道各自的作用,我把关键的application目录进行截图解说,其它的

《ThinkPHP5.1完全开发手册》的目录结构都有说明

上面对目录结构的理解直接关系着URL访问,根据链接

https://www.kancloud.cn/manual/thinkphp5_1/353955

知道URL默认采用的是PATHINFO模式

http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]

所以你要知道是什么是模块、控制器、操作吧,要不你连编写都不会


a1.2 什么是模块、控制器、操作

在“application应用目录”中:以TP5源目录为例子

模块

二级目录,模块名就是就是目录的名字,如a1.1 TP5图中index目录就是模块

二级目录也可以有多个

控制器:

简单来说就是”application/模块目录/controller/x.php”的php类文件名,这里是“index/controller/Index.php”,其中Index.php中类名为Index,所以控制器为Index

当然controller目录下也可以有多个php类文档,那么就有不同的控制器咯

操作:

         简单来说就是controller目录下php类文件中的方法。如Index.php类文件中有

index()和hello()两个方法,那么就有2个操作。


a1.3 ThinkPHP工作原理图

MVC把输入、处理和输出分开,在后期的维护过程中,很方便,比如,要更改页面,只需更改V的内容即可。

M模型(Model):处理数据和业务逻辑 (对应数据库和数据表的操作)

V视图(View):通过布局向用户展示数据

C控制器(Controller):接收用户请求,并调用相应的模型处理

第一步:浏览者 -> 调用控制器,对它发出指令

第二步:控制器 -> 按指令选取一个合适的模型

第三步:模型 -> 按控制器指令取相应数据

第四步:控制器 -> 按指令选取相应的视图

第五步:视图 -> 把第三步取到的数据按用户想要的样子显示出来

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

推荐阅读更多精彩内容