SlideShare a Scribd company logo
JavaScript for PHP Developers
Ed Finkler
@funkatron
coj@funkatron.com
November 1, 2010
#zendcon #js4php
http://joind.in/2289
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Goodsie.com
2
Invitation code: zendcon
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
What is this?
3
Stop c+p'ing, start writing
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
A practical overview of JS
for the PHP developer
4
I'm too dumb for that
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
NOT CS-oriented
5
FWIW
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
My experiences and best practices
6
JS devs are kind of dickheads
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
JavaScript dev is opinionated
7
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
History of JavaScript
8
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Brendan Eich
9
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
"Mocha"
10
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
"LiveScript"
11
Seemed like a good idea at the time
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
"JavaScript"
12
http://www.infoworld.com/d/developer-world/javascript-creator-ponders-past-future-704
Yeesh
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
ECMAScript
13
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Core JavaScript
14
aka ECMAScript 3, circa 1999
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Baseline is JS 1.5
15
Hey, I know that!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Dynamically typed
16
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Object-based
17
But not how you think
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Object-oriented
18
First class, baby!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Functional
19
Like giving clay to a monkey
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Malleable
20
You mean I don't have to memorize 4,500 function names?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Core is pretty darn small
21
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201022
Core Objects Core Global Functions
Boolean decodeURI
Number decodeURIComponent
String encodeURI
Array encodeURIComponent
Object eval
Function isFinite
RegExp isNaN
Date parseFloat
parseInt
Core JS
All the cool stuff!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201023
What's missing?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201024
File i/o
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201025
Networking
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201026
DB APIs
Yep, the DOM is not part of JavaScript
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201027
DOM
Please don't leave yet.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201028
So what's it good for?
What?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201029
Asynchronous actions
Oh!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201030
Like GUI stuff
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201031
Browsers!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201032
Web Runtime Platforms!
Dear God
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201033
Widget engines!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201034
Server-side platforms
http://nodejs.org/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201035
Node.js
http://narwhaljs.org/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201036
Narwhal
http://code.google.com/p/v8cgi/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201037
v8cgi
But it's super fun!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201038
SSJS isn't terribly mature
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201039
Syntax
Like PHP!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201040
C/Java-like
But they can.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201041
Variable names don't start with '$'
Not dot.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201042
Concatenation with '+'
Not '->'. You will screw this up.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201043
Dot for members. Or []
You will also screw this up.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201044
Always case-sensitive
But you had better always use them
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201045
Semicolons are optional
Semicolons!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201046
CODE TIME
"Primitives"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201047
Data Types
Integers and floats
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201048
Numbers
Truthy
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201049
Booleans
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201050
Strings
Not NULL, not Null.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201051
null
Declared, but no value set. Not the same as null
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201052
undefined
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201053
That's it.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201054
Other elements
MDC: "Named containers for values"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201055
Objects
All objects
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201056
Arrays, Date, RegExp
MDC: "Procedures your application can perform"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201057
Functions
Hang on!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201058
Scope
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201059
More bleed than PHP
Functional scope only
No need for global declaration
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201060
Globals automatically available
With or without
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201061
Declaring variables
scope maintained
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201062
With var
Oops! Automatically global
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201063
Without var
window in browsers
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201064
Globals are properties of
global object
globals!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201065
CODE TIME
This is awesome
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201066
Closures
Anything within context of function declaration is fair game
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201067
Using a var from outside function
Closures
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201068
CODE TIME
Literally
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201069
Literals
Right.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201070
Numbers
Yep.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201071
Booleans
Hmmm.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201072
RegExp
Hey there.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201073
['a','r','r','a','y','s'];
Oh snap!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201074
{object:"literals"};
Literals
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201075
CODE TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201076
Operators
+ , = == === < > ! && ||
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201077
Mostly like PHP
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201078
this
Remember, no classes in JS
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201079
new
Does this key exist?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201080
in
"is X of type Y?"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201081
instanceof
Returns string of core type
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201082
typeof
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201083
typeof returns
typeof {} "object"
typeof function() {} "function"
typeof new Function(); "function"
typeof true "boolean"
typeof new Date(); "object" // not "date"; use instanceof
typeof [1,2,3] "object" // not "array"
typeof NaN "number"
typeof null "object"
typeof undefined "undefined"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201084
Type conversion
Radix is optional, but Douglas Crockford will hate you
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201085
parseInt(val, [radix])
Like parseInt, returns NaN if cannot convert
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201086
parseFloat(val)
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201087
String(obj)
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201088
Number(obj)
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201089
Boolean(obj)
http://jibbering.com/faq/notes/type-conversion/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201090
Functions
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201091
In the procedural tradition
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201092
As objects
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201093
As constructors
with new
An array, kind of
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201094
Function arguments
Fun with functions
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201095
CODE TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201096
Objects
Or associative arrays
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201097
As hashes
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201098
As static modules
Objects as modules
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201099
CODE TIME
Not a word
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010100
As instance-able objects
Just make the object and have a constructor func
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010101
No classes
No public, private, protected
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010102
No visibility levels
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010103
Prototypes & inheritance
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010104
Every object has a prototype
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010105
Prototype provides
attributes of object
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010106
Modifying prototype changes
all objects that use it
points to constructor function of object
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010107
Prototype has .constructor
Prototypes and inheritance
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010108
CODE TIME
Kinda suck in JS
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010109
Dates
Almost a necessary evil
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010110
eval()
That again
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010111
Malleability
Cookies???
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010112
BREAK TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010113
JS in the browser
Non-sequential, long-running
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010114
Execution model
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010115
Single threaded
Oh the humanity
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010116
Browser compatibility
Woo wee!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010117
DOM APIs
Words and pictures and movin' stuff!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010118
Elements and events
Trust me
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010119
These are terrible
They suck
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010120
I'm not going to teach you these
Basically fixes everything
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010121
Just use jQuery
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010122
HTTP interaction
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010123
The XMLHttpRequest Object
GETing and POSTing
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010124
JSON is love
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010125
Use JSON2.js
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010126
Newer browsers have
native implementations
Web APIs, woooooooooo!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010127
CODE TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010128
Resources
<Name of Talk> - <Who> - <Where> - <When>
Resources:Code
129
•SpazCore
http://github.com/funkatron/spazcore
•Underscore.js
http://documentcloud.github.com/underscore/
•http://delicious.com/funka7ron/javascript
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010130
Resources:Web
•Mozilla Dev Center: Code JavaScript Guide
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide
•Mozilla Dev Center: Core JavaScript Reference
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference
•Eloquent JavaScript
http://eloquentjavascript.net/
•comp.lang.javascript FAQ
http://jibbering.com/faq/
•Nicholas C. Zakas' Blog
http://www.nczonline.net/
•John Resig's Blog
http://ejohn.org/
•http://wtfjs.com/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010131
Resources:Books
•JavaScript: The Definitive Guide
David Flanagan
•JavaScript: The Good Parts
Douglas Crockford
•High-Performance JavaScript
Nicholas C. Zakas, et al
•JavaScript Patterns
Stoyan Stefanov
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010132
References
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010133
References
•Mozilla Dev Center: Core JavaScript Guide
•Eloquent JavaScript

