Laravel? ? ?????? ??? ?? ???? ?? ?? PHP ????????. Laravel??? ??? ??? ?? ??????? ????, ?? ?? ?? ??? ??? ??? ???? ? ?? ??? ???? ? ????. ??? ?? ?? ??????? ??? ??? ??? ??????? ? ???? Laravel?? ??? ??? ????? ??? ?????.
??? ???? ??????
??? ??? ?? ???? ???? ??? ?? ???? ???? ??? ????. ?? ????? ??? ???, ?????? ??, ?? ???? ?? ?? ?? ???? ??? ???? ? ??? ? ? ????. Laravel?? ??? ????? ????? ???? ???. Laravel? ??? ????? ???? ?? Artisan ??? ??? ?????.
Laravel? ?? ????
Laravel? ?? ????? ???? ??? ??? ?? ???? ???? ??? ??? ? ????. ?? ??, ?? ?? ? ??? ??? ??? ???? ???. ???? ->cron()
???? ???? ?? ??? ?? ???? ??? ????, ??, ???, ??, ?? ??? ????? ? ????. : ->cron()
方法可以實(shí)現(xiàn)每分鐘、每小時(shí)、每天以及每周的任務(wù)調(diào)度,示例代碼如下:
$schedule->command('send:remindemail') ?????????->daily() ?????????->timezone('Asia/Shanghai') ?????????->description('send?remind?email?to?user');
以上代碼表示,每天在上海時(shí)間的0點(diǎn)執(zhí)行 send:remindemail
命令,并在任務(wù)描述中添加了說(shuō)明文字。
Laravel中的任務(wù)調(diào)度測(cè)試
Laravel中提供了一種自動(dòng)化的任務(wù)調(diào)度測(cè)試方法,我們可以使用Mockery模擬任務(wù)的執(zhí)行,然后通過Laravel自帶的測(cè)試工具PHPUnit來(lái)實(shí)現(xiàn)測(cè)試。實(shí)現(xiàn)步驟如下:
步驟1:設(shè)置測(cè)試環(huán)境
我們需要在測(cè)試前先設(shè)置測(cè)試環(huán)境,因?yàn)闇y(cè)試環(huán)境需要模擬生產(chǎn)環(huán)境的定時(shí)任務(wù)。在 .env
文件中設(shè)置 APP_ENV
為 testing
,表示當(dāng)前是測(cè)試環(huán)境:
APP_ENV=testing
步驟2:創(chuàng)建測(cè)試類
我們需要?jiǎng)?chuàng)建一個(gè)測(cè)試類來(lái)測(cè)試任務(wù)調(diào)度器的工作。測(cè)試類可以擴(kuò)展 IlluminateFoundationTestingTestCase
類,示例代碼如下:
namespace?Tests; use?Illuminate\Foundation\Testing\TestCase?as?BaseTestCase; abstract?class?TestCase?extends?BaseTestCase { ????use?CreatesApplication; }
步驟3:定義測(cè)試方法
我們可以在測(cè)試類中定義測(cè)試方法,先使用 Mockery
模擬要執(zhí)行的命令,然后執(zhí)行任務(wù)調(diào)度器的定義任務(wù)。在任務(wù)執(zhí)行完畢后,可以使用 PHPUnit 提供的一系列斷言方法來(lái)判斷任務(wù)是否被正確執(zhí)行。示例代碼如下:
namespace?Tests\Feature; use?App\Console\Commands\SendRemindEmail; use?Tests\TestCase; use?Mockery; use?Illuminate\Support\Facades\Artisan; class?TaskSchedulerTest?extends?TestCase { ????public?function?testTaskScheduler() ????{ ????????//?Arrange ????????$remindEmailCommandMock?=?Mockery::mock(SendRemindEmail::class); ????????$remindEmailCommandMock->shouldReceive('handle')->once(); ????????$this->app->instance(SendRemindEmail::class,?$remindEmailCommandMock); ????????//?Act ????????Artisan::call('schedule:run'); ????????//?Assert ????????//?add?your?assertions?here ????} }
在上述示例代碼中,我們首先模擬了 SendRemindEmail
命令,并設(shè)置該命令比如會(huì)被執(zhí)行一次。然后,我們通過 Artisan
./vendor/bin/phpunit? ??? ??? ???? ?? 0??
send:remindemail
??? ???? ?? ??? ?? ???? ???? ?????. Laravel? ?? ???? ???Laravel? Mockery? ???? ?? ??? ?????? ?? Laravel? ?? ??? ??? PHPUnit? ?? ???? ??? ? ????. ?? ??? ??? ????. 1??: ??? ?? ?? ??? ??? ???? ??? ??? ??? ??????? ?? ??? ??? ?? ??? ??? ???? ???. .env
???? APP_ENV
? testing
?? ???? ?? ??? ???? ?????. rrreee
2??: ??? ??? ??? ?????? ????? ??? ?????? ??? ???? ???? ???. ??? ????IlluminateFoundationTestingTestCase
???? ??? ? ????. ?? ??? ??? ????. ??rrreee??3??: ??? ??? ????????? ????? ??? ???? ??? ? ????. ?? Mockery
??????? ??? ??? ?? ????? ?? ??? ??? ?????. ??? ??? ? PHPUnit?? ???? ??? ??? ???? ???? ??? ???? ?????? ??? ? ????. ?? ??? ??? ????. ??rrreee??? ?? ????? ?? SendRemindEmail
??? ??????? ?? ??? ? ?? ????? ??????. ?? ?? Artisan
????? ?? ?? ????? ???? ?? ??? ??? ??? ?????. ????? PHPUnit?? ???? ??? ??? ???? ???? ?? ??? ????? ??? ? ????. ????4??: ??? ????????? ?? ??? ??? PHPUnit ??? ???? ???? ??? ? ????. ??rrreee????? ???? ?? ??? ???? ?? ????? ????? ??? ? ????. Assert? ???? ??? ????? ????? ?????. ????Summary???? ?? ???? Laravel? ?? ????? ?? ????? ?? ??? ??? ???? ??????. ??? ??? ?? ???? ??? ???? ??????? ?? ????? ???? ??? ? ??? ? ? ????. ???, ?? ???? ?? ??? ??? ? ??? ?? ??? ? ?? ??? ????? ??? ? ??? ??? ?? ????. ??? ??? Laravel?? ??? ??? ????? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

TOWORKEFCITIVE WITHPIVOTTBLESINLARAVEL, FIRDSCESSPIVOTDATAUSINGWITHPIVOT () ORWITHTIMESTAMPS (), thenupdateentrieswithupdatee XistingPivot (), ManagerElationshipsviadetach () andsync (), andusecustompivotmodelswheneded.1.usewithpivot () toincludescificcol

Laravel ?? ???? 4 ?? ?? ??? ?? ?? ???? ???? ???? ? ????. 1. ?? ????? ???? ?? ??? ??? ??? ?? ???? ??? ???? ?????? ??? ??? ????? ?? ??? ?? ???? ??? ??????. 2. ???? ?? ????? ??????? ?????, n 1 ??? ???, ?? ??? ????, ??? ??, ??? ?? ? ?? ? ?? ??, ?? ??? ????. 3. ?? ?? ?? ? ?? ???? ??? ??? ?? ?? ??? ? ??? ???? ???? ???? ???? ???? ? ?? ????? ??????. 4. ??? ?? ? ???? ??? ??? ??? ?? ???? ????? ?? ?????? ????? ?? ???? ? ??? ?? ??? ????? ??????.

Laravel ????? ?????? ??? ???? ???? RefreshDatabase ??, ??? ??? ??, ?? ??? ?? ? ??? ?? ?? ??? ?????. 1. ?? ??? ???? ? ???? ??? ??????? ??????? ???? ?? ?????? ??? ???? ?????????. 2. ?? ??? ???? ??? ???? ??? ?? ???? ?? ?? ???? ?????. 3. DatabasEtransactionStrait? ???? ??? ?? ??? ????? ? ?????????. 4. ???? ???? ???? ??????? ???? ??? ? ?? ? ??????? ?? ??????. ??? ??? ???? ???? ???? ???? ?? ??? ? ??? ??? ?? ???? ?????.

Laravelsanctum? SPA ?? ??? ??????? ?? ???? ?? API ??? ??? ?? ??? ?? OAUTH2 ??? ??? ????? ?????. 1. Sanctum? ?? ?? ??? ????, ??? ???? ?????. 2. Passport? ?? ?? ? ????? ?? ??? ?? ??? ????? ????, ?? ???? ?????? ?????. 3. ?? ?? ? ??? ? ???? ?? ?? ??? ????. 4. ?? ??? ?????? ??? ???? ??? ?? ??? ??? ???? ?????. ??? ? ???? ?? ??? ?? OAUTH2 ??? ???? ??? ???????.

Laravel? ?? ???? ?????? ???? ??? ??????. 1. DB :: Transaction () ???? ???? ??? ???? ???? ?? ?? ?? ?? ?? ??; 2. ?? ? ????? ???? ?? ???? ?? ????? ????? ?? ???? ??? ???? ???? ??? ?? ????. 3.?? ??? ??? ??? ????? ??? begintransaction (), commit () ? rollback ()? ?? ?? ?? ??? ?????. 4. ?? ???? ??? ?? ????, ??? ?? ??, ??? ?? ? ?? ?? ??? ?????. ????? ?? ?? ??? ???? ?? ???? ??? ? ??? ???? ? ????.

Laravel?? ??? ??? ??? ???? ?? ???? ??? Route () ??? ??? ???? ????. Route () ??? ??? ?? ??? ???? ??? ???? ???? ?? ?? ???? ???? ????. 1. Route ( 'user.profile', [ 'id'=> 1])? ?? ???? ????? ?? ??? ?? ??? ?????. 2. ?? ?? ?? ? ? ?? ? ?????? ??? Route ( 'user.post.show', [ 'id'=> 1, 'postId'=> 10]? ?? ??? ??? ??? ????. 3. ??? ????? ?? ???? ???? ?? ?? ? ? ????. 4. ??? ?? ??? ???? ??? Route ( 'user.post',

Laravel?? HTTP ?? ? ??? ???? ??? ?? ???, ?? ?? ? ?? ???? ??? ????? ????. 1. ?? ???? ?? ? ? ?? ????? ?? ?? ????? ???? input () ?? ?? ???? ???? ??? ?? ??? ?? validate () ?? ?? ?? ???? ?? ? ? ????. 2. Return Response? ???,??, JSON, ?? ?? ? ??? ?? ?? ? ???? ??? ?????. 3. ?? ???? ?? ? ?? ?? () ??? ? Store ()? ???? ??? ???????. ????? ?? ?? ?? ? ??? ?????? ???? ??? ??????? ??? ? ????.

Laravel? ?? ??? ?? ?? ??? ?? ?? ??? ???? ??? ??????. ?? ???? ?? ??? ????? ? ???? I/O ?? ? ?? ?? ??? ???? ???? ??? ?? ? ????. 1. ?? ????? ?? ? ? ???????? ??? ????? ?? ???? ??????. 2. ??? ? ??? ?? ? ? PhPartisAnconfig? ?? ???????. 3. ?? ??? ??? ??? ???? ?? ?? ?? ???? ???? ????. 4. ?? ?? ??? ???? ?? ??? ??? .env ??? ???? ?? ???????.
