[TOC]
## 命令行提示符
在本书的教授过程中,我将使用 `$` 符号来作为命令行提示符,如:
```shell
$ echo "Hello ThinkPHP!"
Hello ThinkPHP!
```
带有 `$` 符号的第一行代码指的是我们在命令行端口中输入的命令 `echo "Hello ThinkPHP!"`。`echo` 是 Unix 系统中常用的输出命令,用于输出指定字符串。第二行的 `Hello ThinkPHP! `是运行命令后的输出信息。后面我们会使用这种风格来表示命令行的输入与输出,因此你在复制命令行的时候要注意不要把 `$` 和输出信息也复制进去了。
由于接下来的教程有时会在两个不同的机器环境上(宿主环境和虚拟机环境,大部分情况下是在虚拟机环境上)来调用命令行输入,因此我们约定,在宿主上调用的命令输入使用 `>` 符号,在虚拟机上调用的命令使用 `$` 符号。
以下命令行运行在 **虚拟机** 里:
```shell
$ echo "I am in VM!"
I am in VM!
```
以下命令行运行在 **宿主机** 上:
```shell
> echo "I am in Host Machine!"
I am in Host Machine!
```
## 相对文件路径
针对每个人不同的工作环境,本书将统一默认为项目的根目录,而不是项目在文件系统中的完整路径。
例如在我电脑中项目默认模块的默认控制器文件的完整路径为:
```shell
/home/vagrant/Code/ThinkBBS/app/index/controller/Index.php
```
但在本书中,文件名路径参照的是项目的根目录,显示如下:
```shell
app/index/controller/Index.php
```
这样就能保证每个人看到的路径名称都一致了。
## 竖排 '...' 代码省略
最后,为了保持文章的篇幅简洁,我会将一些不必要的代码使用竖排的 `.` 来代替,你在复制本文代码块的时候,切记不要将 `.` 也一同复制进去。演示代码如下:
```php
<?php
namespace app\index\controller;
.
.
.
class Topic extends Base
{
public function index()
{
return $this->fetch('topic/index');
}
}
```
## 排版规范
此文档遵循 [中文排版指南](https://github.com/sparanoid/chinese-copywriting-guidelines) 规范,并在此之上遵守以下约定:
- 英文的左右保持一个空白,避免中英文字黏在一起;
- 使用全角标点符号;
- 严格遵循 Markdown 语法;
- 原文中的双引号(" ")请代换成中文的引号(『』);
- 「`加亮`」和「`加粗`」和「`[链接]()`」都需要在左右保持一个空格。
- 第一章 基础信息
- 序言
- 关于作者
- PHP和ThinkPHP
- 如何正确阅读本书
- 写作约定
- 开发规范
- 章节体例
- 本书源码
- 第二章 舞台布置
- 开发环境
- 产品分解
- Git和GitHub
- 创建项目
- 数据库视图管理工具
- 统一代码风格
- 目录结构
- 配置信息
- 后台应用搭建
- 助手函数
- 前台布局模板
- 基础控制器
- 小结
- 第三章 注册登录
- 数据迁移
- 表单提交
- 表单验证
- 模型验证
- 短信提供商
- 发送短信
- 手机验证
- 注册提醒
- 登录与退出
- 重置密码
- 数据填充
- 小结
- 第四章 用户相关
- 个人中心
- 编辑个人资料
- 上传图片
- 上传头像
- 显示头像
- 限制头像分辨率
- 裁剪头像
- 显示注册时间
- 授权访问
- 小结
- 第五章 帖子列表
- 话题分类
- 话题模型
- 话题列表
- 性能优化
- 分类话题列表
- 话题列表排序
- 用户发布的话题
- 分页器美化
- 小结
- 第六章_帖子CURD
- 创建话题
- 生成摘要
- 编辑器优化
- 上传图片
- 显示话题
- 编辑话题
- 删除话题
- 小结
- 第七章 帖子回复
- 回复模型
- 回复列表
- 发表回复
- 删除回复
- XSS 安全漏洞
- 小结
- 第八章 角色权限和管理后台
- 多角色用户权限
- 用户管理
- 话题管理
- 回复管理
- 小结
- 第九章 杂项
- 边栏活跃用户
- 用户最后登录时间
- 边栏资源推荐
- 站点首页
- 小结
- 第十章 总结
- 全书总结
- 附录
- 浅谈ThinkPHP6.0 路由