More Related Content

What's hot (16)

Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)
Eric Johnson
 
Android maven Road to flutter| Mavenizing Flutter for web
Android maven Road to flutter| Mavenizing Flutter for webAndroid maven Road to flutter| Mavenizing Flutter for web
Android maven Road to flutter| Mavenizing Flutter for web
OluwatobiAkinpelu
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programming
Exotel
 
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
Giulio De Donato
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn [INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
Nexus FrontierTech
 
Elixir + GraphQL = Absinthe 2019.04.10
Elixir + GraphQL = Absinthe 2019.04.10Elixir + GraphQL = Absinthe 2019.04.10
Elixir + GraphQL = Absinthe 2019.04.10
Alexander Knowles
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)
Aaron Schlesinger
 
Developing for LinkedIn's Application Platform
Developing for LinkedIn's Application PlatformDeveloping for LinkedIn's Application Platform
Developing for LinkedIn's Application Platform
Taylor Singletary
 
Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?
gabrielemariotti
 
python training | python course | python online training
python training |  python course |  python online trainingpython training |  python course |  python online training
python training | python course | python online training
Nancy Thomas
 
Writing Fast Code (JP) - PyCon JP 2015
Writing Fast Code (JP) - PyCon JP 2015Writing Fast Code (JP) - PyCon JP 2015
Writing Fast Code (JP) - PyCon JP 2015
Younggun Kim
 
Go lang
Go langGo lang
Go lang
Suelen Carvalho
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language
Ganesh Samarthyam
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)
Eric Johnson
 
