laravel 8学习笔记

blank

laravel 8学习笔记

菜,一如既往的菜,一些解决问题难点部分都没贴出来,可能都要私聊才会有回复。

laravel不知不觉更新到了8.x然后;也不再是5.6 ,5.8常用版本了,我们一直在学习 ~ 从未停止脚步,作为一名技术人员:见的人越来越杂了, 可是却从未碰见真正的江湖 。 由于下载了那些模拟器把win docker环境搞崩了,windows 装docker还是要开启虚拟化的。还好有另外一台电脑,人心险恶,包括软件也是。往往你认为稳定的环境就像在安装一个软件而崩溃的。

本次会一起手写一个交易所(不上链)包括DAPP,冷链,第三方,热链等知识。不多时间定在一个月。持续更新,遇到问题会。学laravel是为了生存,也是热爱,反正没事做。 话不多说。 进入正题:

1,laravel 本次更新;模型工厂类:

1.1 :模型工厂类 :Eloquent 模型工厂 已完全重写为基于类的工厂,并有完美的关联支持。 例如 Laravel 中的 UserFactory 是这样写的:

1.2: 怎么创建 :适用 --model 属性 进行模型关联

php artisan make:model Article
$ php artisan make:factory ArticleFactory --model Article

1.3:迁移压缩;压缩迁移的改进;为什么会有压缩迁移?

我们开发中常常会遇到一个这样的问题:某些系统的数据库不进行对外开放链接这一措施 ;那该咋办 ? 对就是数据库迁移文件;而且还可以有不用传输sql文件,通过版本管理更直观的看到修改者修改内容;但是缺点:你的同事也在修改这个文件,合并的时候就思密达;要求不高其实就是可以适用工具的结构合并和数据库迁移

其实目的就是为了加快开发速度 ,

blankblank
php artisan schema:dump  // 转储当前数据库模式并删除所有现有的迁移… 
php artisan schema:dump --prune
blankblank

这不特意换的电脑;而且环境重装了 ,难受;mysqldump ?这就是mysql备份的指令了

把mysql 加入环境变量~

先运行创建命令行:$
php artisan migration install
php artisan make:migration create_table_article --create=aricle
php artisan make:migration update_table_article --table=aricle
--table 和 --create 选项也可用于确定表的名称以及是否在迁移中创建新的数据表。这些选项用指定的迁移模板预先填充指定的数据表:然后可以看到生成了数据迁移文件;
php artisan schema:dump

// 上面範例为转储但不删除原有迁移文件,下面範例为转储且删除原有迁移文件
php artisan schema:dump --prune

这里如果生成了 这些.dump

php artisan migrate 先执行 dump 文件

blankblank

如果没有.dump文件

php artisan migrate 
 
blankblank

2:队列批处理

blankblank

以前5.6,5.8的任务处理为 单处理,反正我接触到的是这样的

$this->dispatch();//单任务处理
php artisan make:job Test1Job
php artisan make:job Test2Job

然后就生成队列的失败的数据库了,可以考虑用redis,

1.生成队列数据库表与失败队列数据库表
本实例中是用群发email的实例,如果模仿,请配置自己的邮件服务
php artisan queue:table

php artisan queue:failed-table

php artisan migrate 
blankblank

修改.env队列配置部分,并且重载配置

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120

此处贴出test1job代码

<?php

namespace AppJobs;

use AppModelsUser;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;

class Test1Job implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $user;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        //
        $this->user = $user;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // Process uploaded podcast...
        dd(collect($this->user)->toArray());
    }

}
blankblank

3:然后看看 任务调度

先准备好数据库;

php artisan queue:batches-table
php artisan migrate

方法部分代码

public function index(){
    $batch = Bus::batch([
        new Test1Job(User::find(1)),
        new Test2Job(User::find(2)),
    ])->then(function (Batch $batch){

    })->catch(function (Batch $batch,Throwable $e){

    })->finally(function (Batch $batch){

    })->dispatch();
    dump($batch->id);exit;
blankblank
哦豁完蛋

这里不过也是由于没有引入batchtable trait 导致的

blankblank
blankblank

设置队列处理失败

blankblank

blankblank

其他更多命令可以看看 队列 |《Laravel 8 中文文档 8.x》| Laravel China 社区8.x文动态

4,Blade 组件档 ;对于这个我根本灭有了解过laravel blade

blankblank

5,事件监听器优化 (有点像thinkphp的 hook 钩子 可以叫浩克,或者 ’狗子‘,这是我对这类的简称,监听,狗子耳朵最灵敏了 ,不然怎么会有狗仔队一说)

未完待续。。。断断续续更新 。

What do you think?

Written by marketer

blank

Laravel为什么这么受欢迎?

blank

七个步骤,轻松制定一份完整的营销计划方案