Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Laravel and artisan cli
1. LARAVEL AND ARTISAN CLI
Sayed Ahmed
Computer Engineering, BUET, Bangladesh
MSc. Computer Science, U of Manitoba, Canada
http://sayed.justetc.net
2. TOPICS
Introduction
Usage
Common artisan commands
New artisan commands also come with
packages
Laravel 4 generators package will be discussed
How to develop new artisan commands
3. SHOULD YOU USE THEM
In general, it’s better to use
Will make your development faster
However, you may also consider the aspect
Just the command is there, do you really need to use
it
Just because, you can generate something, are you doing
for that or there is a need (business or technical)
Is there time for it?
Justify the need, justify the time assigned for the
project, justify budget, justify usefulness, also what is
most important right now
Use for the benefit; do not use just to use it
But you need to learn it all
4. WHAT IS ARTISAN
A command-line interface
Comes with Laravel
Provides helpful commands
That facilitates rapid application development
It is driven by the powerful Symfony Console
component
But Artisan is not that difficult
If you have to use it, You have to know it for sure,
But knowing is not that difficult. You can just read
and know
So relax, you will see
5. LARAVEL - USAGE
php artisan list
List all available commands
php artisan help migrate
Help screen for the command migrate
php artisan migrate --env=local
Run the migrate on local development platform
php artisan –version
Artisan version
6. ARTISAN COMMANDS CAN BE EXTENSION/PACKAGE SPECIFIC
Install this package, you will get more commands
https://github.com/JeffreyWay/Laravel-4-Generators
New generators as we get from the package
generate:model
generate:controller
generate:seed
generate:view
generate:migration
generate:resource
generate:scaffold
generate:form
generate:test
generate:pivot
13. DEVELOPING NEW ARTISAN COMMANDS
By default the commands are in the
app/commands folder
You can store your commands in other
locations as you want
However, the location has to autoload by
composer.json settings
14. DEVELOPING NEW ARTISAN COMMANDS
php artisan command:make FooCommand
Create a new command class
php artisan command:make FooCommand --
path=app/classes --namespace=Classes
Generate command class in a user provided path
php artisan command:make AssignUsers --
command=users:assign
Specify the term to be used from command line
php artisan command:make AssignUsers --
bench="vendor/package“
If you need to create the command for a package
15. INSIDE THE CLASS FOR THE COMMAND
Name and description properties
Provide them for help
Fire method will be triggered
The getArguments and getOptions
methods are to accept the command line
parameters for the command to be created
How options are passed to a command
php artisan foo --option=bar --option=baz
16. RETRIEVING OPTIONS AND ARGUMENTS
Retrieving options and arguments from
command line
To be used inside your command class
And then you can process as you want
$value = $this->option('name');
$arguments = $this->argument();
17. CALLING OTHER COMMANDS
Calling other commands inside from your
commands
$this->call('command:name', array('argument' =>
'foo', '--option' => 'bar'));
18. MESSAGE TO THE USER
After the intended operation, you may want
to display something to the user
$this->info('Display this on the screen');
$this->error('Something went wrong!');
19. ASKING THE USER FOR INFO
Asking the user for info in between of the
intended operation
$name = $this->ask('What is your name?');
$password = $this->secret('What is the
password?');
$this->confirm($question, true);
20. REGISTERING COMMANDS
• Once you are done writing your commands
Done in the app/start/artisan.php
Use Artisan::add to register the method
You need to register it
Artisan::add(new CustomCommand);
Artisan::resolve('binding.name');
Artisan::resolve('binding.name');
Registering A Command That Is In The IoC
Container