Hello Laravel! Laravel 入门教程

hello,laravel · 浏览次数 : 0

小编点评

**步骤 1:下载并解压缩 Laragon 安装文件** 1. 从 Laragon 网站(laragon.org)上下载对应版本的 PHP 版本的安装文件。 2. 解压缩文件并将安装文件放到您项目的根目录中。 **步骤 2:设置环境变量** 1. 打开环境变量配置文件(`.env`)。 2. 添加以下行: ``` DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=lara_study DB_USERNAME=rootDB_PASSWORD= ``` 其中: * `DB_CONNECTION`:数据库连接字符串。 * `DB_HOST`:数据库服务器地址。 * `DB_PORT`:数据库服务器端口。 * `DB_DATABASE`:数据库名称。 * `DB_USERNAME`:数据库用户名。 * `DB_PASSWORD`:数据库密码。 **步骤 3:启动 Laragon 软件** 1. 双击 Laragon 软件图标。 2. 启动 `nginx` 和 `mysql` 服务。 **步骤 4:创建 Laravel 项目** 1. 打开您的终端或命令行。 2. 使用以下命令创建项目: ``` composer global require laravel/installer composer install ``` **步骤 5:启动项目** 1. 在 `project` 目录中运行以下命令启动项目: ``` php artisan serve ``` **完成** 您现在已经安装并启动了 Laragon 项目,并且已经创建一个名为 `lara` 的项目目录。您可以使用 `php artisan` 命令来管理您的项目。

正文

Hello Laravel! 准备

什么是 Laravel?

Laravel 是一个基于 PHP 的开源 web 应用程序框架,由 Taylor Otwell 创建并于 2011 年首次发布。它遵循 MVC(模型-视图-控制器)设计模式,旨在帮助开发者构建优雅、简洁且易于维护的 web 应用程序。

为什么选择 Laravel?

优雅的语法

Laravel 以其简洁和易读的代码风格著称,使开发者能够以最小的代码编写出功能强大的应用程序。它的语法简洁明了,减少了开发者的工作量,并提高了代码的可读性和可维护性。

丰富的功能

Laravel 提供了许多开箱即用的功能,如:

  • 路由系统:定义应用程序的 URL 路径和对应的控制器。
  • Eloquent ORM:一个强大的 ActiveRecord 实现,用于处理数据库操作。
  • Blade 模板引擎:一个简单、灵活的模板引擎,用于生成 HTML。
  • 中间件:方便处理 HTTP 请求的过滤和修改。
  • 任务调度:通过 Cron 作业自动执行任务。

强大的社区支持

Laravel 拥有一个活跃且庞大的社区,丰富的文档和大量的第三方包和插件,使开发者可以轻松找到所需的资源和解决方案。官方还提供了详细的文档和教程,帮助新手快速上手。

安全性

Laravel 在开发过程中考虑到了许多常见的安全问题,如 SQL 注入、跨站请求伪造(CSRF)和跨站脚本攻击(XSS)。框架内置了各种工具和机制来保护应用程序的安全。

易于扩展

由于 Laravel 的模块化设计和灵活的架构,开发者可以根据需要轻松扩展和定制框架。无论是添加新功能还是集成第三方服务,Laravel 都提供了方便的接口和工具。

Laravel 的流行程度

Laravel 的流行程度可以通过 GitHub 的 star 数等指标来衡量。截至 2024 年,Laravel 在 GitHub 上拥有超过 74k 个 stars,显示了其在开发者社区中的广泛接受度。

为了更好地理解 Laravel 的受欢迎程度,我们可以将其与其他流行的 web 框架进行比较:

其他流行的 Web 框架对比

  • Django (Python):Django 是一个高层次的 Python web 框架,专注于快速开发和简洁的设计。截至 2024 年,Django 在 GitHub 上有约 72k 个 stars。
  • Ruby on Rails (Ruby):Ruby on Rails 是一个流行的 Ruby web 框架,强调开发效率和代码优雅。截至 2024 年,Rails 在 GitHub 上有约 53k 个 stars。
  • Spring Boot (Java):Spring Boot 是一个基于 Java 的框架,用于创建独立的、生产级的 Spring 应用程序。截至 2024 年,Spring Boot 在 GitHub 上有约 69k 个 stars
  • Express (Node.js):Express 是一个基于 Node.js 的快速、简洁的 web 框架,适用于构建单页、多页和混合 web 应用程序。截至 2024 年,Express 在 GitHub 上有约 62k 个 stars。

通过与这些流行框架的对比,可以看出 Laravel 在 web 开发社区中拥有很高的知名度和广泛的使用基础。

环境准备

以下步骤均在 Windows10 下完成

