PHP

PHP 8的 Attributes新特性介绍

从PHP 8开始,我们将能够使用Attributes。Attributes(在许多其他语言中也称为annotations)的目标是将元数据添加到类,方法,变量等中;以结构化的方式。

attributes的概念根本不是什么新概念,多年来,我们一直在使用docblock来模拟其行为。但是,通过添加attributes,我们现在有了该语言的一等公民来表示这种元数据,而不必手动解析docblock。

那它们长什么样呢?我们如何制作自定义attributes?有什么警告吗?这些是本文将要回答的问题。让我们深入!…

    

laravel如何自定义404,500等错误页面

laravel如何自定义404,500等错误页面

1.线上环境的话如果用户打开网页的话laravel框架自带的错误界面是非常丑陋的,关键是不美观这里我们自定义一下界面

2.在laravel项目的  resources目录下的views目录下新建一个目录叫做errors,
然后把在https://github.com/laravel/framework/tree/6.x/src/Illuminate/Foundation/Exceptions/views
目录下载的所有错误页面添加在目录中,可根据需要修改页面代码,或者从网上下载其它的静态或动态页面,如果是动态的记得在public目录中引用资源

 第二种方法

或者使用laravel框架提供的路由返回报错视图

Route::fallback(function (){
return view('404');
});

    

Laravel:如何让用户使用电子邮件或用户名登录

Laravel默认只允许用户使用其电子邮件地址登录。现在,如果要让您的用户使用电子邮件甚至用户名登录,该怎么办?

为此,您只需要更改Laravel默认身份验证代码中的某些代码即可。

开始吧。我认为您已经设置了Laravel项目并迁移了Laravel默认身份验证。如果您还没有编写命令php artisan make:auth,那么请执行php artisan migrate。…

加速你的laravel框架运行, 教你如何减少服务提供者的启动.

Laravel有一个很强大的功能,就是服务提供者,它使得开发者能很容易的便能调用各种服务,但这也使得框架变得臃肿,今天就教大家如何优化各种不必要的服务提供者.

  • 找到不需要启动的服务提供者. 执行php artisan package:discover或者composer dump-auto查看我们引导了什么服务提供者. 
  • 从这里可以看到我们所有自动启动的外部服务提供者,我们可以优化其中一些,
    • 比如encore/laravel-admin是一个后台,但实际上我们每一次请求都会启动这个,所以我们只需要判断url中出现admin才启动这个服务
    • 比如intervention/image实际上是一个图片处理包,我们也不需要每一次请求都启动它,只需要压缩,操作图片时才启动这个包,这时候就可以写一个Service类,在类的构造方式启动这个服务
  • 首先我们想要排除某个服务提供者,把它加入项目根目录下composer.json文件中的extra.laravel.dont-discover的数组中即可 
  • 如果我们不启动这些服务,但又使用的话,这时候就会出现不可意料的结果
  • 所以,这时候我们就需要按需启动服务提供者.比如只有在url包含有admin才启动encore/laravel-admin
  • 首先我们先查看这个包的根目录下的composer.json文件 
        

Laravel 登录失败次数限制

在用户身份验证的情况下,Laravel 具有内置的身份验证系统。我们可以根据要求轻松修改它。身份验证中包含的功能之一是Throttling.

为什么我们需要throttling保护?

基本上,throttling是用来保护暴力攻击的。它将在一定时间内检查登录尝试。在短登录中,throttling会计算用户或机器人尝试失败的登录尝试次数。

使用自定义登录实现限制

默认情况下,在内置身份验证控制器中实现限制。但是,如果我们需要实现它到自定义登录呢?

实现自定义登录限制非常容易。首先,我们必须将ThrottlesLogins trait包含到您的控制器中。

use Illuminate\Foundation\Auth\ThrottlesLogins;

现在,将此ThrottlesLogins trait 加到控制器中。

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\ThrottlesLogins;

class AuthController extends Controller
{
    use ThrottlesLogins;

    ......

现在转到用于对用户进行身份验证的方法。在我的例子中,我使用了 login() POST 方法。并粘贴以下代码:

public function login(Request $request)
{
    // Authenticate 

一文详解 PHP 8 的新特性

 

PHP 8 将于 2020 年 11 月 26 日发布。这是一个新的主要版本,这意味着它将引入一些突破性的更改,以及许多新功能和性能改进。现在 PHP 8 在功能冻结中,这意味着不能再添加任何新功能了。

由于重大更改,您需要在代码中进行一些更改才能在 PHP 8 上运行。但是,如果您已经跟上最新版本,升级应该不会太难,因为大多数重大更改以前在 7.* 版本中已弃用。别担心,所有这些弃用都列在这篇文章中。

除了突破性变化外,PHP 8 还带来了一系列不错的新功能,如 JIT 编译器、联合类型、attributes等。

        

laravel的RESTful实现:RESTful资源控制器-通过laravel 学习RESTful

RESTful 资源控制器

资源控制器让你可以轻松地创建与资源相关的 RESTful 控制器.Laravel 的资源路由将典型的「CURD (增删改查)」路由分配给具有单行代码的控制器。例如,你希望创建一个控制器来处理保存 "照片" 应用的所有 HTTP 请求。使用 Artisan 命令 make:controller ,我们可以快速创建这样一个控制器:

php artisan make:controller PhotoController --resource

                

laravel-admin安装使用

laravel-admin是一个超级棒的PHP后台框架,只用写极其少量的代码,就可以开发后台功能,不用写方法,不用创建与修改模板,开发速度是其它框架的N倍。堪称用最少的时间构建出功能完善的管理后台!!!

安装方法:

一.可参考(https://github.com/w3yyb/laravel-admin-skeleton,使用laravel 6)…

        

谈谈PHP中的匿名函数与闭包

<?php
//匿名函数,说白了就是“没有名字的函数”,不多说。给一段代码可能更为明白:
//例一,定义匿名函数并调用
$str='world';
$func=function ($str) {
    echo 'hello '.$str;
};
$func($str);// 输出 hello world


//例二,定义匿名函数,用use 引入变量并调用
$str='world';
$func=function () use ($str) {
    echo 'hello '.$str;
};
$func();//输出 hello world


 //例三
//在函数中把匿名函数返回,并且调用它
function getPrintStrFunc()
{
    $func = function ($str) {