$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHP and Ember, a Bronies Paradise
Search
Eric Berry
July 17, 2014
Programming
0
52
PHP and Ember, a Bronies Paradise
Slides to presentation given at the Utah PHP User Group July 17, 2014
Eric Berry
July 17, 2014
Tweet
Share
More Decks by Eric Berry
See All by Eric Berry
Disrupting Open Source Sustainability
coderberry
0
460
Incentivizing and Sustaining Open Source
coderberry
0
240
Why Funding Open Sources is Hard
coderberry
2
280
Creating Hybrid Apps with Ember
coderberry
1
1.5k
The Unofficial, Official Ember Testing Guide
coderberry
43
6.1k
Ember Build Tools Showdown
coderberry
4
410
Asset Pipeline for Dummies
coderberry
3
290
Other Decks in Programming
See All in Programming
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
110
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
13
5.5k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
5
1.1k
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
180
AI時代もSEOを頑張っている話
shirahama_x
0
190
Rails Girls Sapporo 2ndの裏側―準備の日々から見えた、私が得たもの / SAPPORO ENGINEER BASE #11
lemonade_37
2
200
生成AIを活用したリファクタリング実践 ~コードスメルをなくすためのアプローチ
raedion
0
160
Micro Frontendsで築いた 共通基盤と運用の試行錯誤 / Building a Shared Platform with Micro Frontends: Operational Learnings
kyntk
1
1.6k
jakarta-security-jjug-ccc-2025-fall
tnagao7
0
100
イベントストーミングのはじめかた / Getting Started with Event Storming
nrslib
1
770
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.3k
レイトレZ世代に捧ぐ、今からレイトレを始めるための小径
ichi_raven
0
480
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Context Engineering - Making Every Token Count
addyosmani
9
440
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Ace a Technical Interview
jacobian
280
24k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Six Lessons from altMBA
skipperchong
29
4.1k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
690
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Transcript
a Bronies Paradise
I tweet at @cavneb @coderberry I blog at coderberry.me I
commit to github.com/cavneb I work for Instructure I run the EmberSLC meetup Eric Berry
None
A Tale of Two Ponies Act 1.
Rise of the Unicorn • Fork of Sproutcore in 2011
by Yehuda Katz, Tom Dale and others • Core team includes 10 people (none are paid) • Current version is 1.6.1 • New stable release every 6 weeks.
Core Team Yehuda Katz Tom Dale Peter Wagenet Erik Bryn
Trek Glowacki Kris Seldon Stefan Penner Leah Silber Robert Jackson Alex Matchneer
Core Team Apple Star Blade Thunder Strong Gunner Defiant Perfection
Veiled Steel Magical Drop Heroic Fire Radiant Aura Charged Sprout Midnight Rainbow
Goals of Ember • Create ambitious web applications • Become
more productive out of the box • Write less code • Provide conventions and abstractions Photo by Amy Lombard
None
Learning to Fly Act 2.
Core Concepts • Object • Router • Model • Controller
• View • Templates Photo by Amy Lombard
Ember.Object http://emberjs.com/guides/object-model/classes-and-instances/ Everything extends Ember.Object
Ember.Object http://emberjs.com/guides/object-model/classes-and-instances/ 1! 2! 3! 4! 5! 6! 7! 8!
9! 10! 11! 12! 13! 14! 15! 16! 17! 18 App.Pony = Ember.Object.extend({! say: function(thing) {! var name = this.get('name');! alert(name + " says: " + thing);! }! });! ! App.FlyingPony = App.Pony.extend({! say: function(thing) {! this._super(thing + “ down there!");! }! });! ! var as = App.FlyingPony.create({! name: “Apple Star"! });! ! as.say(“Hello"); // alerts “Apple Star says: Hello down there!”!
Application Flow http://emberjs.com/guides/object-model/classes-and-instances/ Request A request is sent to the
Ember application
Application Flow http://emberjs.com/guides/object-model/classes-and-instances/ Route Request The router determines which route
to send the request to and the route receives the request and params
Application Flow http://emberjs.com/guides/object-model/classes-and-instances/ Model Route Request The route gathers the
data from the models, which wrap the data (api calls, etc)
Application Flow http://emberjs.com/guides/object-model/classes-and-instances/ Controller Model Route Request The route then
places the data on the controller. The controller maintains display-related state.
Application Flow http://emberjs.com/guides/object-model/classes-and-instances/ Controller Model Route Template Request And the
templates are rendered (having access to the models via the controller)
Application Flow http://emberjs.com/guides/object-model/classes-and-instances/ Controller Model Route Template View Request Views
are used as a UI abstraction to handle user events (if needed)
Application Flow http://emberjs.com/guides/object-model/classes-and-instances/ Controller Model Route Template View Component Request
Components can be used in templates to provide a self-contained view, controller and template
Which Way to Fly? Act 3.
Getting Started Photo by Amy Lombard or…
Ember command line utility for ambitious web applications. Ember CLI
• Generators • Tests • Environment support • Asset compilation via broccoli • ES6 • Dependency management • Community support
Where’s the ???!!!
Live Coding Act 4.
I tweet at @coderberry I blog at coderberry.me I commit
to github.com/cavneb I work for Instructure I run the EmberSLC meetup