PHPPamokos.lt


13. Artisan komandos ir savo komandų sukūrimas

Kalbėdami apie Laravel, negalime pamiršti apie pagalbininką Artisan. Su juo jau susipažinome ir panaudojome keliems darbams atlikti, bet šioje pamokoje pasigilinkime ir pažiūrėkime, kokias galimybes jis dar turi.

1. make

Čia yra visa serija komandų, tiesiog kažkokio resurso generavimui, kad nereikėtų rašyti kodo rankomis. Tarp komandų yra make:controller, make:model, make:request, make:middleware, make:migration ir kt.

2. up - down

Labai paprastos dvi komandos, kurios įjungia arba išjungia taip vadinamą "maintenance mode". To reikia, jei norite daryti kažkokius pakeitimus ir laikinai sustabdyti projekto veikimą. Įvykdžius komandą php artisan down ir užkrovus puslapį naršyklėje, matysite tokį tekstą: "Upgrade is in the progress. Be right back and better! Please be patient". Atitinkamai komanda artisan up vėl grąžins viską į normalią būseną.

3. env

Irgi labai paprasta - komanda tiesiog parodo, kokioje aplinkoje dirbate, tiksliau kaip ta aplinka vadinasi: local, staging, production ar kt.
Pvz, galite gauti tokį atsakymą: "Current application environment: local"

4. serve

Šios komandos gali prireikti, jei norite tiesiog išbandyti Laravel, bet neturite tam web-serverio ir nenorite jo diegti. Po komandos php artisan serve užeikite naršyklėje į http://localhost:8000 ir greičiausiai pamatysite startinį puslapį.

5. cache:clear

Labai paprasta - tiesiog išvalo visą kešavimą, jei toks buvo naudotas - nesvarbu, kur buvo saugoma: ar failuose, ar duomenų bazėje, ar dar kitur. Taip pat su cache yra ir daugiau komandų bet php artisan cache:clear yra turbūt dažniausiai naudojama.

6. tinker

Čia yra komanda, su kuria tampa daug įdomiau. "php artisan tinker" leidžia paleisti Laravel komandas su PHP kalba tiesiai iš komandinės eilutės. Sakykime, jūs norite paleisti kažkokią Eloquent užklausą bet nenorite tam kurti atskiro puslapio per Routes. Įrašote php artisan tinker, ir tada rašote pvz var_dump(Book::all()); - ir jums tiesiog komandinėje eilutėje išves PHP objektą kaip rezultatą.

7. list

Jei norite pamatyti visų Artisan komandų sąrašą, komandinėje eilutėje tiesiog įrašykite php artisan list.

 

Štai toks populiaresnių komandų sąrašas. Dabar apžvelkime dar dvi Artisan galimybes.

Kuriame savo Artisan komandą

Puiki Artisan savybė yra galimybė jį išplėsti savo komandomis, ir gan nesunkiai. Sakykime, kad mums reikia komandos, kuri sukuria naują administratoriaus vartotoją mūsų svetainei. Kaip tai padaryti?

1. Sukuriame naujos komandos griaučius
php artisan make:console AdminUser

AdminUser šiuo atveju yra mūsų naujos komandos pavadinimas - savo komandą vadinkite savo nuožiūra. Ši komanda sugeneruos naują failą kataloge app/Console/Commands.

2. Aprašome mūsų komandą

Sukurtos klasės atributai yra $signature ir $description - juos reikia užpildyti, kad apie mūsų komandą būtų pateikiama informacija sąraše, paleidžiant komandą php artisan list.

3. Nurodome pačios komandos veiksmus

Pati komanda bus įvykdyti kaip PHP kodas, patalpintas funkcijoje handle(). Būtent ten ir įrašome savo kodą - jei grįžtume prie pavyzdžio apie naujo vartotojo kūrimą, tai gali būti paprasta eilutė:

User::create(array('username' => 'Admin', 'password' => Hash::make('safepassword1234')));
4. Registruojame komandą, kad ji veiktų

Faile app/Console/Kernel.php turime į masyvą $commands įrašyti vieną papildomą eilutę, kuri padarys mūsų komandą aktyvią:

\App\Console\Commands\AdminUser:class

Štai taip gan paprastai galime sukurti savo komandą. Ir čia dar ne viskas - komandai galima paduoti parametrus (čia tie, kur komandinėje eilutėje eina per tarpą arba per -- prefiksą), klausinėti konkrečių parametrų iš vartotojo ir išvesti informacinius pranešimus. Apie tai galite plačiau pasiskaityti Laravel dokumentacijoje.

 

Kviečiame Artisan komandą iš Laravel

Pravartu žinoti ir apie dar vieną galimybę, kuriai sunku sugalvoti konkretų pritaikymą, bet visgi: galima Artisan komandas kviesti tiesiai iš Laravel PHP kodo.

Artisan::call('admin:user');

Mano manymu, toks kvietimas nelabai turi prasmės, nes patogiau komandą kviesti iš komandinės eilutės, nebent shared-hostinge neturėtumėte priėjimo prie komandinės eilutės, bet tada greičiausiai išvis Artisan nelabai naudotumėte, o tokias pagalbines funkcijas įdėtumėte į patį Laravel kodą.

Štai toks jis yra - Laravel pagalbininkas Artisan. Mažas, bet galingas ir lengvai plečiamas.



(c) 2015-2018. Visais klausimais kreipkitės povilas@laraveldaily.com