Android maven Road to flutter| Mavenizing Flutter for web
Android maven Road to flutter| Mavenizing Flutter for webAndroid maven Road to flutter| Mavenizing Flutter for web
Android maven Road to flutter| Mavenizing Flutter for web
OluwatobiAkinpelu
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programming
Exotel
 
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
Giulio De Donato
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn [INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
Nexus FrontierTech
 
Elixir + GraphQL = Absinthe 2019.04.10
Elixir + GraphQL = Absinthe 2019.04.10Elixir + GraphQL = Absinthe 2019.04.10
Elixir + GraphQL = Absinthe 2019.04.10
Alexander Knowles
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)
Aaron Schlesinger
 
Developing for LinkedIn's Application Platform
Developing for LinkedIn's Application PlatformDeveloping for LinkedIn's Application Platform
Developing for LinkedIn's Application Platform
Taylor Singletary
 
Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?
gabrielemariotti
 
python training | python course | python online training
python training |  python course |  python online trainingpython training |  python course |  python online training
python training | python course | python online training
Nancy Thomas
 
Writing Fast Code (JP) - PyCon JP 2015
Writing Fast Code (JP) - PyCon JP 2015Writing Fast Code (JP) - PyCon JP 2015
Writing Fast Code (JP) - PyCon JP 2015
Younggun Kim
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language
Ganesh Samarthyam
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 

Viewers also liked (20)

Mphasis php & .net
Mphasis php & .net   Mphasis php & .net
Mphasis php & .net
anilpavuluri
 
PHPUnit from a developer's perspective
PHPUnit from a developer's perspectivePHPUnit from a developer's perspective
PHPUnit from a developer's perspective
Tushar Joshi
 
Kayla Horbacz Resume
Kayla Horbacz ResumeKayla Horbacz Resume
Kayla Horbacz Resume
Kayla Horbacz
 
Mark Tortorici "The Technology Stack"
Mark Tortorici "The Technology Stack"Mark Tortorici "The Technology Stack"
Mark Tortorici "The Technology Stack"
Talent42
 
CV LinkedIn
CV LinkedInCV LinkedIn
CV LinkedIn
William Kennedy
 
K.Hutchins Resume
K.Hutchins ResumeK.Hutchins Resume
K.Hutchins Resume
Kendall Hutchins
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
Daniel Krook
 
Dale draggoo resume m read only
Dale draggoo resume m read onlyDale draggoo resume m read only
Dale draggoo resume m read only
dfdraggoo
 
Resume
ResumeResume
Resume
Geoff Goldsborough
 
AlexLu_Resume
AlexLu_ResumeAlexLu_Resume
AlexLu_Resume
Alex Lu
 
My Resume
My ResumeMy Resume
My Resume
snowfarthing
 
Resume--Alpheus E Madsen
Resume--Alpheus E MadsenResume--Alpheus E Madsen
Resume--Alpheus E Madsen
snowfarthing
 
Click here to download my CV in Word format.doc
Click here to download my CV in Word format.docClick here to download my CV in Word format.doc
Click here to download my CV in Word format.doc
butest
 
Accounting solved mcqs
Accounting solved mcqsAccounting solved mcqs
Accounting solved mcqs
lucky1671
 
Tarun hait cv
Tarun hait cvTarun hait cv
Tarun hait cv
Tarun Hait
 
tomtaila
tomtailatomtaila
tomtaila
Tom Taila
 
PHP Web Programming
PHP Web ProgrammingPHP Web Programming
PHP Web Programming
Muthuselvam RS
 
2+ Css Html Exp Resume Karthikeyan
2+ Css Html Exp Resume   Karthikeyan2+ Css Html Exp Resume   Karthikeyan
2+ Css Html Exp Resume Karthikeyan
Karthikeyan Balasubramanian
 
Mba, resume format
Mba, resume formatMba, resume format
Mba, resume format
Anshul Gupta
 
Seminar report on robotics (line follower) ppt
Seminar report on robotics (line follower) pptSeminar report on robotics (line follower) ppt
Seminar report on robotics (line follower) ppt
SYNERGY INSTITUTE OF ENGG & TECH,DHENKANALA
 
Mphasis php & .net
Mphasis php & .net   Mphasis php & .net
Mphasis php & .net
anilpavuluri
 
PHPUnit from a developer's perspective
PHPUnit from a developer's perspectivePHPUnit from a developer's perspective
PHPUnit from a developer's perspective
Tushar Joshi
 
