PHP Meetup: Yii használata nagyobb projektekben.
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

PHP Meetup: Yii használata nagyobb projektekben.

on

  • 1,024 views

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 ...

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.

Statistics

Views

Total Views
1,024
Views on SlideShare
1,024
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

PHP Meetup: Yii használata nagyobb projektekben. Presentation Transcript

  • 1. YII NAGY PROJEKTEKBEN PHP MEETUP, 2013.10.29.
  • 2. BEMUTATKOZÁS BOBOR SZABOLCS, CTO @ MITO
  • 3. 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
  • 4. HOGYAN DOLGOZUNK FOLYAMATOKRÓL RÖVIDEN
  • 5. REDMINE, GIT, YII
  • 6. KÖRNYEZETEK Constantly improve core business DEV STAGING Strengthen new divisions READ-­‐ONLY PROD Strengthen new divisions READ-­‐ONLY
  • 7. 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
  • 8. 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
  • 9. SEGÉDSCRIPTEK • sasswatch command • staging creator script • release script • pull script Ezekről bővebben kicsit később
  • 10. MÓDOSÍTÁSOK A YII-BEN MIT, MIÉRT, HOGYAN?
  • 11. 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
  • 12. KÖNYVTÁRSTRUKTÚRA ÁTALAKÍTÁSA Eredeti Docrooton belül van a protected
  • 13. KÖNYVTÁRSTRUKTÚRA ÁTALAKÍTÁSA Mito • docrooton kívülre raktuk a protectedet • framework symlinkel a yii/framework-re • mindig van robots.txt
  • 14. 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
  • 15. 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
  • 16. SETUP.PHP $ php setup.php development $ php setup.php staging $ php setup.php production
  • 17. SETUP.PHP • Könyvtárak létrehozása, jogosultságok beállítása: • protected/runtime • docroot/assets • docroot/problems • ENV fájl létrehozása • protected/config/ENV
  • 18. 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
  • 19. BOOTSTRAP AZ ADMINON • Submodule-ként használjuk: [submodule "protected/extensions/bootstrap"] path = protected/extensions/bootstrap url = ssh://git@xxxx:yyyy/mito/yii-bootstrap.git • config: 'components'=>array( 'bootstrap'=>array( 'class'=>'bootstrap.components.Bootstrap', ), ),
  • 20. BOOTSTRAP AZ ADMINON • admin/views/layouts/index.php: <? Yii::app()->bootstrap->register(); ?> • táblázat létrehozása: <? ?> $this->widget('bootstrap.widgets.TbGridView', array( 'type' => 'striped bordered condensed', ... );
  • 21. ASSET MANAGEMENT “CACHE PARA VAN, NYOMJ CTRL+F5-ÖT”
  • 22. 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?
  • 23. MEGOLDÁS: ASSET MANAGEMENT • Yii feature: http://www.yiiframework.com/ wiki/148/understanding-assets/ docroot/css/ docroot/js/ docroot/images/* docroot/assets/2472c2df/css/... docroot/assets/2472c2df/images/... docroot/assets/2472c2df/js/...
  • 24. 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
  • 25. 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'), ), ), ),
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. Congratulations you've unlocked the "Endless presentation" badge!
  • 30. Köszi a figyelmet! Kérdezz  most,   vagy  írj  később Bobor Szabolcs sz.bobor@mito.hu