konecne poriadny clanok o Yii
Názory k článku
Generovanie kódu s Yii framework
Budoucnost Yii?
celé vláknoYii ma bezesporu zajimavou koncepci a radu moc peknych vlastnosti. Ma ale vyznam jim v soucasnosti zabyvat, kdyz z komunity kolem prosakuji informace, ze bude na prelomu 2011/2012 kompletne prepsan bez zachovani zpetne kompatibility? Je vubec vhodne jej v takovem pripade nasazovat do produkcniho prostredi?
Re: Budoucnost Yii?
celé vláknoUrčite má význam sa nim zaoberať. Pretože nebudeš predsa čakať, kým vydajú nové Yii ... projekty treba robiť stále.
Žiadne hlasy z komunity nepresakujú - je to uvedené oficiálne na stránke.
Jednoducho keď vydajú nové Yii, budeš nové projekty robiť na novom.
Momentálne je zaručená podpora do konca 2012 a dovolím si tvrdiť, že bude ešte predĺžená, takže nie je sa čoho báť a určite by ma to neodrádzalo od nasadenia do produkčnej verzie.
featury?
celé vláknoNebyl by někde přehled zajímavých featur, aby člověk viděl, zda se mu to vůbec hodí?
Re: featury?
celé vláknoprehlad fíčur + čo a ako sa robí si môžeš pozrieť napríklad tu:
http://www.yiiframework.com/doc/guide/
zároveť je to sprievodca Yii.
čo urobí generátor ak prídam stĺpec do DB?
celé vláknoZdravím,
ďakujem za článok. Mám otázku. Čo sa stane ak urobím toto:
1. vygenerujem model z tabuľky
2. potom model ručne upravím
3. potom dostanem požiadavku pridať nejaké nové stĺpce do tabuľky
4. potom znovu vygenerujem model
čo sa stane? prepíše mi moje úpravy, alebo je tak inteligentný, že dokáže pridať nové vlastnosti do vygenerovaného súboru?
Re: čo urobí generátor ak prídam stĺpec do DB?
celé vláknoTakúto situáciu bohužiaľ Yii nerieši. Generátor sa ťa ale spýta, či chceš už vygenerované časti prepísať...
Riešim to tak, že keď je už veľa úprav, tak tie upravené si odložim, pregenerujem a potom "zmergeujem". Ak úprav veľa nebolo dám to všetko prepísať.
Hlavne sa snažím aby mi takáto situácia nenastala.
Re: čo urobí generátor ak prídam stĺpec do DB?
celé vláknoTo snad nemyslite vazne :-) .
uz Doctrine 1 tohle mela vyresene - generovane tridy jsou jsou tzv. Base<ModelName> a Vam pouze pokud uz ji nemate vygeneruje prazdnou <ModelName>.
Pridavani atributu do modelu je prece bezna soucast vyvoje, jestli je v tom FW takovahle bota tak mi to nestoji ani za napsani URL do prohlizece
Re: čo urobí generátor ak prídam stĺpec do DB?
celé vláknoAsi sme sa nepochopili.
Pridanie atribútov vôbec nie je problém - model sa dá jednoducho pregenerovať. Avšak ak máš už vygenerovaný celý CRUD (Controller + všetky views) a v jednej z týchto častí niečo upravíš, potom pridáš atribút a následne chceš opäť všetko pregenerovať - samozrejme narazíš na konflikt.
Doctrine ti to automaticky "mergeuje"?
Re: čo urobí generátor ak prídam stĺpec do DB?
celé vláknonie nemergeuje, prečítaj si čo písal @Michal ešte raz. Doctrine generuje BaseModel, do ktorého ty nikdy nezasahuješ, ale keď robíš nejaké úpravy tak ich robíš v potomkovi BaseModelu. takže kľudne môžeš pregenerovať BaseModel koľko krát chceš a tvoje modifikácie to nejako neovplyvní, lebo sú v potomkovi.
Re: čo urobí generátor ak prídam stĺpec do DB?
celé vláknoČítal som to. Neviem, no, ja osobne to v Yii ako problém nevidím. Je to tak navrhnuté - tak to funguje.
Sú prípady kedy ti stači dopísať políčko do views, pretože Yii si info o nových stĺpcoch automaticky naťahuje z db a sú prípady, kedy potrebuješ urobiť toho viac. ;-) Yii mi uľahčuje prácu, lebo vie generovať všetko.
Ako je to v Doctrine? Vygeneruje len model alebo i controller a views?
Re: čo urobí generátor ak prídam stĺpec do DB?
celé vláknoDoctrine 1 generuje na prani i CRUD, ma celkem dost cli prikazu na generovani:
doctrine
:build Generate code based on your schema
:build-db Creates database for current model (doctrine:create-db)
:build-filters Creates filter form classes for the current model
:build-forms Creates form classes for the current model
:build-model Creates classes for the current model
:build-schema Creates a schema from an existing database
:build-sql Creates SQL for the current model
:clean-model-files Delete all generated model classes for models which no longer exist in your YAML schema (doctrine:clean)
:create-model-tables Drop and recreate tables for specified models.
:data-dump Dumps data to the fixtures directory
:data-load Loads YAML fixture data
:delete-model-files Delete all the related auto generated files for a given model name.
:dql Execute a DQL query and view the results
:drop-db Drops database for current model
:generate-admin Generates a Doctrine admin module
:generate-migration Generate migration class
:generate-migrations-db Generate migration classes from existing database connections
:generate-migrations-diff Generate migration classes by producing a diff between your old and new schema.
:generate-migrations-models Generate migration classes from an existing set of models
:generate-module Generates a Doctrine module
:generate-module-for-route Generates a Doctrine module for a route definition
:insert-sql Inserts SQL for current model
:migrate Migrates database to current/specified version
Ja pouzivam vlastne jenom doctrine:build --all --and-load coz mi podle aktualniho databazoveho schema.yml pregeneruje BaseModel tridy (ze kterych jak kolega vyse upresnil dedim moje custom Model tridy), formulare modelu a dalsi veci.
Kompletni CRUD vygenerujes pomoci generate-module (http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03#chapter_03_see_it_in_action_in_the_browser)
(v symfony by to melo byt naprosto stejny)
Sve custom formulare delam nad modely zase podedene z vygenerovanych, takze kazdym pregenerovanim ziskam funkcnost i do nich, pouze pokud jsou sepsane tak, aby byly zamerne omezeny na konkretni pole, tak tam ty nove musim samozrejme pridat.
Doctrine jako ORM by se nemelo zabejvat generovanim cehokoli jinyho nez jsou veci ohledne DB a Modelu, coz je taky zakladni myslenka nove Doctrine 2.
Ta stara 1ka je celkem prasarna, ale funguje 100% a ma par moc peknych featur pro pristup k datum :-).
Re: Generovanie kódu s Yii framework
celé vláknoNie , pokial ja viem ten generator je "hlupy" a vzdy ked cokolvek generujes ti to natvrdo prepise... Cize da sa vyuzit len na prvotne generovanie modelu , contolllerov a views...
Re: Generovanie kódu s Yii framework
celé vlákno1. Aj si si to vyskúšal? Či len píšeš, lebo ti niekto povedal, že je hlúpy?
2. V čom teda generuješ kód?
Generátor sa ťa spýta na každý jeden súbor, ktorý už existuje - že či ho chceš prepísať (píšem to i vyššie v diskusii).
Ďalšia vec je, že ak často potrebuješ pridávať stĺpce do databázy a následne pregenerovávať kód asi niečo nebude v poriadku s návrhom, hmm?
Re: Generovanie kódu s Yii framework
celé vláknoKeby som to neskusal tak neodpisujem ;) dal som do uvodzoviek ze je hlupy, co neznamena ze je zly a tym padom plati ze sa da vyuzivat len na prvotne generovanie modelu a vsetko co si napisal je pravda...
inteligentny by mi pripadal vtedy keby pri re-generovani modelu vedel odlisit povodnu sablonu podla ktorej generuje od customizovanych metod a tym padom by ich neprepisal.
Nepridavam stlpce do tabulky casto ale sem tam to potrebujes , ale zas to nie je ziadna katastrofa a jednoducho si pridam nejake validacne pravidlo popripade label rucne a je to vyriesene...
Re: Generovanie kódu s Yii framework
celé vláknoAk generuješ cez Gii, je tam na to veľmí jednoduchý diff - bohužiaľ len na zobrazenie zmien ...
Re: Generovanie kódu s Yii framework
celé vláknoCau Drla, budes este o Yii blogovat?
Re: Generovanie kódu s Yii framework
celé vláknocau, ak bude mat den 48 hodin tak budem pokracovat :))) bohuzial je to o volnom case a ten ani nahodou nemam... aj na zajtra.sk serial zakapal po 4 castiach, tiez asi nema cas ;) mozno na buduci mesiac nieco pripravim , ale ako si mi to komentoval bolo by asi vhodnejsie to nasmerovat inym smerom ;)
gii url
celé vláknoZislo by sa dopisat, ze ku gii sa v novo vytvorenej aplikacii pristupuje cez "index.php?r=gii". Tamten zapis "/gii" funguje asi az po uprave url manazera, ak som sa dobre docital.
http://www.yiiframework.com/doc/guide/1.1/en/topics.gii
Cobolstina
celé vláknoProc je to napsane ve slovenstine, nevsim sem si ze v adrese je root.sk
To pak ctenare odradi cist .