首先在学习 Laravel 之前,需要准备必要的环境,这次入门教程以最新的 Laravel 版本作为开发基础,也就是 Laravel11,它所需要的 PHP 版本环境最低要求是 >=8.2, 不光是 PHP,Laravel 作为全栈框架还需要 Node 环境。本次课程还需要用 NginxMysql 等环境。所以为了简化入门教程的带来的环境困恼,在这里我们选择了集成这些软件包的开发软件,当然如果你是使用其他的软件,例如 wamp phpstudy 之类的也是可以的。

下载 Laragon

选择下面的版本安装
Laragon 完全版本下载-Laravel 入门学习
下载成功之后,按照提示直接点击下一步下一步安装即可。再 Laraegon 安装成功之后,你会看到软件界面

注意一定要记住 Laragon 安装的目录

看到下面的界面,就算是安装成功了
Laragon 软件界面-Laravel 入门学习

设置工作目录

这一步非常重要,一定要设置好,因为 Laragon 会帮根据文件目录名称自动创建虚拟主机,就省的自己去设置虚拟域名之类的了。

点击右上角的设置
设置工作目录
然后会看到下面的界面,根据自己实际的项目目录设置对应的值
设置工作目录
如图,本人所有的项目都设置在 C 盘的 project 目录,所以在之后安装 Laravel 项目的时候,我都会在 c:\project 目录下安装

添加 PHP 版本

由于需要使用 PHP >= 8.2 版本,所以这里需要安装添加一个 8.2 版本,Laragon 添加 PHP 版本非常简单。可以到 PHP 软件包下载页面

找到对应版本,这里选择线程安全版本 VS16 x64 Thread Safe (2024-May-08 07:21:58)
PHP8.2版本
点击 zip 下载 ⏬

下载之后,找到 Laragon 的安装目录,找到目录下的 bin\php 目录,然后复制上面下载好的 PHP zip 包到该目录
laravel入门学习
直接解压到当前目录即可,解压完成之后呢,找到 windows 右下角的图标,如下图所示
laravel入门学习
右击 Laragon 的图标,然后选择 PHP,如图,选择对应的 PHP 版本即可
laravel入门学习
然后再 Laragon 软件,点击启动 nginxmysql,那么项目所需要的环境就已经安装好了
laravel入门学习

设置环境变量

找到编辑环境变量配置,打开它
laravel入门学习 设置环境变量
点击环境变量
laravel入门学习 设置环境变量
找到 path 变量,然后点击它
laravel入门学习 设置环境变量
然后再点击新建,在复制你自己本地的 PHP 版本解压后的目录地址 C:\software\laragon\bin\php\php-8.2.15-Win32-vs16-x64(这是本人的本机目录) 粘贴到新建的变量中
laravel入门学习 设置环境变量
打开 cmd 运行 php -v, 你会看到下面的输出就代表成功了
laravel入门学习 设置环境变量

这里我建议不要使用 windows 自带的命令行,使用 Laragon 带的 cmder 更好。

因为支持 Linux 相关命令,用起来更顺手。而且可以随意设置 PHP 版本,不需要设置环境变量(需要重新打开一个新的 cmder)。

打开 Laragon 软件界面,如下图,点击它
laravel入门学习 设置环境变量
然后看到软件界面如下
laravel入门学习 设置环境变量

Composer 安装

第二步,安装 Composer。composer 安装比较简单,只需要到下载的页面即可

点击下面的所指下载安装

Composer 安装-Laravel入门学习

下载完成之后,双击 exe,点击下一步下一步即可完成安装即可,安装完成之后呢,打开 cmder,输入下面的命令

composer -v

Composer 安装-Laravel入门学习

安装成功之后,还需要设置镜像,目前据我所知,华为镜像更新的比较及时,可以复制下面的命令的设置镜像

composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/

设置好镜像之后,来安装初始化 Laravel 的初始化项目,首先我们安装 Laravel 项目安装器,使用下面的命令

composer global require laravel/installer

执行命令之后,等待安装完成即可。安装完成之后,使用下面的命令

Laravel -v

会有如图输出
laravel 入门学习 laravel 安装器

初始化 Laravel 项目

Laravel 安装器安装完成之后,我们就可以来安装 Laravel 项目了。还记得上面说的设置工作目录吗?现在我要在 c:\project 目录下创建新项目。所以要求你也需要在你自己实际的设置的工作目录下,使用下面的命令来创建项目

laravel new lara-study

按照如图所示,选择对应的选项进行安装。这里我们尽量简单的来,不使用任何包装的包,尽量以原生框架开发
laravel 入门学习 创建 Laravel 项目
然后中途会有提示使用什么数据库驱动,如下图,教程使用 Mysql,图片安装上选择了 yes,出现了报错,这个错误可以忽略。为了避免误解,请各位在安装时候输入
no
初始化 Laravel 项目laravel 入门学习 创建
输入完成之后,继续等待它安装完成就行了。

