220 likes | 520 Views
Sayed Ahmed Computer Engineering, BUET, Bangladesh MSc. Computer Science, U of Manitoba, Canada http://sayed.justetc.net. Laravel and Artisan CLI. Introduction Usage Common artisan commands New artisan commands also come with packages Laravel 4 generators package will be discussed
E N D
Sayed Ahmed Computer Engineering, BUET, Bangladesh MSc. Computer Science, U of Manitoba, Canada http://sayed.justetc.net Laravel and Artisan CLI
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 Topics
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 Should You Use them
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 What is Artisan
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 Laravel - Usage
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 Artisan Commands can be Extension/Package specific
Related Artisan Commands • php artisan generate:migrationcreate_posts_table • php artisan generate:migrationadd_user_id_to_posts_table Laravel-4-Generators Commands
php artisan generate:migrationcreate_posts_table --fields="title:string, body:text“ php artisan generate:migrationdestroy_posts_table php artisan generate:migrationdestroy_posts_table --fields="title:string, body:text“ Laravel-4-generators Artisan Commands
php artisan generate:migrationremove_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:testFooTest php artisan generate:pivot posts tags php artisan migrate php artisan generate:migrationcreate_posts_table --fields="title:string, description:text" php artisan generate:migrationcreate_tags_table --fields="name:string" php artisan generate:pivot posts tags Laravel-4-generators 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:makeFooCommand • Create a new command class • php artisan command:makeFooCommand --path=app/classes --namespace=Classes • Generate command class in a user provided path • php artisan command:makeAssignUsers --command=users:assign • Specify the term to be used from command line • php artisan command:makeAssignUsers --bench="vendor/package“ • If you need to create the command for a package Developing New Artisan Commands
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 Inside the class for the command
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(); Retrieving options and arguments
Calling other commands inside from your commands • $this->call('command:name', array('argument' => 'foo', '--option' => 'bar')); Calling other commands
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!'); Message to the User
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); Asking the user for info
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 Registering Commands
http://laravel.com/docs/artisan https://github.com/JeffreyWay/Laravel-4-Generators http://net.tutsplus.com/tutorials/tools-and-tips/pro-workflow-in-laravel-and-sublime-text/ Reference