Laravel commands and jobs -


i wondering difference between different command-like classes in laravel 5.1. far can tell laravel 5.1 has following available:

  • console commands (artisan make:console)
  • commands (artisan make:command)
    • handlers (artisan make::command --handler)
  • jobs (artisan make:job)

i have come straight 4.2 5.1 don't know happened in between 4.2 , 5.1, have been told middle 1 (just commands) not supposed used more - in when queue-able jobs became 'commands' in 5.0, laravel since decided against this, , they're in compatibility. however, i'm not 100% on point, clarification appreciated.

my specific use-case want place put self-contained 'runnable' task. example, remove files older 5 days given directory (but anything).

at first sounds console command - want able run artisan, start. may want on schedule (great, artisan schedule:run runs console commands). may want execute asynchronously code. console commands can run synchronously artisan::call(), asynchronous, (i think) queues come in, , has job.

okay have job. can add queue code, how execute artisan command (synchronously)? can create thin console command , add dispatchesjobs trait (or code therein) it, , dispatch job? job have go on queue, or can make job execute synchronously (and, ideally, output console command's output?) same question goes running on schedule - supposed create console command , add scheduler, or can make scheduler run job directly?

and finally, have 'commands' aren't console commands nor jobs. said before, people tell me these hangers-on laravel 5.0 code change (kinda) reverted. artisan make command still exists them, can't that dead. also, what's deal self handling command (the default, comes handle method) , 1 'requires' handler class (run artisan make:command --handler)? how make these execute? manually (new app\command\somecommand)->handle(); or (new app\handlers\somecommandhandler)->handle(new app\command\somecommand), or there hidden system don't know (maybe can dispatched using job/queue dispatcher)? can create 'queued' commands artisan make::command --queued, how these differ, too?

i guess question boils down following:

  • what real (semantic and functional) difference between them all?
  • what correct way 'run' them?
  • which best purposes of generally-standalone bit of code needs run, in whatever manner feel appropriate?

i found information in documentation on how use queues , create console commands, nothing on when use them or on command classes , handlers.


related not same (also, it's unanswered): laravel 5.1 commands , jobs

i see "objects" so: (i added code examples 1 of side projects)

console

things want execute command line (as mentioned example "delete files older x"). thing is, extract business logic of command.

example: console command fires command fetch images imgur. class fetchimages contains actual business logic of fetching images.

command

class contains actual logic. should able call command application app()->make(command::class)->handle().

example: command mentioned in example 1. contains logic actual api calls imgur , process returned data.

jobs

i made app laravel 5.0 jobs weren't thing then. see it, jobs commands queued , can dispatched. (as may have seen in examples, commands implement mentioned interfaces selfhandling , shouldbequeued).


i see myself experienced laravel developer changes in commands , jobs quite difficult understand.

edit: laravel docs:

the app/commands directory has been renamed app/jobs. however, not required move of commands new location, , may continue using make:command , handler:command artisan commands generate classes.

likewise, app/handlers directory has been renamed app/listeners , contains event listeners. however, not required move or rename existing command , event handlers, , may continue use handler:event command generate event handlers.

by providing backwards compatibility laravel 5.0 folder structure, may upgrade applications laravel 5.1 , upgrade events , commands new locations when convenient or team.


Comments

Popular posts from this blog

html - Firefox flex bug applied to buttons? -

html - Missing border-right in select on Firefox -

python - build a suggestions list using fuzzywuzzy -