Jump to content
php.lv forumi
l27

Laravel ģenerātori

Recommended Posts

Kādu ģenerātoru ieteiktu izmantot modeļu un CRUD ģenerēšanai?

Edited by l27

Share this post


Link to post
Share on other sites

Domā ko tādu caur cmd kā 

php artisan make:model

?

 

Ja jā, turpat varēsi atrast arī priekš CRUD, noteikti.

 

Kaut ko atradu, bet integrētu risinājumu neatradu. Izskatās, ka Yii tālāk ticis.

Share this post


Link to post
Share on other sites

kā izskatās no DB tabulas uzģenerēts modelis?

Laukus, kuri ir vai kuri nav "mass assignable", paredzēt nevar. Tad tas ģenerators redz, ka tabulā ir foreign keys, un saliek modelī ->hasMany(), belongsToMany() relāciju funkcijas?

Share this post


Link to post
Share on other sites

Ir relācijas, pat caur pivot tabulām, pēc default mass assignment ir visi/neviens, pašam ar rociņām tad jāpatīra/jāpieliek klāt. Vel ide-helper saliks phpdoc model ar propertijiem/relācijām.

Share this post


Link to post
Share on other sites

Neesmu vēl Laravel experts, bet kam tev sarežģīto CRUD ?

php artisan make:migration create_tests_table --create=tests

zem migrations saveidot tabulu kā tev pašam tīk un pēc tam

php artisan migrate
php artisan make:model Test

un lieta darīta. Neredzu neko sarežģītu, man liekas, ka ar Yii CRUD ir ilgāka ņemšanās.

 

Atceramies, ka pēc noklusējuma, Laravel eloquent tabulu nosaukumus ņem daudzskaitlī pēc modeļa, respektīvi, Modelis Test lietos datubāzi tests. Tāpat, piemēram, modelis Gallery lietos tabulu galleries.

Share this post


Link to post
Share on other sites

Es parasti daru tā -

php artisan make:migration blabla

 

Sadefinēju tabulas kolonnas, utt, tad izveidoju modeļa klasi:
php artisan make:model App\BlaBlaModel

Uzsetoju tabulu protected $table = 'blabla' (ar nosacījumu, ja tabulas nosaukums atsķiras no modeļa un nevar tikt automātiski atpazīts)

 

Tad izmantojot ide-helperi ( https://github.com/barryvdh/laravel-ide-helper) lai saģenerētu @property ierakstu kolonnām.

php artisan ide-helper:model App\BlaBlaModel

 

Attiecīgi, tagad taisot new BlablaModel; ide saprot kādas kolonnas ir pieejamas, utt.

Share this post


Link to post
Share on other sites

Tomēr priekš Yii2 ir labāki ģenerātori. Patreiz tie tiek aktīvi uzlaboti un papildināti.

Pats izmantoju https://github.com/schmunk42/yii2-giiant, kaut gan ofociālais https://github.com/yiisoft/yii2-gii arī daudz labāks, kā bija Yii1.

 

Problēma ir, ka šie ģenerātori palikuši diezgan sarežģīti.

 

Nākas gan izvedot pielāgotus  templatus konkrētajai tēmai, jo orģinālie man nepatīk.

Edited by l27

Share this post


Link to post
Share on other sites

Šobrīd arī veidoju vienu projektiņu.

 

Par tiem ģeneratoriem, nu nez... biju gaidījis, ka būs kaut kas no CRUD, bet nekā. Tik daudz nav. Atliek vien pašam stutēt. Lieku SB Admin 2 un bakstu iekšā tabulas. Man pēc Laravel docs likās, ka tur būs vismaz admin panelis ar lietotāju un privilēģiju menedžmentu, bet izrādās, ka tur tādu vienkāršu tabuliņu uztaisa un pieliek ACL lietiņas. Tas, protams, ļoti palīdz, jo no nulles sākot, nav jāmācās tas viss no dokumentācijas pareizi salikt. Bet nu tālāk jau izskatās, ka jāmeklē kāds gatavāks risinājums no malas, vai arī jāņem paša veidotie vecie projekti, kur viss admins jau ir sataisīts un jāadaptē uz jaunajām tehnoloģijām. Ir dažas lietas, kuras būšu iemācījies no Laravel.

 

To ide-helper skatījos, bet noslinkoju. Ok, uzmetu branchu, notīrīju savus modeļus un salīdzinājumam apskatos, ko ģenerē ide-helper.

 

Tagad skatos, ka pie tā model generator ir links uz gatavu CRUD. Saucās DickCrud. Kā lai es klientam pasaku, ka viņa CMS būs DickAdmin? Nevieš nopietnību tas viss. Bet laikam jau tā šodien jādzīvo, jāizmanto runasveids "How I created fucking awesome CMS using DickAdmin", jeb "Kā es izveidoju dirsā superīgu CMS ar PimpisAdmin". Nez. Kad es augu, man solīja, ka tāda valoda nozīmē labākajā gadījumā šofera karjeru, bet izskatās, ka viņi meloja. Un tas PimpisAdmin ir tas, ko man vajag un būtu stulbi taisīt pašam. Varētu, bet tas nav pareizi. Būs vien jāpārkāpj pāri saviem principiem un jālieto. Eh... tas ir tāpat kā sēdēt bārā ar cilvēkiem, kas visumā sakarīgi, taču pie galda skaļi atraugājas un zviedz par truliem jokiem.

 

Forši, ka ir tie artisan skripti. Pirms 10 gadiem es vienkārši rakstīju bash skriptiņus, kur iebaro DDL un neliels perlisms no tā izveido modeļa skeletu ar lauku nosaukumiem. Nebija ideāli, bet toties nebija gari jāraksta. Tagad var šitā, ar gataviem. Nezinu gan, vai es rakstīšu artisan skriptus. Iemācīšos rakstīt artisan skriptus un rīt jau būs jāmācās partisan, parīt piratian. No otras puses, nav jau grūti, tikai jāpārvar pretestība. Ražotāji jau arī tā dara - uztaisa konveijeru, visu noslīpē, pēc gada visu pārtaisa priekš nākošā modeļa. Nu un kas, ka iepriekšējā konfigurācija bija ideāla? Ir laiks jaunam ideālam. Nav laika gari domāt.

 

Yii2 bija vairāk, kad skatījos. Tur tomēr bija vismaz CRUD admin un jau uzreiz varēja sākt darboties. Neteikšu, ka man viņš ļoti patika, taču fakts kā tāds, ka ne tik ļoti apjūsmotos projektos ir daudz lietu, kuras ir, ir gatavas un strādā.

Share this post


Link to post
Share on other sites

Vienīgais kas pietrūkst no Yii2 ir iebūvētais GridView.  Pārējo CRUD funkcionalitāti manuprāt var ļoti ātri sataisīt Laravēlā no 0, nekā labot un pielāgot kautko saģenerētu (Kā tas bij Yii gadījumā) 

 

Share this post


Link to post
Share on other sites

Pārējo CRUD funkcionalitāti manuprāt var ļoti ātri sataisīt Laravēlā no 0

Bet fakts paliek, ka pašam jātaisa.

Share this post


Link to post
Share on other sites

Ja nu kas, diezgan daudz par šo tēmu var atrast laracastos, ja meklē "admin". Piemēram, mazliet uz austrumiem cilvēks uztaisījis SleepingOwlAdmin: https://github.com/LaravelRUS/SleepingOwlAdmin(izskatās tas pats Bootstrap Admin LTE + standarta lietas). Bet nu nav vismaz pasaule no jauna jāatklāj. Nav arī rupji nosaukumi.

Edited by Mr.Key

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...