Kayla Horbacz Resume
Kayla Horbacz ResumeKayla Horbacz Resume
Kayla Horbacz Resume
Kayla Horbacz
 
Mark Tortorici "The Technology Stack"
Mark Tortorici "The Technology Stack"Mark Tortorici "The Technology Stack"
Mark Tortorici "The Technology Stack"
Talent42
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
Daniel Krook
 
Dale draggoo resume m read only
Dale draggoo resume m read onlyDale draggoo resume m read only
Dale draggoo resume m read only
dfdraggoo
 
AlexLu_Resume
AlexLu_ResumeAlexLu_Resume
AlexLu_Resume
Alex Lu
 
Resume--Alpheus E Madsen
Resume--Alpheus E MadsenResume--Alpheus E Madsen
Resume--Alpheus E Madsen
snowfarthing
 
Click here to download my CV in Word format.doc
Click here to download my CV in Word format.docClick here to download my CV in Word format.doc
Click here to download my CV in Word format.doc
butest
 
Accounting solved mcqs
Accounting solved mcqsAccounting solved mcqs
Accounting solved mcqs
lucky1671
 
Mba, resume format
Mba, resume formatMba, resume format
Mba, resume format
Anshul Gupta
 
Ad

Similar to JavaScript for PHP Developers (20)

Best Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'PhinneyBest Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'Phinney
dpc
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
Eric Johnson
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010
Michelangelo van Dam
 
Web Design & Development - Session 7
Web Design & Development - Session 7Web Design & Development - Session 7
Web Design & Development - Session 7
Shahrzad Peyman
 
6 Months Industrial Project Training in PHP Delhi/NCR
6 Months Industrial Project Training in PHP Delhi/NCR6 Months Industrial Project Training in PHP Delhi/NCR
6 Months Industrial Project Training in PHP Delhi/NCR
shane99
 
Zend Framework Workshop
Zend Framework WorkshopZend Framework Workshop
Zend Framework Workshop
10n Software, LLC
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
Jim Plush
 
MVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsMVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web Applications
Vforce Infotech
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...
Combell NV
 
Php’s guts
Php’s gutsPhp’s guts
Php’s guts
Elizabeth Smith
 
The why and how of moving to php 8
The why and how of moving to php 8The why and how of moving to php 8
The why and how of moving to php 8
Wim Godden
 
Zend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20DocumentZend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
Zend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20DocumentZend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
Php
PhpPhp
Php
zalatarunk
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
Kaiuwe
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
Kaiuwe
 
ZF2 Presentation @PHP Tour 2011 in Lille
ZF2 Presentation @PHP Tour 2011 in LilleZF2 Presentation @PHP Tour 2011 in Lille
ZF2 Presentation @PHP Tour 2011 in Lille
Zend by Rogue Wave Software
 
Dev traning 2016 basics of PHP
Dev traning 2016   basics of PHPDev traning 2016   basics of PHP
Dev traning 2016 basics of PHP
Sacheen Dhanjie
 
Introduction to PHP.pptx
Introduction to PHP.pptxIntroduction to PHP.pptx
Introduction to PHP.pptx
SherinRappai
 
phpwebdev.ppt
phpwebdev.pptphpwebdev.ppt
phpwebdev.ppt
rawaccess
 
Best Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'PhinneyBest Practices with Zend Framework - Matthew Weier O'Phinney
Best Practices with Zend Framework - Matthew Weier O'Phinney
dpc
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
Eric Johnson
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010
Michelangelo van Dam
 
Web Design & Development - Session 7
Web Design & Development - Session 7Web Design & Development - Session 7
Web Design & Development - Session 7
Shahrzad Peyman
 
6 Months Industrial Project Training in PHP Delhi/NCR
6 Months Industrial Project Training in PHP Delhi/NCR6 Months Industrial Project Training in PHP Delhi/NCR
6 Months Industrial Project Training in PHP Delhi/NCR
shane99
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
Jim Plush
 
MVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsMVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web Applications
Vforce Infotech
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...
Combell NV
 
The why and how of moving to php 8
The why and how of moving to php 8The why and how of moving to php 8
The why and how of moving to php 8
Wim Godden
 
Zend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20DocumentZend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
Zend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20DocumentZend%20Certification%20REVIEW%20Document
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
Kaiuwe
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
Kaiuwe
 
