Hello Laravel! 准备

news/2024/11/16 18:09:01/文章来源:https://www.cnblogs.com/catchadmin/p/18201124

Hello Laravel! 准备

目录
  • Hello Laravel! 准备
    • 什么是 Laravel?
    • 为什么选择 Laravel?
      • 优雅的语法
      • 丰富的功能
      • 强大的社区支持
      • 安全性
      • 易于扩展
    • Laravel 的流行程度
      • 其他流行的 Web 框架对比
    • 环境准备
      • 下载 Laragon
      • 设置工作目录
      • 添加 PHP 版本
      • 设置环境变量
    • Composer 安装
    • 初始化 Laravel 项目
      • 配置数据库
    • 目录结构
      • app 目录
      • bootstrap 目录
      • config 目录
      • database 目录
      • public 目录
      • resources 目录
      • routes 目录
      • storage 目录
      • tests 目录
      • vendor 目录

什么是 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

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

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

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

设置工作目录

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

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

添加 PHP 版本

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

  • PHP8.2 版本下载

找到对应版本,这里选择线程安全版本 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 安装

点击下面的所指下载安装

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

vendor 目录

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

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

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

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

// app/Htttp/HelloControllersomecode

原文链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/709039.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WSL2 Xlaunch 转发显示图像

export DISPLAY=localhost:0.0 export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk {print $2}):0 控制面板/系统和安全/Windows Defender防火墙/允许应用通过Windows防火墙 更改设置->勾选 VcXsrv windows xserver待完成

5款.NET开源、免费、功能强大的图表库

LiveCharts2 LiveCharts2是一个.NET开源(MIT License)、简单、灵活、交互式且功能强大的.NET图表、地图和仪表,现在几乎可以在任何地方运行如:Maui、Uno Platform、Blazor-wasm、WPF、WinForms、Xamarin、Avalonia、WinUI、UWP。GitHub开源地址:https://github.com/beto-r…

从误解到理解:非暴力沟通的艺术

非暴力沟通的艺术在生活的喧嚣与忙碌中,我们时常迷失于自我,忘记了与人沟通时的基本准则——尊重与理解。当再次拾起《非暴力沟通》这本书,我意识到,过去的沟通方式不仅让我与身边人的关系变得紧张,也让我自己背负了不必要的心理负担。 许多人对我的初印象是友善、和蔼的,…

5/20死神永生服周报第二期

目录死神永生新闻 关于储存开放世界需要多大空间 论Factions的玩法死神永生新闻前一周的治理新闻时间 人 行为 处罚方案5.16 Atom446649443 随意保护 Ban5.19 Galactic654221024 炸服 清空背包+设为生存关于储存开放世界需要多大空间\(\color {gray} \small \texttt {By Loki71…

efcore如何优雅的实现按年分库按月分表

efcore如何优雅的实现按年分库按月分表 介绍 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案,具有零依赖、零学习成本、零业务代码入侵适配 距离上次发文.net相关的已经有很久了,期间一直在从事java相关的工作,一不…

[转帖]原理篇:Redis性能优化一定会涉及的9个项目(超全)!

https://heapdump.cn/monographic/detail/33/4338896 Redis 作为优秀的内存数据库,其拥有非常高的性能,单个实例的 OPS 能够达到 10W 左右。但也正因此如此,当我们在使用 Redis 时,如果发现操作延迟变大的情况,就会与我们的预期不符。 你也许或多或少地,也遇到过以下这些…

[转帖]CPU性能优化基本篇:一定要了解Linux CPU哪些基本概念

https://heapdump.cn/monographic/detail/20/4103469 目录 第一篇:CPU性能优化基础篇:一定要了解Linux CPU哪些基本概念 第二篇:CPU 优化高级篇:Linux系统中CPU占用率较高问题排查思路与解决方法第三篇:CPU 优化高级篇:Java CPU 高的原因和排查方法 :如何定位Java 消…

Nodejs的require流程

nodejs的require流程 . 一、require简单流程 nodejs的require流程大致如下:原图:https://images.cnblogs.com/cnblogs_com/blogs/668717/galleries/2013323/o_240518085412_require流程探索.png . 二、hook require的简单模板 function makeRequireFunction(_module_) {const…

2024-05-20 通达信选股 不破放量大阴底

AA:=HHVBARS(V,21); AB:=REF(C,AA)<REF(O,AA);AC:=REF(C,AA)/REF(C,AA+1)<0.9;AD:=C>REF(C,AA);AE:= C>1;AXG: AB AND AC AND AD AND AE;不破底,说明主力吸筹,就可以考虑区间的高抛低吸

OpenXR™Loader-设计和操作

OpenXR™Loader-设计和操作 介绍 本文档包含了解如何为OpenXR加载程序进行开发以及与之交互的必要信息。本文档的预期用途是作为详细的设计文档和学习一般OpenXR加载程序行为的工具。 如果本文档与OpenXR规范之间存在任何差异,则以该文档为准。 OpenXR™和OpenXR标志是Khronos…

Win10电脑怎么调整光标闪烁速度

1.按键盘上的win键,呼出开始菜单 2.在开始菜单中输“键盘”,单击控制面板中的键盘设置。3.在弹出的界面中,调整光标闪烁速度