基本介绍
简介
laravel是一个简洁,优雅的PHP开发框架,使用IoC(依赖注入容器)结构和MVC模式。Laravel框架包括数据库迁移、Eloquent ORM(数据库关系)、路由、验证、视图以及Blade模板等等。
作为一个容器框架,laravel 重点解决大型项目中,各个模块功能冗余,耦合度高的问题.让各个模块的功能代码都能轻松通过laravel框架衔接起来,以保障系统在无数个版本的开发过后,代码依然简洁明了,可读性高.让每个参与该项目的开发者,更加专注于自己的业务逻辑.
安装
Laravel 使用 Composer 来管理项目依赖。因此,在使用 Laravel 之前,请确保你的机器已经安装了 Composer。
composer global require "laravel/installer"
确保将 composer vender bin
目录放置在你的系统环境变量 $PATH
中,以便系统可以找到 Laravel
的可执行文件。该目录根据您的操作系统存在不同的位置中;一些常见的配置包括:
macOS: $HOME/.composer/vendor/bin
GNU / Linux 发行版: $HOME/.config/composer/vendor/bin
安装完成后, laravel new
命令会在您指定的目录创建一个全新的 Laravel
项目。例如, laravel new blog
将会创建一个名为 blog
的目录,并已安装好所有的 Laravel
依赖项:
laravel new blog
通过 Composer 创建项目
或者,你也可以在终端中运行 create-project
命令来安装 Laravel:
composer create-project --prefer-dist laravel/laravel blog
本地开发环境
如果您在本地安装了 PHP,并且您想使用 PHP内置的服务器来为您的应用程序提供服务,则可以使用 serve Artisan
命令。该命令会在 http://localhost:8000
上启动开发服务器:
php artisan serve
配置
公共目录
安装完 Laravel 之后,你必须将 web 服务器根目录指向 public 目录。
该目录下的 index.php 文件将作为所有进入应用程序的 HTTP 请求的前端控制器。
配置文件
Laravel 框架的所有配置文件都放在 config 目录中。每个选项都有注释,方便你随时查看文件并熟悉可用的选项。
目录权限
安装完 Laravel 后,你可能需要给这两个文件配置读写权限:storage 目录和
bootstrap/cache 目录应该允许 Web 服务器写入,否则 Laravel 程序将无法运行。
如果你使用的是 Homestead 虚拟机, 这些权限已经为你配置好了。
应用密钥
安装 Laravel 之后下一件应该做的事就是将应用程序的密钥设置为随机字符串。
如果你是通过 Composer 或 Laravel 安装器安装的 Laravel,
那这个密钥已经为你通过 php artisan key:generate 命令设置好了。
通常来说,这个字符串长度为 32 个字符。密钥可以在 .env 环境文件中设置。
前提是你要将 .env.example 文件重命名为 .env。
如果应用程序密钥没有被设置,就不能确保你的用户会话和其他加密数据的安全!
其他配置
除了以上的配置,Laravel 几乎就不需要再配置什么了。你随时就能开发!
但是,可能的话,还是希望你查看 config/app.php 文件及其注释。
它包含几个你可能想要根据你的应用来更改的选项,比如 timezone 和 locale。
目录结构
App/ 目录包含应用程序的核心代码。
Console/ 目录包含了所有自定义的 Artisan 命令。
Exceptions/ 目录包含了应用的异常处理器,也是应用抛出异常的好地方。
Http/ 目录包含了控制器、中间件和表单请求。几乎所有的进入应用的请求的处理逻辑都被放在这里。
Providers/ 目录包含了应用的所有 服务提供器 。
Rules/ 目录默认不存在,它会在运行 Artisan 命令 make:rule 命令时被创建。包含应用自定义验证规则对象
Bootstrap/ 目录包含引导框架并配置自动加载的文件。
Config/ 目录,顾名思义,包含应用程序所有的配置文件。
Database/ 目录包含数据填充和迁移文件。你还可以把它作为 SQLite 数据库存放目录。
public/ 目录包含了入口文件 index.php ,它是进入应用程序的所有请求的入口点。
resource/ 目录包含了视图和未编译的资源文件(如 LESS、SASS 或 JavaScript)。
routes/ 目录包含了应用的所有路由定义
web.php 路由基本上都要定义在 web.php 文件中
api.php 包含的路由位于 api 中间件组约束之内,支持频率限制功能,这些路由是无状态的,所以请求通过这些路由进入应用需要通过 token 进行认证并且不能访问 Session 状态。
console.php 用于定义所有基于闭包的控制台命令
channels.php 用于注册应用支持的所有事件广播频道
storage/ 目录包含编译的 Blade 模板、基于文件的会话和文件缓存、以及框架生成的其他文件。
app/ 用于存放应用生成的文件
framework/ 用于存放框架生成的文件和缓存
logs/ 存放的是应用的日志文件
tests/ 目录包含自动化测试文件。Laravel 已内置了 PHPUnit 的测试范例供你参考。
vendor/ 目录包含你的 Composer 依赖包。