33. 创建应用
简介
在本节里,我们介绍如何使用 Homestead 来创建 ThinkBBS 这个项目,并完成统一代码风格和 Git 仓库创建。
做好准备
由于我们接下来的开发都会在 Homestead 上进行,因此,在开始本章教程之前,请保证你的 Homestead 虚拟机已成功开启并登录。使用下面命令来启动和登录 Homestead :
> cd ~/Homestead && vagrant up
> vagrant ssh
在虚拟机中进入Code文件夹(注意:Code 文件夹是我们按照 开发环境搭建 配置的共享文件夹):
$ cd ~/Code
注意:本书中因为虚拟机的存在,我们会有两个运行命令行的环境,一个是 宿主机,另一个是 Homestead 虚拟机。我们会在命令的前面使用『命令行提示符』来区分宿主机和 Homestead 。请记住以 > 开头的命令是运行在主机里,$ 开头的命令是运行在 Homestead 虚拟机里。详见 写作约定 - 命令行提示符 。
Composer 加速
在创建项目之前,我们先在虚拟机中运行以下命令来实现 Composer 安装加速 :
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
创建 ThinkBBS 应用
下面让我们来使用 Composer 创建一个名为 ThinkBBS 的应用,后面我们将基于这个应用做更多的功能完善:
$ cd ~/Code
$ composer create-project topthink/think ThinkBBS --prefer-dist "5.1.*"
项目创建完后进行项目根目录使用下面这行命令可以查看创建项目使用的 thinkphp 版本
$ cd ~/Code/ThinkBBS/
$ php think version
v5.1.38 LTS
注:版本更迭,再正常不过,安装界面的版本无需跟上面一致。在 ThinkPHP 官方发布的的 ThinkPHP5.1完全开发手册 里创建项目时并没有指定使用的 ThinkPHP 版本(参数--prefer-dist), 但因为如果不指定版本时 composer 默认使用包的最新正式版本,为了避免 ThinkPHP 6.0 正式发布后大家创建项目使用的是 6.0 版本,我们在这里建议大家在创建项目时最好使用
--prefer-dist "5.1.*"
指定 ThinkPHP 版本。
修改 hosts
使用 Homestead 开发时,我们在每个项目创建完成的第一步是设置项目的 Homestead 配置,让应用能在 Homestead 的开发环境上跑起来。
为了方便记忆,一般我们都会将 IP 映射为域名,我们能够通过设置 hosts 文件来指定 IP 与域名之间的映射关系,由于我们在 Homestead 上默认使用 192.168.10.10 来作为虚拟机的 IP 的地址,因此我们需要在系统的 hosts 文件中将域名指向该 IP 上。
Mac 下打开 hosts 文件:
> subl /etc/hosts
Windows 下打开 hosts 文件:
subl C:/Windows/System32/Drivers/etc/hosts
Windows 下,如果你没有集成 subl 命令的话, 请使用编辑器直接打开文件,Hosts 文件路径是 C:\Windows\System32\Drivers\etc\hosts ,参考 如何修改windows系统的host文件 。
文件成功打开后,在 hosts 文件最后面新增下面一行以完成设置:
192.168.10.10 bbs.test
新增站点
如果你安装了 Sublime Text,可通过运行下面命令打开 Homestead.yaml
文件:
> subl ~/Homestead/Homestead.yaml
在 Homestead.yaml 文件中新增 ThinkBBS 应用的 sites
和 databases
的相关设置:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
- map: bbs.test # <--- 这里
to: /home/vagrant/Code/ThinkBBS/public # <--- 这里
databases:
- homestead
- think_bbs # <--- 这里
variables:
- key: APP_ENV
value: local
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 93000
# to: 9300
# - send: 7777
# to: 777
# protocol: udp
我们主要设置了 sites
和 databases
两项。 sites
会将域名 bbs.test
映射到虚拟机的 /home/vagrant/Code/ThinkBBS/public
目录,而 databases
则为新创建的项目指定数据库名。
重启虚拟机
在我们每次对 Homestead.yaml
文件进行了更改之后,都需要运行下面命令来使其更改生效:
> cd ~/Homestead && vagrant provision && vagrant reload
命令说明:
vagrant provision
是命令 Vagrant 重新加载Homestead.yaml
配置;vagrant reload
是重启虚拟机使更改生效。
访问应用
现在让我们在 Chrome 浏览器中打开 bbs.test 你应该能看到如下界面:
Git 代码版本控制
为了在接下来更好的追踪项目代码的更改,我们还需要将新建的 ThinkPHP 项目纳入到 Git 版本管理中:
$ cd ~/Code/ThinkBBS
$ git init
$ git add -A
$ git commit -m "初始化"
我们前面已讨论过关于使用 GitHub 的种种好处,而现在是我们开始正式应用它的时候了。熟悉一个东西最快的方法就是不断训练,不断重复,因此本教程接下来项目构建的代码都将统一托管到 GitHub 上,以便让你对 GitHub 的使用更加熟悉。现在,我们需要在 GitHub 上新建一个名为 thinkbbs 的项目 点击创建新项目,并将代码推送上去:
注意请把下面的 替换为你的用户名。
$ git remote add origin git@github.com:<username>/thinkbbs.git
$ git push -u origin master
统一代码风格
为了保证我们的代码风格一致,以避免引起不必要的歧义,请大家按照 开发环境布置 教程安装 EditorConfig 插件。现在我们还需要在 ThinkPHP 应用的根目录创建 .editorconfig
文件。
$ touch .editorconfig
新创建的 .editorconfig
文件配置信息如下:
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.yml]
indent_size = 2
[*.{js,html,blade.php,css,scss}]
indent_style = space
indent_size = 2
接着让我们将该文件加入到版本控制中:
$ git add -A
$ git commit -m "统一代码风格"
推荐文章: