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

微软CrowdStrike驱动蓝屏以及内核签名

原因 当Windows操作系统遇到严重错误导致系统崩溃时,屏幕显示为蓝色,通常伴有错误代码和信息,这被称为“蓝屏死机”(Blue Screen of Death,简称BSOD) https://www.thepaper.cn/newsDetail_forward_28126297 这次蓝屏事件影响非

KU FPGA FLASH boot失败debug

原因 新板子回来后,测试flash 烧录正常,但是无法BOOT,此时SPI设置为X4模式,使用内部时钟,速度90M。烧录过程不报错,校验也正常。 FLASH理论支持最大速度108M,90M应该还好。另外板卡预留了EMCCLK外部时钟模式,速率100M 也不可行。 此时约束如下: set_proper

架构与思维:秒杀和竞拍的业务架构,永不过时的话题

1 互联网架构越来越复杂? 为啥感觉互联网架构越来越复杂了,早期我们的系统,可能也就那么少部分人使用,大都是一些后台管理系统。 所以不用考虑很多东西,比如: 流量少,无需考虑并发问题 数据少,不用考虑什么索引优化、分库分表 访问不集中,不用考虑缓存、过载保护 如果数据不重要,不用考虑安全策略,甚至不

FPGA CFGBVS 管脚接法

说明 新设计了1个KU040 FPGA板子,回来之后接上JTAG FPGA不识别。做如下检查: 1、电源测试点均正常; 2、查看贴片是否有漏焊,检查无异常,设计上NC的才NC; 3、反复检查JTAG接线是否异常,贴片是否异常; 上述检查均无问题,开始查看原理图,逐个对照XILINX手册进行研究。 其

架构与思维:微服务架构的思想本质

我们为什么需要微服务架构,它一定是为了解决我们某些问题才出现了。这篇文章我们讨论下微服务架构模式所解决的问题,带来的挑战,以及他的核心思想本质。 1 早期的服务架构 上图是一个典型的服务分层架构: Client: 调用方是browser web或者App 应用层: 实现计算层的业务逻辑,从上游数据层

3大主流分布式事务框架详解(图文总结)

1 简要介绍 随着微服务架构的不断发展,分布式系统逐渐普及到后端领域的每一个角落。 在分布式系统中,跨多个服务的数据一致性一直是一个重大挑战,为解决这一挑战,分布式事务应运而生。 作者在之前的文章《五种分布式事务解决方案》和《4大主流分布式算法介绍》中,详细介绍了分布式事物的解决方案以及实现原理。接

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

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

深入分析四层/七层网关

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

AgileConfig-1.9.4 发布,支持 OpenTelemetry

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