完成之后,记得重启 Laragon,在自动创建虚拟主机,如下图,点击停止之后,再点击启动将会自动创建虚拟机
初始化 Laravel 项目laravel 入门学习 创建
Laragon 会创建一个以目录名称命名的lara-study.test虚拟域名,直接直接通过它访问项目。如果你出现如下图的报错,请不要担心,只是数据没有配置而已,等会下面来配置数据库信息
初始化 Laravel 项目laravel 入门学习 创建

配置数据库

本教程使用的 Mysql 数据库作为驱动,所以数据库配置 Mysql 即可。找到右下角的 Laragon 软件,如图所示,修改 mysql 的 root 密码。

更换的时候必须停止 Mysql 服务,软件会有提示

配置数据库 laravel 入门学习
设置本地的 root 密码,设置完成之后再启动就可以了。
配置数据库 laravel 入门学习

下面使用你常用的编辑器打开项目,我这里使用的是 phpstorm IDE 打开。找到 .env 文件,如下所示
配置数据库 laravel 入门学习

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lara_study // 数据库名称
DB_USERNAME=root
DB_PASSWORD= // 配置你刚才设置 root 密码

配置完成之后,先不着急访问项目,我们先执行下一个命令,来创建数据库,因为现在链接了数据库,但没有 database 还没有设置,所以依然是报错的状态。在项目根目录,执行下面的命令

php artisan migrate

执行命令之后,会询问你是否创建数据库,直接回车或者填写 yes 自动创建数据库
配置数据库 laravel 入门学习

执行成功之后,再来访问 lara-study.test 域名,哦豁!!!欢迎来到 Laravel 🎉 !!! Welcome !!!
laravel 入门学习 成功访问 Laravel

目录结构

app 目录

app 目录包含您应用程序的核心代码。我们很快会更详细地探索这个目录;然而,您应用程序中几乎所有的类都将位于此目录。

app 目录详解 这里不多做赘述

app 目录就是我们实现功能开发的目录

bootstrap 目录

bootstrap 目录包含引导框架的 app.php 文件。此目录还包含一个 cache 目录,其中包含用于性能优化的框架生成文件,例如路由和服务缓存文件。

config 目录

顾名思义,config 目录包含您应用程序的所有配置文件。通读所有这些文件并熟悉您可用的所有选项是个好主意。

config 目录在之后开发过程中探索

database 目录

database 目录包含您的数据库迁移、模型工厂和种子文件。如果您愿意,还可以使用此目录来保存 SQLite 数据库。

该目录主要实现创建数据库表的迁移文件

public 目录

public 目录包含 index.php 文件,这是所有请求进入您应用程序的入口点,并配置自动加载。此目录还包含您的资产,如图像、JavaScript 和 CSS。

resources 目录

resources 目录包含您的视图以及原始的、未编译的资产,如 CSS 或 JavaScript。

routes 目录

routes 目录包含您应用程序的所有路由定义。默认情况下,Laravel 附带了两个路由文件:web.phpconsole.php

web.php 文件包含 Laravel 放置在 web 中间件组中的路由,该组提供会话状态、CSRF 保护和 cookie 加密。如果您的应用程序不提供无状态的、RESTful API,则您的所有路由很可能都将在 web.php 文件中定义。

console.php 文件是您可以定义所有基于闭包的控制台命令的地方。每个闭包都绑定到一个命令实例,允许简单地与每个命令的 IO 方法进行交互。尽管此文件不定义 HTTP 路由,它定义了基于控制台的应用程序入口点(路由)。您还可以在 console.php 文件中安排任务。

storage 目录

storage 目录包含您的日志、编译的 Blade 模板、基于文件的会话、文件缓存以及框架生成的其他文件。此目录分为 appframeworklogs 目录。app 目录可用于存储应用程序生成的任何文件。framework 目录用于存储框架生成的文件和缓存。最后,logs 目录包含您应用程序的日志文件。

storage/app/public 目录可用于存储用户生成的文件,如应该公开访问的个人资料头像。您应该在 public/storage 创建指向此目录的符号链接。您可以使用 php artisan storage:link Artisan 命令创建链接。

tests 目录

tests 目录包含您的自动化测试。默认情况下提供了 PestPHPUnit 单元测试和功能测试示例。每个测试类应以 Test 单词为后缀。您可以使用 /vendor/bin/pest/vendor/bin/phpunit 命令运行测试。或者,如果您希望对测试结果有更详细和美观的表示,您可以使用 php artisan test Artisan 命令运行测试。

vendor 目录

vendor 目录包含您的 Composer 依赖项。

不必为这么多文件夹感到害怕,实际上在开发过程中与我们打交道的最多的就是 App 目录和 routes 目录。至于其他目录,至少在现在可以放一放,没必要太关注。

