## **创建一个新的Laravel项目**
正如[官方文档](https://laravelacademy.org/post/9528.html)所言,有两种方式可以创建一个新的 Laravel 项目(请确保系统已经安装过 PHP 和 Composer),这两种创建方式都是从命令行执行的:第一种是通过全局的 Laravel 安装器,另一种是通过 Composer 的`create-project`命令。
### **使用 Laravel 安装器安装**
安装 Laravel 安装器很简单,在命令行执行以下命令即可(如果已经安装过,会自动进行更新):
~~~
composer global require laravel/installer
~~~
安装完成后,后续就可以通过`laravel new [项目名称]`来创建新的 Laravel 项目了。
### **使用 Composer create-project 命令安装**
除此之外,还可以通过 Composer 自带的`create-project`命令来安装新应用:
~~~
composer create-project laravel/laravel blog --prefer-dist
~~~
效果和上面使用安装器安装的一样,使用这个方式安装的一个好处是可以安装指定版本的 Laravel 项目,比如安装 5.6 版本的项目`blog56`可以这么做:
~~~
composer create-project laravel/laravel blog56 5.6.* --prefer-dist
~~~
## **Laravel应用的目录结构**
安装完成后,我们来看一下新安装 Laravel 项目`blog`的目录结构:
![](https://img.kancloud.cn/e7/d7/e7d799fdf83b98c52f29f6e5b1d03dfd_1738x1252.png)
> 注:更多关于目录结构的信息,可参考[官方文档](https://laravelacademy.org/post/9529.html)。
### **配置**
Laravel 应用的一些核心配置,比如数据库、队列、邮件等,都位于`config`目录下,通过配置文件名称就可以很直观地甄别出不同的服务配置。这些配置文件都会返回一个数组,数组中的每个值都可以通过配置键获取(配置键以配置文件名为前缀,以「.」号分隔数组层级),例如,如果你在`config/services.php`中定义了如下配置:
~~~
// config/services.php
return [
'sparkpost' => [
'secret' =>env('SPARKPOST_SECRET'),
],
];
~~~
然后,你就可以通过`config('services.sparkpost.secret')`来访问配置值。
如上例所示,所有的因环境而异的变量配置值(尤其是敏感信息)都应该存放到根目录下的`.env`环境变量文件中:
~~~
SPARKPOST_SECRET = xyj_laravelacademy.org
~~~
然后在配置文件中通过`env()`辅助函数传入键名`SPARKPOST_SECRET`来获取,这样做有两个好处:一是将敏感信息存放到版本控制系统(如 Git、Svn)之外,提高了系统的安全性;此外还可以方便我们在不同环境中(每个环境有自己独立的`.env`文件)使用不同的配置值,提高了代码的复用性和灵活性。
> 注:更多配置信息请参考[官方文档](https://laravelacademy.org/post/9528.html#toc_2)。
## **运行**
安装好 Laravel 项目,了解了目录结构及其作用,以及如何对项目进行配置后,我们就可以运行这个应用了。我们以 Valet 为例,通过配置项目域名为`blog.test`,在浏览器中访问`http://blog.test`,即可看到应用首页。
![](https://img.kancloud.cn/c0/25/c025511ad970e02cf72136c48f137671_1518x604.jpeg)
此外,Laravel开箱提供了基于PHPUnit进行单元测试和功能测试的功能,并且为我们做好了基础配置(`phpunit.xml`)和示例代码(位于`tests`目录下),由于本节并没有编写任何代码,所以可以通过以下命令运行示例测试:
~~~
./vendor/bin/phpunit
~~~