×ðÁú¿­Ê±

LaravelÖÐÔõÑù²âÊÔÍýÏëʹÃü

laravelÊÇÒ»¿îÊ¢ÐеÄphp¿ò¼Ü£¬ÆÕ±éÓ¦ÓÃÓÚwebÓ¦ÓóÌÐòµÄ¿ª·¢ÖС£ÔÚlaravelÖУ¬ÍýÏëʹÃü£¨scheduled task£©±»³ÆΪʹÃüµ÷Àí£¨task scheduling£©£¬ËüÄÜÈÃÎÒÃÇʵÏÖ×Ô¶¯»¯µÄʹÃüÖ´ÐУ¬ÀýÈçÔÚÌìÌìij¸öÀο¿Ê±¼äÖ´ÐÐijÏîʹÃü¡£¿ÉÊÇ£¬ÔÚÏÖʵӦÓÃÖУ¬ÎÒÃÇÔõÑù²âÊÔÍýÏëʹÃüÄØ £¿±¾ÎĽ«ÏòÄãÏÈÈÝlaravelÖÐÔõÑù²âÊÔÍýÏëʹÃü¡£

ʲôÊÇÍýÏëʹÃü

ÍýÏëʹÃüÊÇÖ¸ÔÚÌض¨µÄʱ¼ä»ò³ÌÐò״̬ÏÂ×Ô¶¯´¥·¢µÄʹÃü¡ £¿ÉÒÔ×ÊÖúÎÒÃÇʵÏÖÐí¶à×Ô¶¯»¯µÄ²Ù×÷£¬ÀýÈçÌìÌì׼ʱ·¢ËÍÓʼþ£¬±¸·ÝÊý¾Ý¿â£¬¸üлº´æµÈ²Ù×÷¡£ÔÚLaravelÖÐÍýÏëʹÃüÐèҪͨ¹ýÆô¶¯Ò»¸öÀú³ÌÀ´Íê³É£¬LaravelÌṩÁËArtisanÏÂÁîÐй¤¾ßÀ´ÖÎÀíÕâЩÀú³Ì¡£

LaravelÖеÄʹÃüµ÷Àí

LaravelÖеÄʹÃüµ÷ÀíÆ÷¿ÉÒÔÈÃÎÒÃÇÀû±ãµØ½ç˵ÍýÏëʹÃü£¬²¢×Ô¶¯Ö´ÐÐʹÃü¡£ÎÒÃÇÖ»ÐèÒª½ç˵ʹÃüµÄÖ´ÐÐʱ¼ä¡¢Ö´ÐÐƵÂÊÒÔ¼°ÒªÖ´ÐеÄÏÂÁî¾Í¿ÉÒÔÁË¡£LaravelÌṩÁ˺ÜÊÇÀû±ãµÄʹÃüµ÷Àí¹¦Ð§£¬Í¨¹ýŲÓÃ->cron()ÒªÁì¿ÉÒÔʵÏÖÿ·ÖÖÓ¡¢Ã¿Ð¡Ê±¡¢ÌìÌìÒÔ¼°Ã¿ÖܵÄʹÃüµ÷Àí£¬Ê¾Àý´úÂëÈçÏ£º

$schedule->command('send:remindemail')
         ->daily()
         ->timezone('Asia/Shanghai')
         ->description('send remind email to user');

µÇ¼ºó¸´ÖÆ

ÒÔÉÏ´úÂëÌåÏÖ£¬ÌìÌìÔÚÉϺ£Ê±¼äµÄ0µãÖ´ÐÐ send:remindemail ÏÂÁ²¢ÔÚʹÃüÐÎòÖÐÌí¼ÓÁË˵Ã÷ÎÄ×Ö¡£

LaravelÖеÄʹÃüµ÷Àí²âÊÔ

LaravelÖÐÌṩÁËÒ»ÖÖ×Ô¶¯»¯µÄʹÃüµ÷Àí²âÊÔÒªÁ죬ÎÒÃÇ¿ÉÒÔʹÓÃMockeryÄ£ÄâʹÃüµÄÖ´ÐУ¬È»ºóͨ¹ýLaravel×Ô´øµÄ²âÊÔ¹¤¾ßPHPUnitÀ´ÊµÏÖ²âÊÔ¡£ÊµÏÖ°ì·¨ÈçÏ£º

°ì·¨1£ºÉèÖòâÊÔÇéÐÎ