那么到这里,关于 Laravel 初始化的过程已经全部讲解结束,还顺带了解了下 Laravel 的目录结构。当然在后续篇章中,我们不会立即讲解框架的一些概念,例如容器服务提供者 门面 之类的晦涩难懂的概念,因为这对于入门教程来说是不需要去深入了解的。但是如果涉及到相关的概念,教程也会指出来。教程的目的是尽快能让你使用框架开发出来一个项目,能够将自己的想法用 Laravel 表达出来。

后面案例代码将会标记其所在文件相对路径,以根目录为参考物。例如

// app/Htttp/HelloController

somecode

原文链接

与Hello Laravel! Laravel 入门教程相似的内容:

Hello Laravel! Laravel 入门教程

Hello Laravel! 准备 目录Hello Laravel! 准备什么是 Laravel?为什么选择 Laravel?优雅的语法丰富的功能强大的社区支持安全性易于扩展Laravel 的流行程度其他流行的 Web 框架对比环境准备下载 Laragon设置工作目录添加 PHP 版本设置环境变量C

弹性伸缩:高可用架构利器(架构+算法+思维)

1 介绍 云计算资源弹性伸缩是一种根据业务需求动态调整计算资源规模的技术。它可以根据系统的性能指标(如CPU使用率、内存占用率、磁盘IO、网卡读写率、请求响应时间等)或者预定义的规则(如时间周期、业务事件等),自动增加或减少计算资源的数量,以满足业务负载的变化。这种技术可以确保系统在高峰时期拥有足够

深入分析四层/七层网关

1 简要介绍 随着云计算、大数据和物联网技术的迅猛发展,网络通信的复杂性和需求日益增加。在这种背景下,网关技术作为网络通信中的重要组成部分,扮演着关键的角色。 作为连接不同网络或协议的桥梁,四层网关和七层网关是两种常见且重要的类型。本文将对这两种网关进行深入分析和对比,让同学们更好地理解它们的工作原

AgileConfig-1.9.4 发布,支持 OpenTelemetry

Hello 大家好,最新版的 AgileConfig 1.9.4 发布了。现在它可以通过 OpenTelemetry 对外提供 logs,traces,metrics 三个维度的数据。用户可以自由选择支持 otlp 协议的工具来进行查询与分析。比如 Seq,loki,prometheus, graf

ZynqMP PL固件通过U-BOOT从指定位置加载FPGA BIT

原因 PL固件可能经常修改,而BOOT.BIN和文件系统、内核实际上基本不会变,在一个平台上可以用同一份。如果每次修改都要重新打包PL 固件到BOOT.BIN,操作起来非常麻烦。所以希望PL 的固件可以直接从指定位置加载。典型的可以从SD卡的FAT32分区加载。 https://xilinx-wik

千万级流量冲击下,如何保证极致性能

1 简要介绍 随着互联网的快速发展,网络应用的流量规模不断攀升,特别是在电商大促、明星直播、重大赛事、头条热搜等热点事件中,秒级100w请求成为了常态。在这样的流量冲击下,如何确保系统稳定、高效地处理每一个请求,为用户提供极致的体验,成为了技术团队面临的重要挑战。本文将深入探讨在超高流量下如何保证系

架构与思维:了解Http 和 Https的区别(图文详解)

1 介绍 随着 HTTPS 的不断普及和使用成本的下降,现阶段大部分的系统都已经开始用上 HTTPS 协议。 HTTPS 与 HTTP 相比, 主打的就是安全概念,相关的知识如 SSL 、非对称加密、 CA证书、数据完整性保护 等,我们多多少少也都有听过。 本文重点从原理上讲解 HTTPS 的安全性

数据库系列16:MyISAM与InnoDB的索引对比

相关文章 数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高可用及无损扩容 数据库系列:使用高区分度索引列提升性能 数据库系列:前缀索引和索引长度的取舍 数据库系列:MyS

架构与思维:4大主流分布式算法介绍(图文并茂、算法拆解)

0 导读 之前的文章中,我们介绍过分布式事务的基础知识,也了解了分布式场景下常见一致性问题和解决方案,对分布式锁和CAS模式有一定的了解,有兴趣的同学可以通过下面链接到作者的两篇相关文章。 五种分布式事务解决方案(图文总结) 高并发下的数据一致性保障(图文全面总结) 1 介绍 本文聚焦高并发场景下分

XYCTF pwn部分题解 (部分题目详解)

hello_world(签到) 思路:✅ 这道题就是利用printf函数泄露libc的基地址,然后再次进行栈溢出通过system,/bin/sh来获取shell wp: invisible_flag 思路:✅ 题目提示orw,那我们先看看是否开了沙盒 那么是开了沙盒的,试试orw读取flag 虽然保