第一章:Laravel入门——从PHP到现代框架的蜕变
大家好,我是你们的老朋友。今天咱们聊聊Laravel入门。说实话,每次带新人时,我总会先问一句:「你了解PHP的历史吗?」很多人觉得没必要,但我觉得,不懂过去,就看不清未来。
1.1 PHP发展史:从个人工具到全球霸主
PHP诞生于1994年,最初只是Rasmus Lerdorf用Perl写的一组个人工具。后来他重写成了C语言,取名「Personal Home Page Tools」。你想想看,那时候谁能想到,这个不起眼的小工具,后来会支撑起全球80%的网站?
我刚开始写PHP时,还在用PHP 4。那时候没有命名空间,没有自动加载,写个类都得手动require。嗯,说起来都是泪。后来PHP 5带来了面向对象特性,PHP 7大幅提升了性能,再到现在的PHP 8,加入了JIT编译器——这变化,真是一步一个脚印。
核心里程碑:
- PHP 4(2000年):引入Zend引擎,成为主流
- PHP 5(2004年):面向对象大升级,PDO、异常处理
- PHP 7(2015年):性能翻倍,标量类型声明
- PHP 8(2020年):JIT编译,命名参数,属性增强
我个人习惯把PHP的发展分为三个阶段:脚本时代(PHP 4及以前)、工程化时代(PHP 5-7)、现代化时代(PHP 8+)。你现在学Laravel,正好踩在最好的节点上。
1.2 Laravel框架介绍:为什么选它?
Laravel由Taylor Otwell在2011年创建。我记得第一次接触Laravel 4时,就被它的优雅震撼了——原来PHP可以写得这么舒服!
说白了,Laravel解决了几个核心痛点:
- 路由系统:简洁的API,比传统框架灵活太多
- Eloquent ORM:操作数据库像操作对象一样自然
- Blade模板:轻量但功能强大,继承、组件、插槽
- Artisan命令行:一键生成代码、运行迁移、管理队列
- 强大的生态:Homestead、Forge、Vapor、Nova
我的建议:初学者别急着学所有功能。先掌握路由、控制器、视图、模型这四件套,其他慢慢来。我在项目中见过太多人一上来就搞事件系统、队列,结果基础没打牢,代码写得一团糟。
Laravel的核心理念是「优雅」和「约定优于配置」。你想想看,一个框架能让你用最少的代码完成最多的事,这就是它的魅力。
1.3 Composer安装与使用:PHP的包管理利器
Composer是PHP的依赖管理工具,就像npm之于Node.js。没有它,Laravel根本玩不转。
安装Composer:
# macOS / Linux
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
# Windows
# 下载 Composer-Setup.exe 直接安装
安装完成后,验证一下:
composer --version
我曾经在Windows上踩过一个坑——没有把Composer加入系统PATH,结果每次都要用完整路径。嗯,这个细节要注意。
常用Composer命令:
| 命令 | 说明 | 示例 |
|---|---|---|
composer init |
初始化项目 | 交互式创建composer.json |
composer install |
安装依赖 | 根据composer.lock安装 |
composer require |
添加依赖 | composer require laravel/ui |
composer update |
更新依赖 | 慎用,会修改composer.lock |
composer dump-autoload |
重新生成自动加载 | 新增类文件后使用 |
避坑指南:我曾经在生产环境执行了composer update,结果依赖版本全变了,项目直接崩了。记住:生产环境永远用composer install,开发环境才用composer update。
1.4 Laravel项目创建与目录结构
有了Composer,创建Laravel项目就一行命令的事:
composer create-project laravel/laravel my-project
# 或者用Laravel安装器
composer global require laravel/installer
laravel new my-project
我个人习惯用第二种方式,因为安装器会帮你配置.env文件,省去手动复制的步骤。
启动开发服务器:
cd my-project
php artisan serve
# 默认访问 http://localhost:8000
看到Laravel的欢迎页面,恭喜你,项目创建成功!
1.5 目录结构详解:每个文件夹的职责
Laravel的目录结构设计得很清晰。我刚开始学的时候,花了半小时就记住了。你想想看,一个框架能把目录设计得这么直观,说明设计者真的用心了。
核心目录:
| 目录 | 作用 | 我的经验 |
|---|---|---|
app/ |
应用核心代码 | 模型、控制器、中间件都在这里 |
app/Http/Controllers |
控制器 | 业务逻辑的主要战场 |
app/Models |
Eloquent模型 | 每个模型对应一张数据表 |
resources/views |
Blade模板 | 前端页面放这里 |
routes/ |
路由定义 | web.php和api.php最常用 |
database/migrations |
数据库迁移 | 版本控制数据库结构 |
config/ |
配置文件 | 数据库、缓存、邮件等配置 |
public/ |
入口文件 | 服务器根目录指向这里 |
重要提醒:千万别把.env文件提交到Git仓库!里面存着数据库密码、APP_KEY等敏感信息。我见过有人把.env传到GitHub上,结果被爬虫抓取,数据库被删了——血的教训。
其他重要文件:
.env:环境配置,每个环境一份composer.json:PHP依赖声明artisan:命令行入口,所有Artisan命令都通过它package.json:前端依赖声明(Laravel Mix用)
我记得第一次看Laravel目录时,觉得app/下面怎么这么多子目录。后来用多了才发现,这种分层设计让代码组织非常清晰——控制器只管接收请求,模型只管数据操作,视图只管展示。各司其职,互不干扰。
1.6 本章小结
这一章我们走过了PHP的进化史,认识了Laravel这个现代框架,学会了Composer的安装和使用,最后亲手创建了一个Laravel项目并了解了它的目录结构。
说白了,入门就是搭好环境、理解概念。下一章我们会深入路由和控制器,开始真正写代码。到时候你会发现,Laravel的优雅不是吹出来的。
嗯,今天就到这里。有什么问题,欢迎在评论区交流。咱们下章见!
公众号:蓝海资料掘金营,微信deep3321