专栏首页嘘、小点声Thinkphp5.0快速入门笔记(1)

Thinkphp5.0快速入门笔记(1)

学习来源与说明

https://www.kancloud.cn/thinkphp/thinkphp5_quickstart

测试与部署均在windows10下进行学习。

Composer安装和更新

Composer 是 PHP 用来管理依赖(dependency)关系的工具。可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

网址:https://www.phpcomposer.com/

下载:https://getcomposer.org/Composer-Setup.exe

ThinkPHP框架下载地址

[ Github ] 应用项目: https://github.com/top-think/think 核心框架: https://github.com/top-think/framework [ 码云 ] 应用项目: https://git.oschina.net/liu21st/thinkphp5.git 核心框架: https://git.oschina.net/liu21st/framework.git [ Coding ] 应用项目: https://git.coding.net/liu21st/thinkphp5.git 核心框架: https://git.coding.net/liu21st/framework.git

部署与测试

部署过程采用xampp搭建。

XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。

下载完以后默认安装。安装完毕后打开xampp-control,如下界面。点击Apache的start和MySQL的start,允许网络,输入127.0.0.1测试。

Apache如果无法启动考虑端口占用问题,使用端口80,443。在cmd窗口下命令:netstat -ano查看端口占用情况,然后在任务管理器中找到占用端口的对应进程PID,结束掉,重新启动Apache试试。

测试完毕后,在Apache的Config下的httpd.conf文件打开,在文本最后(568行最后左右)编辑输入:

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs\server\public"
    ServerName www.server.com
</VirtualHost>

然后在C:\xampp\htdocs下建立文件夹server,将php框架解压到该文件夹下,检查对应出的public文件夹。

然后在C:\Windows\System32\drivers\etc中,找到host文件,修改属性,使可以编辑,然后在最后端添加:

192.168.0.103  www.matlabserver.com

使可以通过域名对应到网络ip。其中的192.168.0.103为本机对应在局域网的ip地址,用户应该在cmd窗口中使用ipconfig,自行查找对应的局域网ip地址。

最后测试,浏览器中输入ip,测试完毕后的效果如下:(当然啦,现在thinkPHP都出到6.0版本了,如果使用了5.1版本或者6.0,应该效果略有差异,但是不影响吧)

demo、控制器、视图、调试开关

demo

在ThinkPHP框架根路径打开cmd窗口,输入

php think build --module demo

会在application/下生成demo代码作为示例。

控制器

控制器位于路径application/index/controller/Index.php。编辑该文件即对主页编辑。控制器的路径和public/index.php配置有关。

修改application/index/controller/Index.php文件,则修改了主界面,如:

<?php
namespace app\index\controller;
class Index
{
    public function index()
    {
        return 'Hello,World!';
    }
}

视图

和demo一样,在application/index/下创建view文件夹,如图:

在之下创立hello.html,有如下内容:

<html>
    <head>
     <title>hello {$name}</title>
    </head>
    <body>
     hello, {$name}!
    </body>
</html>

修改application/index/controller/Index.php控制器为以下,则通过hello相互关联,控制器添加视图文件功能。(使用use声明继承方便,不适用use则需要class Index extends \think\Controller声明继承。

<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
    public function hello($name = 'thinkphp')
    {
        $this->assign('name', $name);
        return $this->fetch();
    }
}

效果如下:(注意url访问 http://serverName/index.php/模块/控制器/操作)

调试开关

调试开关位于application/config.php,第20行左右修改为以下,则关闭了调试开关:

    'app_debug'              => false,

打开状态:

关闭状态:

与数据库连接

数据库在xampp下的打开方式,可以通过MySQL的admin打开,也可以在cmd窗口中操作。下图为在xampp下的打开mysql方式。

在cmd中操作,首先将环境变量添加到path中,然后再打开cmd窗口。下图为添加环境变量示例。

然后输入如下,进入mysql。

输入以下,创建id,data的数据库,插入三条数据。

show databases;

create database demo;

use demo

CREATE TABLE IF NOT EXISTS `think_data`(
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`data` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

INSERT INTO `think_data`(`id`,`data`) VALUES
(1,'thinkphp'),
(2,'php'),
(3,'framework');

select * from think_data;

一点效果:

在application/database.php中修改文件内容为:

<?php

return [
    // 数据库类型
    'type' => 'mysql',
    // 服务器地址
    'hostname' => '127.0.0.1',
    // 数据库名
    'database' => 'demo',
    // 数据库用户名
    'username' => 'root',
    // 数据库密码
    'password' => '',
    // 数据库连接端口
    'hostport' => '',
    // 数据库连接参数
    'params' => [],
    // 数据库编码默认采用utf8
    'charset' => 'utf8',
    // 数据库表前缀
    'prefix' => 'think_',
    // 数据库调试模式
    'debug' => true,
    ];

修改控制器代码为:

<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
class Index extends Controller
{
    public function index()
    {
        $data = Db::name('data')->find();
        $this->assign('result', $data);
        return $this->fetch();
    }
}

添加模板文件view/index.html,设立内容为:

<html>
    <head>
        <title></title>
    </head>
    <body>
        {$result.id}--{$result.data}
    </body>
</html>

保存,最终效果为:

成功连接上了数据库,然后输出第一条数据。

也可以尝试更改控制器代码第九行为:

        $data = Db::name('data')->where('id',2)->find();

输出数据库第二条数据。

参阅地址:https://www.kancloud.cn/manual/thinkphp5/135176

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Thinkphp5.0快速入门笔记(2)

    https://www.kancloud.cn/thinkphp/thinkphp5_quickstart

    嘘、小点声
  • Thinkphp5.0上传图片与运行python脚本

    说明批处理文件路径与python脚本大致路径:C:\xampp\htdocs\server\public

    嘘、小点声
  • java学习与应用(4.5)--Cookie、Session、JSP等

    会话技术:Cookie(客户端),Session(服务端)。一次会话中包含多次请求和响应直到一端断开,在一次会话范围内多次请求间共享数据。 Cookie由服务器...

    嘘、小点声
  • Struct(结构体) 添加对象(objc)的坑

    developerbfl
  • GITCHAT系列2:个性化推荐

    大家好,我是来自PaddlePaddle开源社区的李钊(@livc),目前是一名大三学生。我曾经在手机百度实习,参与推荐算法和反作弊的研发工作,目前是IDL的一...

    用户1386409
  • 不得不学的Markdown语法

    版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog...

    shaonbean
  • 异构信息网

    知识图谱通过对错综复杂的文档的数据进行有效的加工、处理、整合,转化为简单、清晰的“实体,关系,实体”的三元组,最后聚合大量知识,从而实现知识的快速响应和推理。

    AngelNH
  • VC char和TCHAR之间转换

    char:计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型。

    阳光岛主
  • 如何给纸质信件也加个密码?

    在这个重视加密通信与安全电子邮件服务的时代,芬兰科技研究院(VTT)的研究人员们日前展示一种以密码保护的传统纸质信封,能在指定收件人取得邮件或由其他人代收邮件...

    机器人网
  • Selenium2+python自动化44-元素定位参数化(find_element)

    前言 元素定位常用的有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把常用的八种定位合为一种呢?也就是把定位的方式参数化,如id,name...

    上海-悠悠

扫码关注云+社区

领取腾讯云代金券