Dev traning 2016 basics of PHP
Dev traning 2016   basics of PHPDev traning 2016   basics of PHP
Dev traning 2016 basics of PHP
Sacheen Dhanjie
 
Introduction to PHP.pptx
Introduction to PHP.pptxIntroduction to PHP.pptx
Introduction to PHP.pptx
SherinRappai
 
phpwebdev.ppt
phpwebdev.pptphpwebdev.ppt
phpwebdev.ppt
rawaccess
 
Ad

More from funkatron (9)

Building mobile apps with JavaScript and PHP
Building mobile apps with JavaScript and PHPBuilding mobile apps with JavaScript and PHP
Building mobile apps with JavaScript and PHP
funkatron
 
Secure PHP Development with Inspekt
Secure PHP Development with InspektSecure PHP Development with Inspekt
Secure PHP Development with Inspekt
funkatron
 
Building Desktop RIAs with JavaScript and PHP - ZendCon09
Building Desktop RIAs with JavaScript and PHP - ZendCon09Building Desktop RIAs with JavaScript and PHP - ZendCon09
Building Desktop RIAs with JavaScript and PHP - ZendCon09
funkatron
 
Building Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScriptBuilding Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScript
funkatron
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
funkatron
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with  PHP, HTML & Javascript  in AIRBuilding Desktop RIAs with  PHP, HTML & Javascript  in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
Securing the PHP Environment with PHPSecInfo - OSCON 2008
Securing the PHP Environment with PHPSecInfo - OSCON 2008Securing the PHP Environment with PHPSecInfo - OSCON 2008
Securing the PHP Environment with PHPSecInfo - OSCON 2008
funkatron
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
Securing the PHP Environment with PHPSecInfo
Securing the PHP Environment with PHPSecInfoSecuring the PHP Environment with PHPSecInfo
Securing the PHP Environment with PHPSecInfo
funkatron
 
Building mobile apps with JavaScript and PHP
Building mobile apps with JavaScript and PHPBuilding mobile apps with JavaScript and PHP
Building mobile apps with JavaScript and PHP
funkatron
 
Secure PHP Development with Inspekt
Secure PHP Development with InspektSecure PHP Development with Inspekt
Secure PHP Development with Inspekt
funkatron
 
Building Desktop RIAs with JavaScript and PHP - ZendCon09
Building Desktop RIAs with JavaScript and PHP - ZendCon09Building Desktop RIAs with JavaScript and PHP - ZendCon09
Building Desktop RIAs with JavaScript and PHP - ZendCon09
funkatron
 
Building Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScriptBuilding Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScript
funkatron
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
funkatron
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with  PHP, HTML & Javascript  in AIRBuilding Desktop RIAs with  PHP, HTML & Javascript  in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
Securing the PHP Environment with PHPSecInfo - OSCON 2008
Securing the PHP Environment with PHPSecInfo - OSCON 2008Securing the PHP Environment with PHPSecInfo - OSCON 2008
Securing the PHP Environment with PHPSecInfo - OSCON 2008
funkatron
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
Securing the PHP Environment with PHPSecInfo
Securing the PHP Environment with PHPSecInfoSecuring the PHP Environment with PHPSecInfo
Securing the PHP Environment with PHPSecInfo
funkatron
 

Recently uploaded (20)

Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME FlowProviding an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdfcnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
Oracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization ProgramOracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization Program
VICTOR MAESTRE RAMIREZ
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptxFIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptxFIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Introduction to Typescript - GDG On Campus EUE
Introduction to Typescript - GDG On Campus EUEIntroduction to Typescript - GDG On Campus EUE
Introduction to Typescript - GDG On Campus EUE
Google Developer Group On Campus European Universities in Egypt
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free DownloadViral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptxFIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...
Matsushita Laboratory
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptxFIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
Data Validation and System Interoperability
Data Validation and System InteroperabilityData Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdfENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too LateKubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME FlowProviding an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdfcnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
Oracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization ProgramOracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization Program
VICTOR MAESTRE RAMIREZ
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptxFIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptxFIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free DownloadViral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptxFIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...Analysis of the changes in the attitude of the news comments caused by knowin...
Analysis of the changes in the attitude of the news comments caused by knowin...
Matsushita Laboratory
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptxFIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
Data Validation and System Interoperability
Data Validation and System InteroperabilityData Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdfENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too LateKubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 

JavaScript for PHP Developers

  • 1. JavaScript for PHP Developers Ed Finkler @funkatron [email protected] November 1, 2010 #zendcon #js4php http://joind.in/2289
  • 2. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Goodsie.com 2 Invitation code: zendcon
  • 3. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 What is this? 3
  • 4. Stop c+p'ing, start writing JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 A practical overview of JS for the PHP developer 4
  • 5. I'm too dumb for that JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 NOT CS-oriented 5
  • 6. FWIW JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 My experiences and best practices 6
  • 7. JS devs are kind of dickheads JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 JavaScript dev is opinionated 7
  • 8. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 History of JavaScript 8
  • 9. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Brendan Eich 9
  • 10. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 "Mocha" 10
  • 11. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 "LiveScript" 11
  • 12. Seemed like a good idea at the time JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 "JavaScript" 12 http://www.infoworld.com/d/developer-world/javascript-creator-ponders-past-future-704
  • 13. Yeesh JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 ECMAScript 13
  • 14. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Core JavaScript 14
  • 15. aka ECMAScript 3, circa 1999 JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Baseline is JS 1.5 15
  • 16. Hey, I know that! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Dynamically typed 16
  • 17. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Object-based 17
  • 18. But not how you think JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Object-oriented 18
  • 19. First class, baby! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Functional 19
  • 20. Like giving clay to a monkey JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Malleable 20
  • 21. You mean I don't have to memorize 4,500 function names? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Core is pretty darn small 21
  • 22. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201022 Core Objects Core Global Functions Boolean decodeURI Number decodeURIComponent String encodeURI Array encodeURIComponent Object eval Function isFinite RegExp isNaN Date parseFloat parseInt Core JS
  • 23. All the cool stuff! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201023 What's missing?
  • 24. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201024 File i/o
  • 25. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201025 Networking
  • 26. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201026 DB APIs
  • 27. Yep, the DOM is not part of JavaScript JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201027 DOM
  • 28. Please don't leave yet. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201028 So what's it good for?
  • 29. What? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201029 Asynchronous actions
  • 30. Oh! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201030 Like GUI stuff
  • 31. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201031 Browsers!
  • 32. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201032 Web Runtime Platforms!
  • 33. Dear God JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201033 Widget engines!
  • 34. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201034 Server-side platforms
  • 35. http://nodejs.org/ JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201035 Node.js
  • 36. http://narwhaljs.org/ JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201036 Narwhal
  • 37. http://code.google.com/p/v8cgi/ JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201037 v8cgi
  • 38. But it's super fun! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201038 SSJS isn't terribly mature
  • 39. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201039 Syntax
  • 40. Like PHP! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201040 C/Java-like
  • 41. But they can. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201041 Variable names don't start with '$'
  • 42. Not dot. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201042 Concatenation with '+'
  • 43. Not '->'. You will screw this up. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201043 Dot for members. Or []
  • 44. You will also screw this up. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201044 Always case-sensitive
  • 45. But you had better always use them JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201045 Semicolons are optional
  • 46. Semicolons! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201046 CODE TIME
  • 47. "Primitives" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201047 Data Types
  • 48. Integers and floats JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201048 Numbers
  • 49. Truthy JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201049 Booleans
  • 50. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201050 Strings
  • 51. Not NULL, not Null. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201051 null
  • 52. Declared, but no value set. Not the same as null JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201052 undefined
  • 53. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201053 That's it.
  • 54. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201054 Other elements
  • 55. MDC: "Named containers for values" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201055 Objects
  • 56. All objects JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201056 Arrays, Date, RegExp
  • 57. MDC: "Procedures your application can perform" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201057 Functions
  • 58. Hang on! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201058 Scope
  • 59. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201059 More bleed than PHP Functional scope only
  • 60. No need for global declaration JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201060 Globals automatically available
  • 61. With or without JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201061 Declaring variables
  • 62. scope maintained JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201062 With var
  • 63. Oops! Automatically global JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201063 Without var
  • 64. window in browsers JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201064 Globals are properties of global object
  • 65. globals! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201065 CODE TIME
  • 66. This is awesome JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201066 Closures
  • 67. Anything within context of function declaration is fair game JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201067 Using a var from outside function
  • 68. Closures JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201068 CODE TIME
  • 69. Literally JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201069 Literals
  • 70. Right. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201070 Numbers
  • 71. Yep. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201071 Booleans
  • 72. Hmmm. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201072 RegExp
  • 73. Hey there. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201073 ['a','r','r','a','y','s'];
  • 74. Oh snap! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201074 {object:"literals"};
  • 75. Literals JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201075 CODE TIME
  • 76. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201076 Operators
  • 77. + , = == === < > ! && || JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201077 Mostly like PHP
  • 78. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201078 this
  • 79. Remember, no classes in JS JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201079 new
  • 80. Does this key exist? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201080 in
  • 81. "is X of type Y?" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201081 instanceof
  • 82. Returns string of core type JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201082 typeof
  • 83. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201083 typeof returns typeof {} "object" typeof function() {} "function" typeof new Function(); "function" typeof true "boolean" typeof new Date(); "object" // not "date"; use instanceof typeof [1,2,3] "object" // not "array" typeof NaN "number" typeof null "object" typeof undefined "undefined"
  • 84. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201084 Type conversion
  • 85. Radix is optional, but Douglas Crockford will hate you JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201085 parseInt(val, [radix])
  • 86. Like parseInt, returns NaN if cannot convert JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201086 parseFloat(val)
  • 87. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201087 String(obj)
  • 88. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201088 Number(obj)
  • 89. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201089 Boolean(obj) http://jibbering.com/faq/notes/type-conversion/
  • 90. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201090 Functions
  • 91. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201091 In the procedural tradition
  • 92. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201092 As objects
  • 93. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201093 As constructors with new
  • 94. An array, kind of JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201094 Function arguments
  • 95. Fun with functions JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201095 CODE TIME
  • 96. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201096 Objects
  • 97. Or associative arrays JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201097 As hashes
  • 98. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201098 As static modules
  • 99. Objects as modules JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201099 CODE TIME
  • 100. Not a word JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010100 As instance-able objects
  • 101. Just make the object and have a constructor func JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010101 No classes
  • 102. No public, private, protected JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010102 No visibility levels
  • 103. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010103 Prototypes & inheritance
  • 104. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010104 Every object has a prototype
  • 105. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010105 Prototype provides attributes of object
  • 106. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010106 Modifying prototype changes all objects that use it
  • 107. points to constructor function of object JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010107 Prototype has .constructor
  • 108. Prototypes and inheritance JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010108 CODE TIME
  • 109. Kinda suck in JS JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010109 Dates
  • 110. Almost a necessary evil JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010110 eval()
  • 111. That again JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010111 Malleability
  • 112. Cookies??? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010112 BREAK TIME
  • 113. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010113 JS in the browser
  • 114. Non-sequential, long-running JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010114 Execution model
  • 115. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010115 Single threaded
  • 116. Oh the humanity JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010116 Browser compatibility
  • 117. Woo wee! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010117 DOM APIs
  • 118. Words and pictures and movin' stuff! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010118 Elements and events
  • 119. Trust me JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010119 These are terrible
  • 120. They suck JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010120 I'm not going to teach you these
  • 121. Basically fixes everything JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010121 Just use jQuery
  • 122. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010122 HTTP interaction
  • 123. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010123 The XMLHttpRequest Object GETing and POSTing
  • 124. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010124 JSON is love
  • 125. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010125 Use JSON2.js
  • 126. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010126 Newer browsers have native implementations
  • 127. Web APIs, woooooooooo! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010127 CODE TIME
  • 128. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010128 Resources
  • 129. <Name of Talk> - <Who> - <Where> - <When> Resources:Code 129 •SpazCore http://github.com/funkatron/spazcore •Underscore.js http://documentcloud.github.com/underscore/ •http://delicious.com/funka7ron/javascript
  • 130. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010130 Resources:Web •Mozilla Dev Center: Code JavaScript Guide https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide •Mozilla Dev Center: Core JavaScript Reference https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference •Eloquent JavaScript http://eloquentjavascript.net/ •comp.lang.javascript FAQ http://jibbering.com/faq/ •Nicholas C. Zakas' Blog http://www.nczonline.net/ •John Resig's Blog http://ejohn.org/ •http://wtfjs.com/
  • 131. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010131 Resources:Books •JavaScript: The Definitive Guide David Flanagan •JavaScript: The Good Parts Douglas Crockford •High-Performance JavaScript Nicholas C. Zakas, et al •JavaScript Patterns Stoyan Stefanov
  • 132. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010132 References
  • 133. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010133 References •Mozilla Dev Center: Core JavaScript Guide •Eloquent JavaScript