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

选择下面的版本安装



下载成功之后,按照提示直接点击下一步下一步安装即可。再 Laraegon 安装成功之后,你会看到软件界面

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

看到下面的界面,就算是安装成功了

设置工作目录

这一步非常重要,一定要设置好,因为 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)



点击 zip 下载

下载之后,找到 Laragon 的安装目录,找到目录下的 bin\php 目录,然后复制上面下载好的 PHP zip 包到该目录



直接解压到当前目录即可,解压完成之后呢,找到 windows 右下角的图标,如下图所示



右击 Laragon 的图标,然后选择 PHP,如图,选择对应的 PHP 版本即可



然后再 Laragon 软件,点击启动 nginxmysql,那么项目所需要的环境就已经安装好了

设置环境变量

找到编辑环境变量配置,打开它



点击环境变量



找到 path 变量,然后点击它



然后再点击新建,在复制你自己本地的 PHP 版本解压后的目录地址 C:\software\laragon\bin\php\php-8.2.15-Win32-vs16-x64(这是本人的本机目录) 粘贴到新建的变量中



打开 cmd 运行 php -v, 你会看到下面的输出就代表成功了

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

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

打开 Laragon 软件界面,如下图,点击它



然后看到软件界面如下

Composer 安装

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

点击下面的所指下载安装

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

composer -v

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

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

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

composer global require laravel/installer

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

Laravel -v

会有如图输出

初始化 Laravel 项目

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

laravel new lara-study

按照如图所示,选择对应的选项进行安装。这里我们尽量简单的来,不使用任何包装的包,尽量以原生框架开发



然后中途会有提示使用什么数据库驱动,如下图,教程使用 Mysql,图片安装上选择了 yes,出现了报错,这个错误可以忽略。为了避免误解,请各位在安装时候输入

no



输入完成之后,继续等待它安装完成就行了。

完成之后,记得重启 Laragon,在自动创建虚拟主机,如下图,点击停止之后,再点击启动将会自动创建虚拟机



Laragon 会创建一个以目录名称命名的lara-study.test虚拟域名,直接直接通过它访问项目。如果你出现如下图的报错,请不要担心,只是数据没有配置而已,等会下面来配置数据库信息

配置数据库

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

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



设置本地的 root 密码,设置完成之后再启动就可以了。

下面使用你常用的编辑器打开项目,我这里使用的是 phpstorm IDE 打开。找到 .env 文件,如下所示

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 自动创建数据库

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

目录结构

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! 准备的更多相关文章

  1. TODO:Laravel增加验证码

    TODO:Laravel增加验证码1. 先聊聊验证码是什么,有什么作用?验证码(CAPTCHA)是"Completely Automated Public Turing test to te ...

  2. TODO:Laravel 内置简单登录

    TODO:Laravel 内置简单登录 1. 激活Laravel的Auth系统Laravel 利用 PHP 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...

  3. TODO:Laravel 使用blade标签布局页面

    TODO:Laravel 使用blade标签布局页面 本文主要介绍Laravel的标签使用,统一布局页面.主要用到到标签有@yield,@ stack,@extends,@section,@stop, ...

  4. TODO:搭建Laravel VueJS SemanticUI

    TODO:搭建Laravel VueJS SemanticUI Laravel是一套简洁.优雅的PHP开发框架(PHP Web Framework).可以让你从面条一样杂乱的代码中解脱出来:它可以帮你 ...

  5. Bringing Whoops Back to Laravel 5

    You might be missing the "prettier" Whoops error handler from Laravel 4. If so, here's how ...

  6. 在 Laravel 中使用图片处理库 Integration/Image

    系统需求 PHP >= 5.3 Fileinfo Extension GD Library (>=2.0) … or … Imagick PHP extension (>=6.5.7 ...

  7. Laravel Composer and ServiceProvider

    Composer and: 创建自定义类库时,按命名空间把文件夹结构组织好 composer.json>autoload>classmap>psr-4 composer dump-a ...

  8. Laravel 5.x 请求的生命周期(附源码)

    Laravel最早接触是刚开始实习的时候,那时通过网上的学习资料很快便上手,开发模块接口.后来没有什么深入和总结,但是当我刚开始学Laravel的时候,我对Laravel最大的认识就是,框架除了路由. ...

  9. Laravel 5.3 登录注册底层实现详解

          每个控制器都使用 trait 来引入它们需要的方法 */ 用于处理用户登录认证 用于处理新用户注册 包含重置密码逻辑 用于处理重置密码邮件链接   认证需要的视图 包含了应用的基础布局文件 ...

  10. Laravel - 安装与配置

    有多重途径可以安装Laravel,下面是通过composer安装laravel的方法.Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.c ...

随机推荐

  1. 在Centos 8 服务器用tmux多开窗口

    在 CentOS 服务器上使用 tmux 来多开窗口是一个高效的方式.tmux 是一个终端复用器,它允许你在一个终端窗口中打开多个终端会话,还可以在会话之间轻松切换,非常适合长时间运行程序或多任务操作 ...

  2. SQL CREATE INDEX 语句- 提高数据库检索效率的关键步骤

    SQL CREATE INDEX 语句 SQL CREATE INDEX 语句用于在表中创建索引. 索引用于比其他方式更快地从数据库中检索数据.用户无法看到索引,它们只是用于加速搜索/查询. 注意: ...

  3. 使用 K8S 部署 RSS 全套自托管解决方案- RssHub + Tiny Tiny Rss

    前言 什么是 RSS? RSS 是一种描述和同步网站内容的格式,是使用最广泛的 XML 应用.RSS 搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者.发布一个 RSS 文件后,这个 ...

  4. windows下配置mask2former(facebook版)

    1.安装Anaconda 2.安装PyCharm 3.创建python3.8环境(最高3.8因为有一个依赖包最高支持python3.8) 4.安装GCC 下载地址:https://sourceforg ...

  5. CentOS 利用pam控制ssh用户的登录及SSH安全配置

    CentOS 利用pam控制ssh用户的登录 有关pam的使用,请找相关的文档.下面只说两个简单的例子. 首先在/etc/pam.d/sshd加入一句: account    required     ...

  6. 重新整理.net core 计1400篇[七] (.net core 中的依赖注入)

    前言 请阅读第六篇,对于理解.net core 中的依赖注入很关键. 和我们上一篇不同的是,.net core服务注入保存在IServiceCollection 中,而将集合创建的依赖注入容器体现为I ...

  7. 使用 Docker 部署 instantbox 轻量级 Linux 系统

    1)instantbox 介绍 GitHub:https://github.com/instantbox/instantbox instantbox 是一款非常实用的项目,它能够让你在几秒内启动一个主 ...

  8. 【笔记】Oracle列转行unpivot&行转列 PIVOT

    unpivot 说明:将表中多个列缩减为一个聚合列(多列转多行) 语法:unpivot(新列名 for 聚合列名 in (对应的列名1-列名n )) 写到了一个力扣的题,发现这个unpivot函数还没 ...

  9. HL7传输协议

    HL7消息通过各种TCP/IP传输发送,其中一些包括: 下层协议(LLP) 文件传输协议(FTP) 简单对象访问协议(SOAP) 简单邮件传输协议(SMTP) 尽管HL7可以使用多种传输协议进行数据传 ...

  10. 力扣537(java)-复数乘法(中等)

    题目: 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 100]虚部 也是一个整数,取值范围是 [-100, ...