Laravel is awesome, but personally I don’t appreciate their documentation as it seems always “beginner orientated”.
They trend make simple things automagically happen, without let you knowing how it works.
They you get into trouble when you need advanced functionality.
Say, you get this boilerplate when typing php artisan make:job TestJob
:
<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; class TestJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public function __construct() { // } /** * Execute the job. * * @return void */ public function handle() { // } }
So, what actually are ShouldQueue
, Dispatchable
, InteractsWithQueue
, Queueable
, SerializesModels
?
Documentation won’t tell you, even if you read the API Reference, you have little idea what they means.