Laravel and Artisan CLI
Download
Report
Transcript Laravel and Artisan CLI
LARAVEL AND ARTISAN CLI
Sayed Ahmed
Computer Engineering, BUET, Bangladesh
MSc. Computer Science, U of Manitoba, Canada
http://sayed.justetc.net
TOPICS
Introduction
Usage
Common
New artisan commands also come with
packages
Laravel
artisan commands
4 generators package will be discussed
How to develop new artisan commands
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
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
LARAVEL - USAGE
php artisan list
List
all available commands
php artisan help migrate
Help
php artisan migrate --env=local
Run
screen for the command migrate
the migrate on local development platform
php artisan –version
Artisan
version
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
LARAVEL-4-GENERATORS COMMANDS
Related Artisan Commands
php
artisan generate:migration create_posts_table
php artisan generate:migration
add_user_id_to_posts_table
LARAVEL-4-GENERATORS ARTISAN COMMANDS
php artisan generate:migration
create_posts_table --fields="title:string,
body:text“
php artisan generate:migration
destroy_posts_table
php artisan generate:migration
destroy_posts_table --fields="title:string,
body:text“
LARAVEL-4-GENERATORS ARTISAN COMMANDS
php artisan generate:migration
remove_completed_from_tasks_table -fields="completed:boolean“
php artisan generate:model Post
php artisan generate:view dog
php artisan generate:view index -path=views/dogs
php artisan generate:seed dogs
LARAVEL-4-GENERATORS ARTISAN COMMANDS
php artisan generate:resource dog -fields="name:string“
php artisan generate:resource dog -fields="name:string, age:integer“
php artisan serve
php artisan generate:scaffold tweet -fields="author:string, body:text“
php artisan generate:form tweet
LARAVEL-4-GENERATORS ARTISAN COMMANDS
php artisan generate:form tweet -method="update“
php artisan generate:form tweet --html="div“
# copy the output to the clipboard
php artisan generate:form tweet | pbcopy
# save it to a form partial php artisan
generate:form tweet >
app/views/posts/form.blade.php
LARAVEL-4-GENERATORS ARTISAN COMMANDS
php artisan generate:test FooTest
php artisan generate:pivot posts tags
php artisan migrate
php artisan generate:migration create_posts_table
--fields="title:string, description:text"
php artisan generate:migration create_tags_table -fields="name:string"
php artisan generate:pivot posts tags
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
DEVELOPING NEW ARTISAN COMMANDS
php artisan command:make FooCommand
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
Create a new command class
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
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
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();
CALLING OTHER COMMANDS
Calling other commands inside from your
commands
$this->call('command:name',
'foo', '--option' => 'bar'));
array('argument' =>
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!');
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);
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
Container
A Command That Is In The IoC
REFERENCE
http://laravel.com/docs/artisan
https://github.com/JeffreyWay/Laravel-4Generators
http://net.tutsplus.com/tutorials/tools-andtips/pro-workflow-in-laravel-and-sublime-text/