Laravel

优化 PHP 和 Laravel 以提高 Web 应用的性能

 

Laravel 有很多东西。但是快不是其中之一。让我们学习一些优化技巧,以加快运行速度!

自从 Laravel 诞生以来,没有一个 PHP 开发人员不受她的影响。他们是喜欢 Laravel 提供的快速开发的初级或中级开发人员,或者是由于市场压力而被迫学习 Laravel 的高级开发人员。

不管怎样,不可否认的是,Laravel 已经振兴了 PHP 生态系统(我确定,如果没有 Laravel,早就离开了 PHP 世界了)。

            

Laravel-admin发布2.0BETA版本

大家好,最近花了不少时间在 laravel-admin 的 2.0 版本的开发工作上面,目前开发工作基本完成,今天发布 BETA 版本,有兴趣的同学们可以尝试安装使用,如有遇到问题,可通过 Github issue 反馈。

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 

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)…

        

模仿laravel,使用反射来实现自动依赖注入

在看laravel源码的时候,在Container.php中有个build的方法,主要就是用了反射来进行实例化
参照它的写法,自己写了一个小例子
这里写的比较简单,就是一个依赖参数,正常应该普通参数也要放进去
类似在person类里的weight,address
public function __construct(Bag bag,weight, $address){}

 

<?php
/*
 * 目的:通过反射,自动找依赖注入的类。
 * 在实例的时候,里面的$bag, $book自动去查找,并且实例化
 * */

class Book{
    public function name(){
        return '语文书';
    }
}

class Bag{
    public $book;
        

Laravel 将数据表中的数据导出,并生成seed文件

 

laravel 开发过程中,我们为了将自己本地数据库中的数据导出给别人用有两种方法:最普通的也就是将自己的数据库用命令行或者图形操作工具导出成 .sql 的文件给对方使用 ,另外一种就是 laravel 提供的数据库 seed 文件,来看看怎么使用 seed :

安装isseed

composer require "orangehill/iseed": "2.1"

然后把 seed 添加到 provider 中:

  1. 'providers' => [
  2. ...
  3. Orangehill\Iseed\IseedServiceProvider::class,
  4. ],

到此 iseed 已经安装好了,下面来看看 iseed 的用法:

假如要导出某张表的数据,命令为:

php artisan