laravel框架知识点

1. 什么是laravel框架

Laravel是一种开源的PHP Web应用程序框架,采用了MVC(模型-视图-控制器)架构模式,旨在帮助开发人员构建优雅、高效的Web应用程序。Laravel提供了许多有用的功能,如路由、中间件、Eloquent ORM、模板引擎、任务调度、事件管理等,使开发人员能够快速构建可扩展、可维护的Web应用程序。Laravel还有一个活跃的社区,提供了丰富的文档、教程和插件,方便开发人员学习和使用。

1.1 Laravel框架的目录结构

在这里插入图片描述

1.2 Apache安装与配置

以Apache Lounge网站编译的版本为例,在网站中找到httpd-2.1.38-win32-VC15.zip这个版本下载安装,由于版本仍在更新,下载到的可能是2.4.x的最新版本,但是不影响学习。

1.2.1 配置安装路径

在conf\httpd.conf配置正确的安装路径:

Define SRVROOT "C:\web\apache2.4"

1.2.2 配置服务器域名

在conf\httpd.conf中去掉服务器域名的注释:

ServerName www.example.com:80

1.2.3 安装

安装Apache命令:

httpd -k install -n Apache2.4

1.2.4 卸载

卸载Apache命令:

httpd -k uninstall-n Apache2.4

最后启动Apache服务,选择Start启动服务,当图标由红色变为绿色表示启动成功。

1.3 安装Composer依赖管理工具

安装过程:

  1. 是否使用开发者模式(Developer mode)。若选中此项,则不提供卸载功能,推荐不选中。
  2. 选择PHP命令行程序。单击“Browse…”按钮浏览文件,选择C:\web\php7.2\php.exe即可。
  3. 更新php.ini。若当前php.ini不符合Composer的环境需求,安装程序会提示修改php.ini,并创建备份文件。若php.ini符合需求,则该步骤会自动跳过。
  4. 安装命令:从“Packagist 中国全量镜像”获取缓存数据,具体命令如下:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
  1. 取消获取缓存数据的命令:
composer config -g --unset repos.packagist
  1. 更新Laravel框架命令:
composer update laravel/framework

2. 路由和视图

2.1 配置路由

路由配置文件: routes\web.php
路由示例:

Route::get('/', function () {
    return view('welcome');
});
  • Route::get()定义路由,get是路由的请求方式。
  • / 表示当用户访问网站的首页。
  • view()函数表示要显示的视图,welcome表示视图文件名称。

2.2 请求URL示例

在这里插入图片描述

2.3 重定向路由

重定向路由的作用:用来实现页面跳转。
重定向路由示例代码:

Route::redirect('/hello', '/xxx');

将路由“hello”重定向到“/xxx”

2.4 控制器Controller

创建控制器的命令:

php artisan make:controller 控制器名
  • php artisan表示使用Laravel提供的artisan工具
  • make:controller表示生成控制器,在后面书写控制器名
  • 控制器名采用大驼峰的形式,后面加上Controller后缀,如TestController

2.5 创建视图文件

视图文件的使用:创建resources\views\index.blade.php文件。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>
    当前显示的视图文件是index.blade.php
  </body>
</html>

视图文件的使用:在控制器中加载视图文件

public function show()
{
    // 加载视图文件resources\views\show.blade.php
    return view('show');
}

2.6视图中的循环操作

在视图中输出数组时,使用“@foreach”模板语法实现.
循环语句的使用:
控制器代码

public function show()
{
    $data = array(['id' => 1, 'name' => 'Tom'], ['id' => 2, 'name' => 'Andy']);
    return view('show', ['data' => $data]);
}

视图代码

<body>
  <h1>循环操作</h1>
  @foreach ($data as $v)
    {{ $v['id'] }} - {{ $v['name'] }} <br>
  @endforeach
</body>

2.7模板继承的使用:

父页面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>
    <header>头部区域</header>
    <div>
      @yield('content')
    </div>
    <footer>尾部区域</footer>
  </body>