ÎÒÃÇÐèÒªÔÚ²âÊÔÇ°ÏÈÉèÖòâÊÔÇéÐΣ¬ÓÉÓÚ²âÊÔÇéÐÎÐèҪģÄâÉú²úÇéÐεÄ׼ʱʹÃü¡£ÔÚ .env ÎļþÖÐÉèÖà APP_ENV Ϊ testing £¬ÌåÏÖÄ¿½ñÊDzâÊÔÇéÐΣº

APP_ENV=testing

µÇ¼ºó¸´ÖÆ

°ì·¨2£º½¨Éè²âÊÔÀà

ÎÒÃÇÐèÒª½¨ÉèÒ»¸ö²âÊÔÀàÀ´²âÊÔʹÃüµ÷ÀíÆ÷µÄÊÂÇé¡£²âÊÔÀà¿ÉÒÔÀ©Õ¹ Illuminate\Foundation\Testing\TestCase À࣬ʾÀý´úÂëÈçÏ£º

namespace Tests;

use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
{
    use CreatesApplication;
}

µÇ¼ºó¸´ÖÆ

°ì·¨3£º½ç˵²âÊÔÒªÁì

ÎÒÃÇ¿ÉÒÔÔÚ²âÊÔÀàÖнç˵²âÊÔÒªÁ죬ÏÈʹÓà Mockery Ä£ÄâÒªÖ´ÐеÄÏÂÁȻºóÖ´ÐÐʹÃüµ÷ÀíÆ÷µÄ½ç˵ʹÃü¡£ÔÚʹÃüÖ´ÐÐÍê±Ïºó£¬¿ÉÒÔʹÓà PHPUnit ÌṩµÄһϵÁжÏÑÔÒªÁìÀ´ÅжÏʹÃüÊÇ·ñ±»×¼È·Ö´ÐС£Ê¾Àý´úÂëÈçÏ£º

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 ÏÂÁ²¢ÉèÖøÃÏÂÁîºÃ±È»á±»Ö´ÐÐÒ»´Î¡£È»ºó£¬ÎÒÃÇͨ¹ý Artisan ³ÌÐòŲÓÃÁËʹÃüµ÷ÀíÆ÷£¬²¢ÆÚ´ýʹÃüÖ´ÐÐÍê³É¡£×îºó£¬ÎÒÃÇ¿ÉÒÔʹÓÃPHPUnitÌṩµÄÖÖÖÖ¶ÏÑÔÒªÁìÀ´ÅжÏÏÂÁîÖ´ÐÐÊÇ·ñÀֳɡ£

°ì·¨4£ºÔËÐвâÊÔ

µ±ÎÒÃÇÍê³É½ç˵²âÊÔÓÃÀýºó£¬¾Í¿ÉÒÔʹÓÃPHPUnitµÄÏÂÁîÀ´ÔËÐвâÊÔÁË£º

./vendor/bin/phpunit

µÇ¼ºó¸´ÖÆ

ÔÚ²âÊÔÀú³ÌÖУ¬ÎÒÃÇ¿ÉÒÔ×èµ²µ½Ê¹Ãüµ÷ÀíÆ÷Ö´ÐÐʹÃüµÄÀú³Ì£¬²¢Í¨¹ý¶ÏÑÔÀ´ÅжÏʹÃüÊÇ·ñÕý³£Ö´ÐС£

×ܽá

ÔÚ±¾ÆªÎÄÕÂÖУ¬ÎÒÃǼòÆÓÏÈÈÝÁËLaravelÖеÄʹÃüµ÷ÀíÆ÷ÒÔ¼°ÔõÑù¶ÔʹÃüµ÷ÀíÆ÷¾ÙÐе¥Î»²âÊÔ¡£ÍýÏëʹÃü¿ÉÒÔ×ÊÖúÎÒÃÇʵÏÖÐí¶à×Ô¶¯»¯²Ù×÷£¬²¢ÈÃ×ðÁú¿­Ê±Ó¦ÓÃÔ½·¢¸ßЧºÍ±ã½Ý¡£Í¬Ê±£¬ÓÅÒìµÄ²âÊÔÒ²¿ÉÒÔÈÃÎÒÃÇÔ½·¢¶¨ÐĵØʹÓÃÍýÏëʹÃü£¬°ü¹ÜʹÃüÄܹ»Õý³£Ö´ÐС£

ÒÔÉϾÍÊÇLaravelÖÐÔõÑù²âÊÔÍýÏëʹÃüµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