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文件,通过版本管理更直观的看到修改者修改内容;但是缺点:你的同事也在修改这个文件,合并的时候就思密达;要求不高其实就是可以适用工具的结构合并和数据库迁移
其实目的就是为了加快开发速度 ,


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


这不特意换的电脑;而且环境重装了 ,难受;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 文件


如果没有.dump文件
php artisan migrate


2:队列批处理


以前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


修改.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());
}
}


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;


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




设置队列处理失败




其他更多命令可以看看 队列 |《Laravel 8 中文文档 8.x》| Laravel China 社区8.x文动态
4,Blade 组件档 ;对于这个我根本灭有了解过laravel blade


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