A Mito-ban a legtöbb fejlesztéshez Yii-t használunk, a prezentációban bemutatom azokat az egyedi módosításokat, kiegészítéseket, munkafolyamatokat, amelyek segítségével nagyobb projektekben is használható a keretrendszer.
6. MIVEL FOGLALKOZUNK
MEDIA
MEDIA
PLANNING &
PLANNING &
BUYING
BUYING
WEBSITE
WEBSITE
HOSTING &
HOSTING &
MAINTENANCE
OPERATION
UX
UX
RESEARCH
RESEARCH
& DESIGN
& DESIGN
QUALITY
QUALITY
ASSURANCE
ASSURANCE
SOCIAL MEDIA
SOCIAL MEDIA
MANAGEMENT
MANAGEMENT
STRATEGIC
STRATEGIC
CONSULTAN
CONSULTING
CY
ATL
ATL
PRODUCTION
PRODUCTION
MITO
DEVELOPMENT
DEVELOPMENT
FRONT-END &
FRONT-END &
BACK-END
BACK-END
CRM & DATA
CRM & DATA
ANALYSIS
ANALYSIS
CONCEPT
CONCEPT
CREATION
CREATION
SEO &
SEO &
SEM
SEM
GRAPHIC
GRAPHIC
DESIGN
DESIGN
CONTENT
CONTENT
CREATION
CREATION
DATA
DATA
MINING
MINING
10. KONZERV REPOK
• Három konzerv reponk van:
• Yii Base - egyszerű microsite-okhoz
• FB Base - Facebook appokhoz
• CMS - Mito CMS alapú oldalakhoz
• Előnyök:
• gyorsan ki lehet húzni új projekteket
• a rendszeresen igényelt funkciókat nem kell régebbi
projektekből másolgatni, minden megvan egy helyen
• Git submodule-ként használjuk a Yii-t és a Bootstrapet
11. KLÓNOZÁS
$ git clone --recursive ssh://git@xxxxx:yyyy/mito/
facebook_base.git .
• Hátrány: minden app minden példánya
tartalmazza a Yii és a Bootstrap aktuális
verzióját
• Előny: nem kell félnünk, hogy egy új Yii vagy
Boostrap verzió elrontja egy régebbi appunkat
14. A YII-RŐL RÖVIDEN
• http://www.yiiframework.com/
• Könnyen kezelhető, gyors, egyszerű MVC
keretrendszer
• 2009 óta fejlesztik
• 1.1.X verziót használjuk, a 2.0 még nem
készült el
17. ENVIRONMENT-FÜGGŐ CONFIGOK
• Yii alapból nem támogatja, pedig minden
környezetben különböző beállításokra van
szükség (pl. DB)
• Alap:
• egy main.php és egy console.php
• Kiegészítés:
• common.php (megosztott paraméterek miatt)
• 3 env = 3 különböző config
18. ENVIRONMENT-FÜGGŐ CONFIGOK
• Két master config fájl
• Három könyvtár a három
environmentnek
• ENV fálj mondja meg, melyik
környezetben vagyunk
• env.php beállítja a
YII_CONFIG_ENVIRONMENT-et és
a YII_DEBUG értékét is helyesen
• loader.php összemerge-öli a
master és env-függő configokat
21. BOOTSTRAP AZ ADMINON
• Yii Bootstrap http://www.yiiframework.com/extension/bootstrap/
• Előnyök:
• igényes, szép admin felület külön gfx és frontend
beavatkozás nélkül
• dinamikus táblázatok és gombok elég egyszerűen,
Yii widgetként
25. A PROBLÉMA
• Statikus fájlokat (JS, CSS, fontok, képek) a
böngésző becache-eli, mindig CTRL+F5-öt
kell nyomni
• Különösen akkor van gond, ha frissítesz egy
site-ot: a HTML már új, a CSS még régi
• Ismerős, ugye?
27. HASZNÁLAT
• a frontend fejlesztő az src-be dolgozik
• dist könyvtár automatikusan jön létre, célja: forrás
fájlokat ne publikáljuk
• Package-ek
http://www.yiiframework.com/doc/api/1.1/
CClientScript#packages-detail
<? Yii::app()->clientScript->registerPackage(‘main’); ?>
!
• sasswatch fut a háttérben
$ ./yiic sasswatch
28. JQUERY CDN + FALLBACK
• jQuery-t CDN-ről töltjük be, fallbackelve a Yii beépített verziójára
• ez saját kiegészítés, ne próbáljátok ki otthon
'clientScript'=>array(
'class'=>'application.components.CClientScriptFallback',
'packages'=>array(
'jquery'=>array(
// Yii-be az 1.8-as van beépítve; ezt töltjük be CDN-ről is
'baseUrl'=>'//ajax.googleapis.com/ajax/libs/jquery/1.8/',
'js'=>array(YII_DEBUG ? 'jquery.js' : 'jquery.min.js'),
'fallback'=>array('package'=>'jquery.yii','check'=>'window.jQuery'),
),
'jquery.yii'=>array(
'js'=>array(YII_DEBUG ? 'jquery.js' : 'jquery.min.js'),
),
),
),
29. PUBLIKÁLÁS
$ ./yiic compile
!
• Összefűzi és minify-olja a javascript fájlokat
• Closure compilert Yii extensionként használjuk
• Legenerálja a scss-ből a css-t a dist könyvtárba
• Átmásolja az src/img és src/fonts
könyvtárakat a dist-be
30. RELEASE BASH SCRIPT
$ release
!
• Alapvetően két branch gitben: master (dev), release (stabil)
• Mit csinál?
• git stash
• checkout master
• ha nincs még release branch, akkor létrehozza
• merge-eli a változásokat a release ággal
• push
• visszaáll arra a branch-re, amin voltál
• git stash pop
31. DEPLOY
$ pull
!
• Ha nem vagy apache, akkor sudozik egyet
• git pull
• yii migrate up
• yii deploy
• megtoucholja az assetsben lévő könytárakat, ha
valami frissült bennük