Tasks
Contents
The Basics
Laravel's command-line tool is called Artisan. Artisan can be used to run "tasks" such as migrations, cronjobs, unit-tests, or anything that you want.
Creating & Running Tasks
To create a task create a new class in your application/tasks directory. The class name should be suffixed with "_Task", and should at least have a "run" method, like this:
Creating a task class:
class Notify_Task { public function run($arguments) { // Do awesome notifying… } }
Now you can call the "run" method of your task via the command-line. You can even pass arguments:
Calling a task from the command line:
php artisan notify
Calling a task and passing arguments:
php artisan notify taylor
Calling a task from your application:
Command::run(array('notify'));
Calling a task from your application with arguments:
Command::run(array('notify', 'taylor'));
Remember, you can call specific methods on your task, so, let's add an "urgent" method to the notify task:
Adding a method to the task:
class Notify_Task { public function run($arguments) { // Do awesome notifying… } public function urgent($arguments) { // This is urgent! } }
Now we can call our "urgent" method:
Calling a specific method on a task:
php artisan notify:urgent
Bundle Tasks
To create a task for your bundle just prefix the bundle name to the class name of your task. So, if your bundle was named "admin", a task might look like this:
Creating a task class that belongs to a bundle:
class Admin_Generate_Task { public function run($arguments) { // Generate the admin! } }
To run your task just use the usual Laravel double-colon syntax to indicate the bundle:
Running a task belonging to a bundle:
php artisan admin::generate
Running a specific method on a task belonging to a bundle:
php artisan admin::generate:list
CLI Options
Setting the Laravel environment:
php artisan foo --env=local
Setting the default database connection:
php artisan foo --database=sqlite