</html>

子页面

@extends('parent')
@section('content')
  <section>区块内容</section>
@endsection

3. 表单安全和用户认证

3.1 在Laravel中防御CSRF攻击

通过表单发送请求,在视图中使用{{ csrf_field() }}或{{ csrf_token() }}获取令牌。
{{ csrf_field() }} :获取一个隐藏域,自动填入令牌值。

<input type="hidden" name="_token" value="自动填入的令牌值">

{{ csrf_token() }} :获取令牌值,手动填入隐藏域中。

<input type="hidden" name="_token" value="{{ csrf_token() }}">

3.2 在表单中使用CSRF令牌:

<form action="{{ route('trans') }}" method="post">
  收款人:<input type="text" name="name"><br>
  转账金额:<input type="text" name="money"><br>
  {{ csrf_field() }}
  <input type="submit" value="转账">
</form>

3.3 常用的验证规则:

在这里插入图片描述

3.4 session()函数的使用:

session(['name' => '张三']); 	// 写入Session
dump(session('name')); 	// 输出结果:张三
dump(session('age', 0)); 	// 当读取Session不存在时,返回默认值0
dump(session()->all()); 	// 获取所有Session
dump(session()->forget('name')); // 删除名称为name的Session
dump(session()->has('name')); 	// 判断Session是否存在
session()->flush(); 		// 删除全部Session

3.5 Laravel内置的中间件:

在这里插入图片描述

3.6 验证用户登录中间件部分示例代码:

<?php
namespace App\Http\Middleware;
use Closure;
class User
{
    public function handle($request, Closure $next)
    {
        if (!session()->has('users')) {
            return redirect('/user/login');
        }
        return $next($request);
    }
}

4 数据库操作

4.1创建laravel数据库

在数据库中创建member表并插入测试数据

#创建数据库,并使用USE选择数据库
CREATE DATABASE `laravel`;
USE `laravel`;
#在数据库中创建member数据表
CREATE TABLE `member` (
  `id` INT PRIMARY KEY AUTO_INCREMENT,
  `name` VARCHAR(32) NOT NULL DEFAULT '',
  `age` TINYINT UNSIGNED NOT NULL DEFAULT 0,
  `email` VARCHAR(32) NOT NULL DEFAULT ''
) ENGINE=InnoDB CHARSET=utf8mb4;
#在member数据表中插入测试数据
INSERT INTO `member` VALUES (1, 'tom', 20, 'tom@laravel.test');

4.2 使用DB类操作数据库

示例代码:

public function database()
{
    $data = DB::table('member')->get();
    foreach ($data as $v) {
        dump($v->id . '-' . $v->name);
    }
}

给database()方法设置路由。

Route::get('test/database', 'TestController@database');

4.2 数据库的增删改查

  1. 使用insert()和insertGetId()方法添加数据
    insert()方法:返回值为true或false,表示是否添加成功
    insertGetId()方法:返回值为自动增长的id
  2. 修改数据
    update()方法用来修改指定的字段
    increment()方法用来对数字进行递增
    decrement()方法用来对数字进行递减
  3. 查询数据的方式:
    查询多行数据——查询某个字段的值
    查询单行数据——排序
    查询指定字段的值——分页
  4. 删除数据
    两种方式:使用delete()方法删除指定的记录,使用truncate()方法清空整个数据表。

4.3 数据表迁移

  1. 创建迁移文件命令
php artisan make:migration 迁移文件名
  1. 创建paper表迁移文件命令:
php artisan make:migration create_paper_table
  1. 数据表的字段要求:
id:表的主键,自动增长。
paper_name:试卷名称,VARCHAR(100)类型,不允许重复值。
total_score:试卷总分,TINYINT类似,默认为0。
start_time:试卷开始考试时间,INT类型(保存时间戳)。
duration:考试时间长度,单位为分钟,TINYINT类型。
status:试卷是否启用,TINYINT类型,1表示启用,2表示禁用,默认为1。
created_at:创建时间,TIMESTAMP类型,默认为NULL。
updated_at:更新时间,TIMESTAMP类型,默认为NULL
  1. 执行迁移命令:
php artisan migrate

5. 总结

  1. 介绍了什么是Laravel框架;然后,讲解了开发环境的搭建步骤,完成了Apache安装,以及Composer依赖管理工具安装;最后并对Laravel框架的目录结构进行了演示。
  2. 介绍了框架中路由的定义和使用,然后讲解了控制器的使用以及如何在控制器中接收用户输入数据,最后讲解了视图的使用。
  3. 讲解了CSRF攻击和在框架中如何防御CSRF攻击,然后演示Session机制和中间件的使用方法
  4. 讲解了如何在Laravel框架中操作数据库,主要包括DB类操作数据库、对数据库进行增删改查,以及数据表的迁移。
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Laravel框架性能表现良好。它采用了许多优化策略,如缓存、延迟加载和路由缓存等,以提高应用程序的性能。此外,Laravel还提供了一些工具和插件,如Eloquent ORM和Blade模板引擎,以简化开发过程并提高应用程序的性能。总的来说,Laravel框架是一个高效、可扩展和易于使用的框架,适用于各种规模的应用程序。 ### 回答2: Laravel是一个PHP开发框架,它以优雅、简单和快速的方式提供了一套丰富的工具和功能。它具有高度的可扩展性和灵活性,使得开发者可以快速构建高性能的Web应用程序。 首先,Laravel采用了模块化的设计结构,通过使用Composer可以轻松地添加和管理第三方软件包。这意味着开发者可以选择性地加载所需的模块,提高了系统的性能并降低了系统的内存占用。 其次,Laravel使用了类似于MVC(Model-View-Controller)的架构模式,将应用程序的不同组件分离开来。这种分离使得开发者可以更好地组织和管理代码,并且具有更高的可重用性和可测试性。同时,这种架构模式也可以提高系统的性能,因为每个组件都可以独立地进行优化。 另外,Laravel还实现了许多性能优化技术,例如缓存和页面压缩。通过使用缓存,Laravel能够将经常使用的数据存储在内存中,以减少数据库查询的次数,从而提高系统的响应速度。而页面压缩则是通过减少网络传输的数据量来提高系统的性能。 此外,Laravel还提供了良好的错误处理和日志记录机制,可以帮助开发者快速定位和解决性能问题。这些功能使得开发人员可以更好地监控和管理系统的性能,并且能够及时采取措施来提高系统的性能。 总之,Laravel框架具有良好的性能,并且提供了许多优化技术和工具,使得开发者可以轻松构建高性能的Web应用程序。 ### 回答3: Laravel框架是一款流行的PHP开发框架,被广泛用于构建Web应用程序。在性能方面,Laravel框架具有以下特点。 首先,Laravel框架通过其强大而灵活的功能以及自动化的代码生成工具,使得开发者能够快速构建功能丰富的应用程序。这种高效的开发模式可以减少项目开发周期,从而提高了开发效率。 其次,Laravel框架具有良好的代码结构和优化的性能。框架提供了一套丰富的功能和工具,包括路由、数据库查询构建器、缓存、队列等,可帮助开发者优化应用程序的性能。此外,Laravel框架还提供了命令行工具,用于进行性能测试和优化。 再次,Laravel框架采用了Composer依赖管理工具,可以确保应用程序只加载所需的库和组件,减少了不必要的资源消耗,提高了性能。 此外,Laravel框架还支持多种缓存和会话驱动方式,开发者可以根据实际需求选择合适的缓存驱动,从而进一步提高应用程序的性能。 总的来说,Laravel框架在性能方面表现出色。它通过提供丰富的功能和工具,优化的代码结构以及灵活的开发模式,使得开发者能够高效地构建高性能的Web应用程序。同时,Laravel框架还提供了一系列的性能测试和优化工具,方便开发者进行性能调优。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值