A Yii keretrendszer marketingje szerint a legjobb választás Web 2.0 alkalmazásokhoz, amit nagy részben a widget rendszerének köszönhet. Ezzel olyan újrafelhasználható részegységeket készíthetünk, amelyek csökkentik a felhasználói felületek fejlesztési idejét és javítják a kód karbantarthatóságát.
http://yiituts.hu/tartalom/widget-keszites-alapjai
Sunday, April 21, 2013
Thursday, April 11, 2013
[Yiituts] NetBeans IDE beállítása Yii fejlesztéshez
A korábbi fejlesztőkörnyezet kialakításáról szóló cikkem végén utaltam arra, hogy szükséges lesz egy IDE beszerzése és mivel a múlt héten végre a NetBeans IDE is kapott támogatást a Yii keretrendszerhez egy plugin formájában, úgy gondolom jó alternatíva lehet.
http://yiituts.hu/tartalom/netbeans-ide-beallitasa-yii-fejleszteshez
http://yiituts.hu/tartalom/netbeans-ide-beallitasa-yii-fejleszteshez
Friday, March 22, 2013
Magyar Yii Tutorial oldal
Nemreg indult a magyar nyelvu YiiTuts.hu oldal.
A Yiituts ötlete még 2012 év elején született, amikor a saját Yii alapú CMS rendszerem fejlesztése során összegyűlt tapasztalatokat szerettem volna megosztani cikkek/tutorialok formájában. Tovább gondolva rájöttem, hogy jó lenne egy kisebb közösségi funkciókkal rendelkező, magyar Yii fejlesztőket összegyűjtő oldal létrehozása. A "yiiframework.hu" domain sajnos már foglalt volt, így összeállt az oldal fő profiljára utaló Yiituts elnevezés.
Wednesday, February 29, 2012
Az Art-Work.hu története (Murányi S.)
Az Art-Work (http://art-work.hu) története 2007-ben kezdődött el, amikor egy szakdolgozat témájaként jött létre. Mivel én magam is szeretek fotózni, így nem csak a szakdolgozat viszonylag hamar kikerült a netre (deviantart, stockexpert ihletésére). Reklámozni akkoriban csak iwiw-en reklámoztam, illetve készült pár száz szórólap, amit pár városban művészeti iskolákban szórtunk ki.
2007-2009 -ig három verziót élt meg az oldal. A verzió váltás okai a szakmai fejlődésem volt elsősorban.
Az első nagyobb lépés a 2009-ben PRADO-ra váltás volt, amikor már némi web2 is bekerült az oldalba, és mégis csak egy összeszedettebb rendszer volt, mint az addigiak. A PRADO-t nagyon szerettem, mert jó volt használni, megvoltak a megfelelő dolgok, nem kellett semmiben feltalálni a spanyol viaszt.
2009-2011-ig sajnos nem nagyon volt foglalkozva az oldallal az akkori munkahelyem miatt, ezért a felhasználói bázis szép lassan el is felejtette az oldalt. Így az addig összegyűlt 1000 felhasználó és 8000 kép ott maradt.
2011 végén, munkahely váltás után lett szabadidőm ismét, és az akkor már általam használt Yii-ben gondoltam, hogy újra írom az oldalt.
Így az már működik és ismét zajlik az élet :)
A Yii-re azért váltottam PRADO-ról, mert ugyan az MVC nagyon új volt a PRADO felfogásával szemben, ám sebességben olyan szakadék tátongott a kettő között, hogy egyértelmű volt a váltás. Megnyugtató volt számomra, hogy a Yii egyik fejlesztője a PRADO volt alapítója, így egyértelmű volt, hogy minőségi keretrendszer ez is.
Yii-ben kihasználok mindent, amit lehet, de azért pár dolog, aminek nem tetszik a működése, azt inkább magam készítem. Ilyen például az assetek kezelése. Nem szimpatikus, hogy egy mappában random dir-be kerülnek az assetek, és ha kiviszem production-be az alkalmazást, akkor új dir-ek generálódnak. Inkább én belinkelem magamnak, ami éppen kell. Remélem ezt valamikor átalakítják.
Nem szoktam használni a grid-et például, inkább saját foreach ciklust használok, mert felesleges extra lépcsőként tekintek erre a lehetőségre.
Kiegészítettem a rendszert egy saját DataType osztállyal és annak leszármazottjaival, mellyel igyekszem a PHP laza típus kezelését kivédeni. AJAX kommunikációnál és minden klienstől REQUEST-ben érkező adatnál kialakítottam egy DTO (Data Transfer Object) rendszert, ahol előre definiált adatok közlekednek az objektumok között, nem csak feltöltöm a model attributes property-jét a POST-ból érkező adattal. Így pl, mivel külön class-ban van mondjuk egy form-tól várt mezők, jól látható, hogy mi az, és csak az, amit a klienstől várunk. Nagyjából a CFormModel is ezt oldja meg (ha jól tudom), próbáltam is használatát, de kevésbé volt szimpatikus, mint a saját megoldásom.
Ha elakadok, sokszor segít a Yii fórumban keresgélés, de a stackoverflow-n is nagyon sok Yii-s problémára találok megoldást.
Amit viszont örömmel használok a Yii alap lehetőségeiből és letölthető extension-jaiból: EAjaxUpload, urlManager, YiiMail, I18N
Amit még fontosnak tartok megemlíteni, mert sokat könnyít a fejlesztésen, az az, hogy az I18N modult kiegészítettem egy wrapper osztállyal, amit ugyanúgy kell használni, mint a Yii által adott default tool-t, annyi különbséggel, hogy nem kell magunknak belerakni az új fordítandó szavakat az adott dictionary php-ba, hanem magától belerakja, ha még nincs benne, illetve a file-t is létrehozza, ha még nincs. Ez a felfogás a PRADO-ból jött, mert ott is nagyon tetszett, hogy ezt megcsinálja helyettem. Ezt a Yii fórumon meg is osztottam természetesen.
Jelenleg a UNIT tesztek írását készítem, ahol azért néha rájövök, hogy nem teljesen sikerült minden részt tesztelhetőre készíteni. Ezért is alakítottam ki a DTO környzetet például.
-- írta Murányi Sándor
2007-2009 -ig három verziót élt meg az oldal. A verzió váltás okai a szakmai fejlődésem volt elsősorban.
Az első nagyobb lépés a 2009-ben PRADO-ra váltás volt, amikor már némi web2 is bekerült az oldalba, és mégis csak egy összeszedettebb rendszer volt, mint az addigiak. A PRADO-t nagyon szerettem, mert jó volt használni, megvoltak a megfelelő dolgok, nem kellett semmiben feltalálni a spanyol viaszt.
2009-2011-ig sajnos nem nagyon volt foglalkozva az oldallal az akkori munkahelyem miatt, ezért a felhasználói bázis szép lassan el is felejtette az oldalt. Így az addig összegyűlt 1000 felhasználó és 8000 kép ott maradt.
2011 végén, munkahely váltás után lett szabadidőm ismét, és az akkor már általam használt Yii-ben gondoltam, hogy újra írom az oldalt.
Így az már működik és ismét zajlik az élet :)
A Yii-re azért váltottam PRADO-ról, mert ugyan az MVC nagyon új volt a PRADO felfogásával szemben, ám sebességben olyan szakadék tátongott a kettő között, hogy egyértelmű volt a váltás. Megnyugtató volt számomra, hogy a Yii egyik fejlesztője a PRADO volt alapítója, így egyértelmű volt, hogy minőségi keretrendszer ez is.
Yii-ben kihasználok mindent, amit lehet, de azért pár dolog, aminek nem tetszik a működése, azt inkább magam készítem. Ilyen például az assetek kezelése. Nem szimpatikus, hogy egy mappában random dir-be kerülnek az assetek, és ha kiviszem production-be az alkalmazást, akkor új dir-ek generálódnak. Inkább én belinkelem magamnak, ami éppen kell. Remélem ezt valamikor átalakítják.
Nem szoktam használni a grid-et például, inkább saját foreach ciklust használok, mert felesleges extra lépcsőként tekintek erre a lehetőségre.
Kiegészítettem a rendszert egy saját DataType osztállyal és annak leszármazottjaival, mellyel igyekszem a PHP laza típus kezelését kivédeni. AJAX kommunikációnál és minden klienstől REQUEST-ben érkező adatnál kialakítottam egy DTO (Data Transfer Object) rendszert, ahol előre definiált adatok közlekednek az objektumok között, nem csak feltöltöm a model attributes property-jét a POST-ból érkező adattal. Így pl, mivel külön class-ban van mondjuk egy form-tól várt mezők, jól látható, hogy mi az, és csak az, amit a klienstől várunk. Nagyjából a CFormModel is ezt oldja meg (ha jól tudom), próbáltam is használatát, de kevésbé volt szimpatikus, mint a saját megoldásom.
Ha elakadok, sokszor segít a Yii fórumban keresgélés, de a stackoverflow-n is nagyon sok Yii-s problémára találok megoldást.
Amit viszont örömmel használok a Yii alap lehetőségeiből és letölthető extension-jaiból: EAjaxUpload, urlManager, YiiMail, I18N
Amit még fontosnak tartok megemlíteni, mert sokat könnyít a fejlesztésen, az az, hogy az I18N modult kiegészítettem egy wrapper osztállyal, amit ugyanúgy kell használni, mint a Yii által adott default tool-t, annyi különbséggel, hogy nem kell magunknak belerakni az új fordítandó szavakat az adott dictionary php-ba, hanem magától belerakja, ha még nincs benne, illetve a file-t is létrehozza, ha még nincs. Ez a felfogás a PRADO-ból jött, mert ott is nagyon tetszett, hogy ezt megcsinálja helyettem. Ezt a Yii fórumon meg is osztottam természetesen.
Jelenleg a UNIT tesztek írását készítem, ahol azért néha rájövök, hogy nem teljesen sikerült minden részt tesztelhetőre készíteni. Ezért is alakítottam ki a DTO környzetet például.
-- írta Murányi Sándor
Thursday, November 3, 2011
Yii 1.1 Application Development Cookbook (összefoglaló magyarul)
Sajnos irói válságban szenvedek, de szerencsére egyedül vagyok ezzel. Gregnek szerencsére sikerült egy nagyon jó kis összefoglalót írnia a weblabor.hu hasábjain a nemrég megjelent Yii 1.1 Application Development Cookbook-ról:
"Nemrég jelent meg a Packt kiadónál a Yii 1.1 Application Development Cookbook, nyolcvan hasznos recepttel a Yii Frameworkhöz. A szerző az egyik Yii core developer, Alexander Makarov.
A könyv véleményem szerint inkább a Yii Framework alapjaival már tisztában lévő fejlesztőknek szól, viszont ők sokat tanulhatnak belőle. Minden fejezet bővelkedik kódpéldákban, és mindennapi problémákra kínál megoldásokat.
..."
Az egész cikket ide klikkolva lehet megtekinteni.
"Nemrég jelent meg a Packt kiadónál a Yii 1.1 Application Development Cookbook, nyolcvan hasznos recepttel a Yii Frameworkhöz. A szerző az egyik Yii core developer, Alexander Makarov.
A könyv véleményem szerint inkább a Yii Framework alapjaival már tisztában lévő fejlesztőknek szól, viszont ők sokat tanulhatnak belőle. Minden fejezet bővelkedik kódpéldákban, és mindennapi problémákra kínál megoldásokat.
..."
Az egész cikket ide klikkolva lehet megtekinteni.
Sunday, August 28, 2011
Megjelent Nagy Gusztáv - Web Programozás (alapismeretek) című könyve
Egyre többen probálkoznak Web programozással tizenéves gyerekektől egyetemen végzett diákokon át lelkes amatőrökig. A számítógépek, programozási nyelvek, mobil telefonok már már hihetetlen iramú fejlődése naprakész ismerettséget követel minden (webes) programozásra vetemedő egyéntől. De egy biztos. Megéri.
Nagy Gusztáv megpróbálja egy könyvben összefoglalni mi is az a Web- és Web Programozás. Az alap HTML elemektől kezdve, a CSS gyönyörein át a különböző szerverbeállítások fondorlatosságaiba merülhetünk bele, fűszerezve persze szerver oldali programokkal (PHP). Továbbá megtudjuk mi is az a CMS, és megismerhetjük a Keretrendszer fogalmát is (megemlíti a Yii-t is, így került ebbe a blogba ;) )
A könyvet nyugodt szívvel ajánlhatjuk olyanoknak akik még csak most ismerkednek a webes programozással, de olyanoknak is, akik régebben kezdték és szeretnék felfrissjteni/felújitani tudásukat.
Jó könyv, csak így tovább Gusztáv!
Link a könyvhöz.
Nagy Gusztáv megpróbálja egy könyvben összefoglalni mi is az a Web- és Web Programozás. Az alap HTML elemektől kezdve, a CSS gyönyörein át a különböző szerverbeállítások fondorlatosságaiba merülhetünk bele, fűszerezve persze szerver oldali programokkal (PHP). Továbbá megtudjuk mi is az a CMS, és megismerhetjük a Keretrendszer fogalmát is (megemlíti a Yii-t is, így került ebbe a blogba ;) )
A könyvet nyugodt szívvel ajánlhatjuk olyanoknak akik még csak most ismerkednek a webes programozással, de olyanoknak is, akik régebben kezdték és szeretnék felfrissjteni/felújitani tudásukat.
Jó könyv, csak így tovább Gusztáv!
Link a könyvhöz.
Monday, August 1, 2011
Gittegylet meg a Yii - avagy Yiiki 2.0 (4. rész)
Ebben a negyedik és egyben utolsó részben kicsit kifényesítjük a programunkat, olyan finomságokat rakunk majd bele, mint MarkDown-parser (markdown értelmező), WIKI editor és a legvégén pedig megnézzük hogyan lehet a Git (illetve a Github) segítségével forrásunkat publikussá tenni.
Fejlesztéseink közben gyakran fordul elő olyan helyzet, hogy valaki (lehet, hogy mi magunk) valahol máshol (pl. egy másik keretrendszer alatt) már megoldotta a felmerülő problémát és szeretnénk a kódot újra felhasználni. Erre Yii barátunk többféle lehetőséget ad. Használhatunk, kifejezetten Yii-nek szánt kiterjeszések -et (extensions: http://www.yiiframework.com/extensions/ ) vagy teljesen Yii-től független csomagokat. Ilyen például a ZendFramework-be beépített RSS kezelő rendszer. Nekünk jelenleg erre nincs szükségünk, de ha valakit bővebben érdekel, az itten járhat utána: http://www.yiiframework.com/doc/cookbook/20/.
MarkDown
Szerencsénkre Yii már az 1.0-ás verzió óta rendelkezik egy ún. MarkDown osztállyal (CMarkdown) és egy MarkDown widget-tel amit a megjelenítésre fogunk használni. Nyissuk is meg a Nézet file-unkat és módosítsuk:
/protected/views/page/view.php
... és ennyi, a megjelenítés kész is van. A CMarkDown osztályról és használatáról itt lehet bővebben olvasni: http://www.yiiframework.com/doc/api/1.1/CMarkdown
Zii
A Zii nem más mint a hivatalos, Yii fejlesztők által támogatott extension- azaz kiterjesztés könyvtár. Ez együtt érkezik magával a Yii rendszerrel tehát nem kell semmi mást beállítanunk vagy installálnunk. Ezzel szemben van egy YiiExt nem hivatalos kiterjesztés-könyvtár amit innen http://code.google.com/p/yiiext/ lehet elérni. Innen fogjuk mi a markItUp szövegszerkesztőt beállítani, ami szépen megy a már előre felkészített MarkDown tipusú Oldalainkhoz.
Töltsük is le a markit_xx.zip file-t (http://code.google.com/p/yiiext/downloads/detail?name=markitup_1.1.zip&can=2&q=), tömörítsük ki és másoljuk be a legutolsó markitup/ mappát a protected/extensions/ alá. Ha ezzel megvagyunk egyszerűen csak hívjuk meg a widget-et a protected/views/page/_form.php file-ban és állítsuk be a paramétereket:
Ha mindent jól csináltunk akkor valami ilyesmit kell, hogy lássunk ha meglátogatjuk a http://localhost/yiiki2/index.php?r=page/create oldalt:
Maga a WIKI szerkesztőnk már egész jól néz ki, de milyen jó lenne ha a title meg a body feliratok magyarul jelennének meg. Ezt nagyon egyszerűen a Page modell osztályunk attributeLabels() függvényével tehetjük meg.
Github
A Git forráskezelő előretörését nagy mértékben segítette a Github oldal, ami nem más mint egy online kód tároló, ahová teljesen ingyé feltehetjük a kódunkat. Egyébként már a Google is támogatja a Git-et a Mercury meg az SVN mellett. Ha eddig nem tettük volna, az első cikk alapján commit-oljuk a változásainkat, és készítsünk egy fiókot a Github oldalon. Ha ezzel megvagyunk, akkor készítsünk egy new repository-t. Miután beállítottuk az alap paramétereket (csak a név kötelező), az új oldalon csak kövessük végig az utasításokat az Existing Git Repo? rész alatt. Ha minden igaz, valahogy most így nézünk ki:
A programot egyébként itt is meg lehet találni: https://github.com/imehesz/Yiiki2 és a a Github egyik erőssége az ún. fork-olás ami azt jelenti, hogy ha pl. találunk egy hibát a kódban, fork-olhatjuk az eredetit, kijavíthatjuk és jelezhetjük a program készítőjének egy pull-request-tel azaz pull kéréssel, hogy a kód javítva lett, és ha jónak találja, akkor frissítheti az eredeti kódot.
Hát ennyi. Remelém aki végig követte a sorozatot annak sikerült valamit tanulni belőle. Indítottam egy fórum bejegyzést annak akinek segítségre van szüksége, nem ígérem, hogy azonnal de megpróbálok mindenkinek válaszolni. (Akinek meg van kedve segíteni a válaszadásban annak előre is köszönöm)
Fejlesztéseink közben gyakran fordul elő olyan helyzet, hogy valaki (lehet, hogy mi magunk) valahol máshol (pl. egy másik keretrendszer alatt) már megoldotta a felmerülő problémát és szeretnénk a kódot újra felhasználni. Erre Yii barátunk többféle lehetőséget ad. Használhatunk, kifejezetten Yii-nek szánt kiterjeszések -et (extensions: http://www.yiiframework.com/extensions/ ) vagy teljesen Yii-től független csomagokat. Ilyen például a ZendFramework-be beépített RSS kezelő rendszer. Nekünk jelenleg erre nincs szükségünk, de ha valakit bővebben érdekel, az itten járhat utána: http://www.yiiframework.com/doc/cookbook/20/.
MarkDown
Szerencsénkre Yii már az 1.0-ás verzió óta rendelkezik egy ún. MarkDown osztállyal (CMarkdown) és egy MarkDown widget-tel amit a megjelenítésre fogunk használni. Nyissuk is meg a Nézet file-unkat és módosítsuk:
/protected/views/page/view.php
... és ennyi, a megjelenítés kész is van. A CMarkDown osztályról és használatáról itt lehet bővebben olvasni: http://www.yiiframework.com/doc/api/1.1/CMarkdown
Zii
A Zii nem más mint a hivatalos, Yii fejlesztők által támogatott extension- azaz kiterjesztés könyvtár. Ez együtt érkezik magával a Yii rendszerrel tehát nem kell semmi mást beállítanunk vagy installálnunk. Ezzel szemben van egy YiiExt nem hivatalos kiterjesztés-könyvtár amit innen http://code.google.com/p/yiiext/ lehet elérni. Innen fogjuk mi a markItUp szövegszerkesztőt beállítani, ami szépen megy a már előre felkészített MarkDown tipusú Oldalainkhoz.
Töltsük is le a markit_xx.zip file-t (http://code.google.com/p/yiiext/downloads/detail?name=markitup_1.1.zip&can=2&q=), tömörítsük ki és másoljuk be a legutolsó markitup/ mappát a protected/extensions/ alá. Ha ezzel megvagyunk egyszerűen csak hívjuk meg a widget-et a protected/views/page/_form.php file-ban és állítsuk be a paramétereket:
Ha mindent jól csináltunk akkor valami ilyesmit kell, hogy lássunk ha meglátogatjuk a http://localhost/yiiki2/index.php?r=page/create oldalt:
Maga a WIKI szerkesztőnk már egész jól néz ki, de milyen jó lenne ha a title meg a body feliratok magyarul jelennének meg. Ezt nagyon egyszerűen a Page modell osztályunk attributeLabels() függvényével tehetjük meg.
Github
A Git forráskezelő előretörését nagy mértékben segítette a Github oldal, ami nem más mint egy online kód tároló, ahová teljesen ingyé feltehetjük a kódunkat. Egyébként már a Google is támogatja a Git-et a Mercury meg az SVN mellett. Ha eddig nem tettük volna, az első cikk alapján commit-oljuk a változásainkat, és készítsünk egy fiókot a Github oldalon. Ha ezzel megvagyunk, akkor készítsünk egy new repository-t. Miután beállítottuk az alap paramétereket (csak a név kötelező), az új oldalon csak kövessük végig az utasításokat az Existing Git Repo? rész alatt. Ha minden igaz, valahogy most így nézünk ki:
A programot egyébként itt is meg lehet találni: https://github.com/imehesz/Yiiki2 és a a Github egyik erőssége az ún. fork-olás ami azt jelenti, hogy ha pl. találunk egy hibát a kódban, fork-olhatjuk az eredetit, kijavíthatjuk és jelezhetjük a program készítőjének egy pull-request-tel azaz pull kéréssel, hogy a kód javítva lett, és ha jónak találja, akkor frissítheti az eredeti kódot.
Hát ennyi. Remelém aki végig követte a sorozatot annak sikerült valamit tanulni belőle. Indítottam egy fórum bejegyzést annak akinek segítségre van szüksége, nem ígérem, hogy azonnal de megpróbálok mindenkinek válaszolni. (Akinek meg van kedve segíteni a válaszadásban annak előre is köszönöm)
Subscribe to:
Posts (Atom)

