Post on 14-Feb-2016
description
LARAVEL AND ARTISAN CLI
Sayed AhmedComputer Engineering, BUET, BangladeshMSc. Computer Science, U of Manitoba, Canadahttp://sayed.justetc.net
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
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 screen for the command migrate php artisan migrate --env=local
Run 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
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
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',
array('argument' => 'foo', '--option' => 'bar'));
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 A Command That Is In The
IoC Container
REFERENCE http://laravel.com/docs/artisan https://github.com/JeffreyWay/Laravel-4
-Generators http://net.tutsplus.com/tutorials/tools-a
nd-tips/pro-workflow-in-laravel-and-sublime-text/