0基础自学linux

0基础自学linux运维-2.9-win7 phpStudy+p

2019-06-20  本文已影响15人  hualinux

前言

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):接收用户请求,并调用相应的模型处理

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

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

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

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

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

上一篇下一篇

猜你喜欢

热点阅读