第一章: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.phpapi.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