tp5博客项目实战

开发准备:环境wamp,windows系统为例。看实战博客,默认会搭建开发环境并且tp5框架已经至少有一定的基础。

tp5的下载与安装

方法一:直接在官网下载拷贝到wamp你的项目目录。

方法二:下载安装 composer,打开cmd 打开到你项目的根目录

更换阿里云的镜像(下载速度快)

composer	config	-g repo.packagist composer https://packagist.phpcomposer.com

下载

composer	create-project	topthink/think=5.0.*	tp5		--prefer-dist

此时你所在项目的根目录下就出现了tp5的文件夹

在浏览器打开localhost/你的站点/tp5/public

出现

十年磨一剑...就说明安装成功。

命名空间

同一个php里面不能出现相同的两个函数这个时候就需要用到namespace例如这样两个相同名称的函数因为放到了两个不同的命名空间所以不会报错。这就像同一个文件夹里不能出现两个一样名称的文件,我们在这个文件夹里面建两个子文件夹把文件分别放进去就可以了。

命名空间只对函数,类,以及常量起作用且常量不是define定义的。

const定义的常量一般在类里面,命名空间可以使其在类外面

引入了namespace的php前面,在namespace前面不能有任何字符。

<?php
namespace kj1;
function getmsg(){
echo '123';
}
const mn='chenguosong';
namespace kj2;
function getmsg(){
echo 'hello';
}
const mn='chenjialei';

那么怎么找到并使用你想要的那个函数呢?

\kj1\getmsg();
echo '<br/>'.\kj1\mn;

函数可以在空间之前调用,例如这样

<?php
namespace kj1;
function getmsg(){
echo '123';
}
const mn='chenguosong';
\kj2\getmsg();
namespace kj2;
function getmsg(){
echo 'hello';
}
const mn='chenjialei';

不过常量不行

多级命名空间

像这样

namespace beijing\haidian;

三种访问方式

1.非限定名称访问方式

就是直接使用当前命名空间的方法

namespace kj2;
function getmsg(){
echo 'hello';
}
getmsg();

2.限定名称访问方式

beijing\haidian\getmsg();
namespace shanghai\putuoqu\beijing\haidian;
function getmsg(){
echo 'hehe';
}

3.完全限定访问名称方式

\beijing\haidian\getmsg();

命名空间的引入机制

空间引入

use beijing\haidian\tiananmen;//引入命名空间

如果要使用空间里面的东西,要用 限定名称访问方式而不能直接用非限定性名称访问方式

例如这样

    tiananmen\getmsg();//命名空间里的方法的使用
$animal=new tiananmen\animals();
echo $animal->obj;//类的方法
echo tiananmen\animals::$name;//静态常量的访问

引入类元素

use beijing\haidian\tiananmen\animals;//这样就相当于把上一个命名空间的类animals复制了一份到当前的命名空间,可以直接使用,就像使用当前命名空间的类一样。注意,拷贝了一份就得把当前同名称的类给删除。
echo animals::$name; $sub=new animals();
echo $sub->obj;

这样就不用像前面的引入命名空间那样每一个使用都要用 限定名称访问方式。

公共空间

命名空间引入公共空间

没有限定命名空间的php就是公共空间例如有下面两个php

2.php

<?php 

function getmsg(){
echo "上海普陀";
} const NM="陈国松";

1.php

<?php
namespace beijing;
header("content-type:text/html;charset=utf-8");
class animals{
public $obj='dog';
static $name='大黄';
}
function getmsg(){
echo '北京海淀';
}
include("./2.php");//引入公共空间
getmsg();//使用这个方法打印输出的是 北京海淀 而不是 上海普陀 说明引入的公共空间对当前命名空间是没有影响的,只有你要使用的方法在当前找不到,才会去公共空间寻找

使用公共空间的常量和方法

include("./2.php");
echo \NM;//如果当前的空间没有这个常量而公共空间有的话也可以直接这样echo NM
\getmsg();

公共空间引入命名空间

<?php
function getmsg(){
echo "上海普陀";
}
const NM="陈国松";
include("./1.php");
echo NM;//访问的还是当前的NM
echo \NM;//访问的是当前的NM
echo \beijing\NM;//访问命名空间里面的NM

tp5里面命名空间的使用案例

例如application下面的index下的controller

命名空间是虚拟的文件目录,是不存在的,但在tp5里面用app/index/controller对应到实际的方便开发

<?php
namespace app\index\controller; class Index
{
public function index()
{
return 'hello';
}
}

fetch方法在thinkphp/library/think/Controller

<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
return $this->fetch();
}
}

这样index.php就可以使用fetch方法了

tp5博客项目实战1的更多相关文章

  1. tp5博客项目实战2

    改虚拟主机 (用www.tp5.com直接访问替代localhost/blog/tp5/public) 1.host修改 位置C:\Windows\System32\drivers\etc 127.0 ...

  2. 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站

    这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...

  3. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(一)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(二)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  5. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(三)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  6. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(四)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  7. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(一)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  9. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

随机推荐

  1. TinyMCE 工具栏配置

    plugins: { type: [String, Array], default: 'lists image media wordcount advlist bbcode code charmap ...

  2. NuGet本地包自定义路径

    <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSo ...

  3. git致命错误汇总

    1.  拒绝合并无关历史 fatal: refusing to merge unrelated histories 解决办法: git pull origin master --allow-unrel ...

  4. Oracle ORA-00600[2662] 解决

    一.问题描述 1.数据库情况 1)数据库版本:11.2.0.4: 2)未开启归档: 3)没有备份:无RMAN备份.无DUMP备份: 4)数据库redo log 日志组,每组只有一个成员: 2.问题出现 ...

  5. CF707D Persistent Bookcase 可持久化线段树

    维护一个二维零一矩阵(n,m<=1000),支持四种操作(不超过10^5次): 将(i,j)置一 将(i,j)置零 将第i行零一反转yu 回到第K次操作前的状态 每次操作后输出全局一共有多少个一 ...

  6. PHP变量及其操作

    一.概念 变量是内存中用于存储数据的一个空间,这个空间有一个名字,这个名字就是变量名,变量名用于对这个内存中的数据进行引用的 二.声明 语法:    $变量名=值 变量名只能包含字母.数字.下划线,只 ...

  7. linux 下搭建ELK(rpm包版)

    一.安装环境查看 注意:新的安装包要在centos 7.x的版本上安装 二.软件版本选用 注意:这边根据实际情况 jdk 1.8.0_171 #jdk安装这边就不说了 elasticsearch-7. ...

  8. Arrays.binarySearch采坑记录及用法

    今天在生产环境联调的时候,发现一个很奇怪的问题,明明测试数据正确,结果却是结果不通过,经过debug查询到原来是Arrays.binarySearch用法错误,记录一下,避免后续再次犯错 具体测试如下 ...

  9. mybatis 集合in的用法

    <!-- 查询 设备List 的 某天,并且小于当前小时的,耗电 记录 -->    <select id="findByDeviceIdInAndBetweenRecor ...

  10. linux日常---3、linux常用操作

    linux日常---3.linux常用操作 一.总结 一句话总结: 状态的确是非常之好,享受这种状态. 1.linux删除文件夹和文件? rm -rf *:删文件和文件夹 rm -rf *.*:只能删 ...