Skip to content

Latest commit

 

History

History
135 lines (73 loc) · 4.93 KB

commands.md

File metadata and controls

135 lines (73 loc) · 4.93 KB

Zhvillimi i Komandave për Artisan

Hyrje

Krahas komandave të ofruara me Artisan, mund të ndërtoni komandat tuaja të personalizuara për të thjeshtësuar veprime në aplikacione. Direktoria standarte për të ruajtur komandat është app/commands, por mund të përdorni çdo direktori që dëshironi, për aq kohës sa është në skemën e vetëngarkimit në composer.json.

Ndërtimi i një Komande

Gjenerimi i Klasës

Për të krijuar një komandë tuajën, përdorni komandën Artisan command:make, e cila gjeneron skeletin e klasës:

Gjenero një Klasë për Komandën

php artisan command:make FooCommand

Klasa e komandës do të ruhet në direktorinë app/commands, por mund edhe të përcaktoni direktorinë ose namespace:

php artisan command:make FooCommand --path=app/classes --namespace=Classes

Shkrimi i Komandës

Pasi ta keni gjeneruar klasën e komandës, duhet të plotësoni tiparet name dhe description të klasës, që respektivisht vendosin emrin dhe përshkrimin e komandës, dhe do shfaqen në terminal kur të përdorni komandën list.

Metoda fire do të thërritet kur komanda të ekzekutohet. Logjika e komandës mund të futet atje.

Argumentat & Opsionet

Metodat getArguments dhe getOptions janë vendi ku përcaktoni argumentat dhe opsionet që komanda merr. Të dyja metodat duhet të kthejnë një vektor me komanda të përshkruara nga një listë me opsione.

Kur përcaktoni argumentat, vektori përkufizohet si më poshtë:

array($name, $mode, $description, $defaultValue)

Argumenti mode mund të jetë: InputArgument::REQUIRED ose InputArgument::OPTIONAL, për të vendosur nëse argumenti është i detyrueshëm (REQUIRED) ose opsional (OPTIONAL).

Kur përcaktoni opsionet, vektori përkufizohet si më poshtë:

array($name, $shortcut, $mode, $description, $defaultValue)

Argumenti mode mund të jetë: InputOption::VALUE_REQUIRED, InputOption::VALUE_OPTIONAL, InputOption::VALUE_IS_ARRAY, InputOption::VALUE_NONE, për të vendosur nëse opsioni është i detyrueshëm (VALUE_REQUIRED), opsional (VALUE_OPTIONAL), vektor (VALUE_IS_ARRAY) apo si çelës (VALUE_NONE).

VALUE_IS_ARRAY përcakton që opsioni mund të përdoret disa herë kur thërritet komanda:

php artisan foo --option=bar --option=baz

VALUE_NONE përcakton që opsioni mund të përdoret si çelës.

php artisan foo --option

Marrja e Vlerave të Argumentave dhe Opsioneve

Kur komanda ekzekutohet, do t'ju duhet të aksesoni vlerat e argumentave apo opsioneve që komanda pret. Për ta bërë këtë, mund të përdorni metodat argument dhe option:

Marrja e Vlerës së një Argumenti

$value = $this->argument('name');

Marrja e Vlerave të të Gjithë Argumentave

$arguments = $this->argument();

Marrja e Vlerës së një Opsioni

$value = $this->option('name');

Marrja e Vlerave të të Gjitha Opsioneve

$options = $this->option();

Shfaqja e Informacioneve në Terminal

Për të shfaqur informacione në terminal, mund të përdorni metodat info, comment, question dhe error. Të gjitha metodat printojnë me ngjyra ANSI.

Shfaqja e Informacioneve

$this->info('Shfaqe ne ekran');

Shfaqja e një Mesazhi Gabimi

$this->error('Ndodhi nje gabim!');

Pyetjet

Gjithashtu mund të bëni pyetje me metodat ask dhe confirm të cilat plotësohen në terminal:

Bërja e Pyetjes

$name = $this->ask('Si e keni emrin?');

Pyetje për Mesazhe Sekrete

$password = $this->secret('Cili eshte fjalekalimi?');

Pyetja për Konfirmim

if ($this->confirm('Doni të vazhdoni? [po|jo]'))
{
	//
}

Mund edhe të përcaktoni një vlerë bazë për metodën confirm, që duhet të jetë true ose false:

$this->confirm($question, true);

Regjistrimi i Komandave

Pasi ta keni mbaruar komandën, duhet ta regjistroni me Artisan që të bëhet e disponueshme. Kjo zakonisht kryhet në skedarin app/start/artisan.php. Brenda atij skedari duhet të përdorni metodën Artisan::add për ta regjistruar komandën:

Regjistrimi i Komandës me Artisan

Artisan::add(new CustomCommand);

Nëse komanda është regjistruar në Mbajtësin IoC, mund të përdorni metodën Artisan::resolve për ta bërë të disponueshëm tek Artisan:

Regjistrimi i Komandës që Ndodhet në Mbajtësin IoC

Artisan::resolve('binding.name');

Thërritja e Komandave të Tjera

Ndonjëherë mund t'ju duhet të thërrisni komanda të tjera prej komandës tuaj. Mund ta bëni duke përdorur metodën call:

Thërritja e një Komande Tjetër

$this->call('command.name', array('argument' => 'foo', '--option' => 'bar'));