Laravel 开发前准备

一、分析需求

分析项目需求,拆分功能模块,分析数据结构

二、开发准备

由于我们接下来的开发都会在 Homestead 上进行,因此,在开始本章教程之前,请保证你的 Homestead 虚拟机已成功开启并登录。使用下面命令来启动和登录 Homestead:

> cd ~/Homestead && vagrant up
> vagrant ssh

在虚拟机中进入 Code 文件夹:

$ cd ~/Code

注意:本书中因为虚拟机的存在,我们会有两个运行命令行的环境,一个是主机,另一个是 Homestead 虚拟机。我们会在命令的前面使用『命令行提示符』来区分主机和 Homestead。请记住以 > 开头的命令是运行在主机里,$ 开头的命令是运行在 Homestead 虚拟机里。详见 写作约定 - 命令行提示符

Composer 加速

在创建项目之前,我们先在虚拟机中运行以下命令来实现 Composer 安装加速 :

$ composer config -g repo.packagist composer https://packagist.laravel-china.org

创建 LaraBBS 应用

下面让我们来使用 Composer 创建一个名为 LaraBBS 的应用,后面我们将基于这个应用做更多的功能完善:

$ cd ~/Code
$ composer create-project laravel/laravel larabbs --prefer-dist "5.5.*"

file

中间省略掉安装细节...

file

修改 hosts

每个 Laravel 项目创建完成后的第一步,即是对 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 命令的话, 请使用编辑器直接打开文件,文件路径在 C:\Windows\System32\Drivers\etc\hosts 。

文件成功打开后,在 hosts 文件最后面新增下面一行以完成设置:

192.168.10.10   larabbs.test

新增站点

如果你安装了 Sublime Text,可通过运行下面命令打开 Homestead.yaml 文件:

> subl ~/Homestead/Homestead.yaml

在 Homestead.yaml 文件中新增 larabbs 应用的 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: larabbs.test # <--- 这里
      to: /home/vagrant/Code/larabbs/public # <--- 这里

databases:
    - homestead
    - larabbs # <--- 这里

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 会将域名 larabbs.test 映射到虚拟机的 /home/vagrant/Code/larabbs/public 文件夹上,而 databases 则为新创建的项目指定数据库名。

重启虚拟机

在我们每次对 Homestead.yaml 文件进行了更改之后,都需要运行下面命令来使其更改生效:

> cd ~/Homestead && vagrant provision && vagrant reload
  • vagrant provision 是命令 Vagrant 重新加载 Homestead.yaml 配置;
  • vagrant reload 是重启虚拟机使更改生效。

.env 文件

接下来,我们还需要对应用根目录下的 .env 文件进行设置,为应用指定数据库名称 larabbs

.env

.
.
.
DB_DATABASE=larabbs
.
.
.

在 .env 文件中,除了 DB_DATABASE 之外还有其它的设置信息,接下来让我们对里面的几项配置信息进行简单讲解。

一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境:

  • 本地开发环境
  • 测试环境
  • 生产环境

在不同环境中,我们可能会使用不同的数据库或邮件发送驱动等配置,这时候则需要通过 .env 文件来针对不同的运行环境作不同的设置。比如上面我们所编辑的 .env 文件配置将应用在本地的开发环境(local)上。

.env 支持对应用进行简单的配置,比如你可以通过 APP_ENV 来设定当前应用的运行环境,使用 APP_DEBUG 来设定是否在应用报错时显示调试信息,使用 APP_KEY 来生成应用的密钥用于加密一些较为敏感的数据。

APP_ENV=local
APP_DEBUG=true
APP_KEY=your_app_key

我们也可以对数据库的连接方式、数据库名、用户名密码等做相关配置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=larabbs
DB_USERNAME=homestead
DB_PASSWORD=secret

缓存、会话、队列等驱动的相关配置信息:

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

Redis 相关的配置信息:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

邮件相关的配置信息:

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

在完成对 .env 文件的设置后,我们便可以通过传参给 getenv 方法来获取到 .env 文件中指定的值,如调用 getenv('APP_ENV') 将返回 local

Git 代码版本控制

为了在接下来更好的追踪项目代码的更改,我们还需要将新建的 Laravel 项目纳入到 Git 版本管理中:

$ cd ~/Code/larabbs
$ git init
$ git add -A
$ git commit -m "Initial commit"

我们前面已讨论过关于使用 GitHub 的种种好处,而现在是我们开始正式应用它的时候了。熟悉一个东西最快的方法就是不断训练,不断重复,因此本教程接下来项目构建的代码都将统一托管到 GitHub 上,以便让你对 GitHub 的使用更加熟悉。现在,我们需要在 GitHub 上新建一个名为 larabbs 的项目 点击创建新项目,并将代码推送上去:

注意请把下面的 <username> 替换为你的用户名。

$ git remote add origin git@github.com:<username>/larabbs.git
$ git push -u origin master

统一代码风格

为了保证我们的代码风格一致,以避免引起不必要的歧义,我们在『开发环境布置』课程中,已经安装了 EditorConfig 插件。现在我们还需要在 Laravel 应用的根目录下添加 .editorconfig 文件,并写入如下的配置信息:

.editorconfig

# coding styles between different editors and IDEs
# editorconfig.org

root = true

[*]

# Change these settings to your own preference
indent_style = space
indent_size = 4

# We recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false

[*.{js,html,blade.php,css,scss}]
indent_style = space
indent_size = 4

[*.md]
trim_trailing_whitespace = false

接着让我们将该文件加入到版本控制中。

$ git add -A
$ git commit -m "Add .editorconfig"

存放位置

Laravel 框架的所有配置都保存在 config 目录中,每个文件中包含多个配置选项,每个选项都有说明,你可随时查看这些文件并熟悉都有哪些配置选项可供你使用。

配置文件

下面是配置文件的简单说明:

文件名称 配置类型
app.php 应用相关,如项目名称、时区、语言等
auth.php 用户授权,如用户登录、密码重置等
broadcasting.php 事件广播系统相关配置
cache.php 缓存相关配置
database.php 数据库相关配置,包括 MySQL、Redis 等
filesystems.php 文件存储相关配置
mail.php 邮箱发送相关的配置
queue.php 队列系统相关配置
services.php 放置第三方服务配置
session.php 用户会话相关配置
view.php 视图存储路径相关配置

访问配置值

你可以在应用程序的任何位置使用全局 config 函数来访问配置值。配置值的访问可以使用「点」语法,这其中包含了要访问的 文件名称 和 选项 的名称。还可以指定默认值,如果配置选项不存在,则返回默认值:

$value = config('app.timezone');

要在运行时设置配置值,传递一个数组给 config 函数:

config(['app.timezone' => 'America/Chicago']);

调整配置信息

现在我们需要调整几个应用配置信息。

应用名称

config/app.php

'name' => env('APP_NAME', 'Laravel'),

此处使用 env() 方法可知其优先读取 .env 文件中的 APP_NAME 选项,前往修改为 LaraBBS

.env

APP_NAME=LaraBBS

.
.
.

应用链接

config/app.php

'url' => env('APP_URL', 'http://localhost'),

优先读取 .env 文件中的 APP_URL 选项,前往修改为以下:

.env

.
.
.
APP_URL=http://larabbs.test
.
.
.

时区

请将选项 timezone 修改为上海的时区:

config/app.php

'timezone' => 'Asia/Shanghai',

默认语言

请将选项 locale 修改为中文:

config/app.php

'locale' => 'zh-CN',
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!