美文网首页0基础自学linux
0基础自学linux运维-2.9-win7 phpStudy+p

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

作者: hualinux | 来源:发表于2019-06-20 00:06 被阅读15次

    前言

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

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

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

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

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

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

    相关文章

      网友评论

        本文标题:0基础自学linux运维-2.9-win7 phpStudy+p

        本文链接:https://www.haomeiwen.com/subject/ckhqqctx.html