SlideShare una empresa de Scribd logo
1 de 29
Intro to Angular.js & Zend2
for Front-End Web Applications

Adrian Esquivel
aesquivel@teckpert.com
Chief Expert
About Me
•
•
•
•
•

Grew up in Miami
Computer Engineering @UF
Defense and security 7 Years
Chief Expert @TECKpert since 2009
Leading engineering teams for 10+ years
Outline
•
•
•
•
•

Background
Intro to Zend2
Intro to Angular.JS
Demo
Q&A
Background: What is MVC?
• Stands for “Model-View-Controller”.
• Architecture representation data based on
user interaction.
Background: Why MVC?
• Modularize the user interface.
• Consolidate front end code (HTML5).
• Different skill sets in development
(front/back).
• Smaller front end code footprint.
• Take advantage of cloud architecture.
Background: PHP & JS Frameworks
PHP
Zend
Symfony
CodeIgniter
CakePHP

JavaScript
Angular.js
Ember.js
Backbone.js
Intro to Zend2: History
• Started by graduates of Technion, Israeli hightech university, in 1997.
• Zend Technologies established in 1999.
• Opened US office in 2004 and established
offices worldwide.
• Commercial products from IDE to Server
software, security and certification.
Intro to Zend2: Benefits
•
•
•
•
•
•

Based on PHP 5.3+.
100% Object-Oriented.
Flexible components and full-featured stack.
Autoloading and dependency injection.
Modules
Event manager.
Intro to Zend2: Models
•
•
•
•
•

Single object or collection of objects.
Represents logical layer.
Contains application logic (i.e. business logic).
Manages data - stores, manipulates, responds.
Nothing to do with a user interface.
Intro to Zend2: Views
• Visual representations of a model.
• Here’s where all your front end code is (HTML,
JS, CSS).
• Zend2 file format: .phtml.
Intro to Zend2: Controllers
•
•
•
•
•

Interprets user action.
Link between the model and view.
Changes the state of the model and view.
Manages the output.
Always name files with “*Controller”.
– E.g. MapController.php

• Minimize code in controller with modules and
events.
Intro to Zend2: Modules
• Basic unit of ZF2.
• Collection of code and other files that solves
specific problem.
• Contains namespace and class file
(module.php)
Intro to Zend2: Events
• Events are actions.
• A Listener is a callback that reacts to an event.
• Event manager is an object that pulls together
listeners for one or more events.
Intro to Zend2: How to Start
• Download latest package (2.2.5).
– https://packages.zendframework.com/

• Start with a skeleton application.
– http://framework.zend.com/manual/2.2/en/userguide/skeleton-application.html

• Build something simple.
Intro to Angular.JS: History
• Released in 2009.
• Backed by Google.
• Checkout apps built with Angular.js at
builtwith.angularjs.org.
Intro to Angular.JS: Benefits
•
•
•
•
•

Based on MVC.
Breaks away from DOM manipulation.
Supports two way data binding.
Works well with other libraries.
Easy to test.
Intro to Angular.JS: How to Start
• Download
– http://angularjs.org/

• Watch tutorials and case studies.
– http://docs.angularjs.org/tutorial
– http://builtwith.angularjs.org/

• Install it in Zend2 skeleton app.
Intro to Angular.JS: Data Binding
• Syncs data between model and view
components.
• Does this automatically.
• Traditional templates bind data one way.
• Angular binds data two ways – keeps the
model in sync (single-source) and the view as
a snapshot.
• Great for testing.
Intro to Angular.JS: Controllers
• Respond to events.
• Gather data.
• NEVER interacts with DOM
Intro to Angular.JS: Directives
• Markers on elements.
– <input data-ng:model=“Hello">

• Tells Angular on “compilation” to modify
behavior on the element
• Used for DOM interaction and manipulation.
• Angular has built in directives
Intro to Angular.JS: Services
• Can handle complex business logic.
• Bring services to the client side.
• Objects or functions that execute tasks for
components (i.e. controller) that depend on it.
Intro to Angular.JS: Other Components
• Expressions.
• Forms and Filters.
Demo

http://angular-test.teckpert.com
Download Sample Code:
https://dl.dropboxusercontent.com/u/1183493/Intro%20t
o%20AngularJS%20and%20ZF2.zip
Final Notes: Target Applications
•
•
•
•

Dashboard applications.
Single-page applications.
Map interfaces.
Chart/Graph interfaces.
Pretty much any kind of UI…
Final Notes: Tips
•
•
•
•
•

Develop your application stack with Zend2.
Use HTML5 and CSS3.
Create web and mobile views.
Use Angular.js to be “device-agnostic”.
Make use of operations, events, and bindings.
Other Concepts
• MOVE - “Models-Operations-Views-Events”.
• SOLID - Single responsibility, Open-closed,
Liskov substitution, Interface segregation and
Dependency inversion
End of Presentation
Announcement

We’re building teams @TECKpert
Visit www.teckpert.com/careers
Questions?

Más contenido relacionado

La actualidad más candente

Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCCarlo Bonamico
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with AppceleratorMatt Raible
 
Breaking The Framework's Core #PHPKonf 2016
Breaking The Framework's Core #PHPKonf 2016Breaking The Framework's Core #PHPKonf 2016
Breaking The Framework's Core #PHPKonf 2016Mehmet Ince
 
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav DukhinFwdays
 
Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoAOE
 
前端網頁自動測試
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試 政億 林
 
Take control. write a plugin. part II
Take control. write a plugin. part IITake control. write a plugin. part II
Take control. write a plugin. part IIBaruch Sadogursky
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeColdFusionConference
 
Magento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian LuszczymakMagento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian LuszczymakMeet Magento Spain
 
行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹Kyle Lin
 
Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2Sergii Shymko
 
JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!Eric Wendelin
 
Automatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsAutomatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsFrançois-Guillaume Ribreau
 
Using Play Framework 2 in production
Using Play Framework 2 in productionUsing Play Framework 2 in production
Using Play Framework 2 in productionChristian Papauschek
 
Django Interview Questions and Answers
Django Interview Questions and AnswersDjango Interview Questions and Answers
Django Interview Questions and AnswersPython Devloper
 

La actualidad más candente (19)

Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVC
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
Why gradle
Why gradle Why gradle
Why gradle
 
Webdriver.io
Webdriver.io Webdriver.io
Webdriver.io
 
Breaking The Framework's Core #PHPKonf 2016
Breaking The Framework's Core #PHPKonf 2016Breaking The Framework's Core #PHPKonf 2016
Breaking The Framework's Core #PHPKonf 2016
 
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
 
Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for Magento
 
前端網頁自動測試
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試
 
Take control. write a plugin. part II
Take control. write a plugin. part IITake control. write a plugin. part II
Take control. write a plugin. part II
 
Grails Spring Boot
Grails Spring BootGrails Spring Boot
Grails Spring Boot
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio Code
 
Magento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian LuszczymakMagento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian Luszczymak
 
行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹行動應用開發實務 - Gradle 介紹
行動應用開發實務 - Gradle 介紹
 
Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2
 
JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!
 
Automatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startupsAutomatic constraints as a team maturity accelerator for startups
Automatic constraints as a team maturity accelerator for startups
 
Using Play Framework 2 in production
Using Play Framework 2 in productionUsing Play Framework 2 in production
Using Play Framework 2 in production
 
Introduction to django
Introduction to djangoIntroduction to django
Introduction to django
 
Django Interview Questions and Answers
Django Interview Questions and AnswersDjango Interview Questions and Answers
Django Interview Questions and Answers
 

Destacado

Scaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupScaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupKacper Gunia
 
RESTful modules in zf2
RESTful modules in zf2RESTful modules in zf2
RESTful modules in zf2Corley S.r.l.
 
Theres a rabbit on my symfony
Theres a rabbit on my symfonyTheres a rabbit on my symfony
Theres a rabbit on my symfonyAlvaro Videla
 
Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2Rankest
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907NodejsFoundation
 

Destacado (6)

Scaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupScaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
Scaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
 
RESTful modules in zf2
RESTful modules in zf2RESTful modules in zf2
RESTful modules in zf2
 
ZF3 introduction
ZF3 introductionZF3 introduction
ZF3 introduction
 
Theres a rabbit on my symfony
Theres a rabbit on my symfonyTheres a rabbit on my symfony
Theres a rabbit on my symfony
 
Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 

Similar a Intro to Angular.js & Zend2 for Front-End Web Applications

AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project Elad Hirsch
 
PPT on Angular 2 Development Tutorial
PPT on Angular 2 Development TutorialPPT on Angular 2 Development Tutorial
PPT on Angular 2 Development TutorialPaddy Lock
 
Angular2 + Ng-Lightning + Lightning Design System = Great Apps
Angular2 + Ng-Lightning + Lightning Design System = Great AppsAngular2 + Ng-Lightning + Lightning Design System = Great Apps
Angular2 + Ng-Lightning + Lightning Design System = Great AppsEmily Hurn
 
JAVA EE training from 3rd-oct-2015
JAVA EE training from 3rd-oct-2015JAVA EE training from 3rd-oct-2015
JAVA EE training from 3rd-oct-2015Naz Ish
 
Valentine with Angular js - Introduction
Valentine with Angular js - IntroductionValentine with Angular js - Introduction
Valentine with Angular js - IntroductionSenthil Kumar
 
Reason to choose Angular JS for your Web Application
Reason to choose Angular JS for your Web ApplicationReason to choose Angular JS for your Web Application
Reason to choose Angular JS for your Web ApplicationPriyanka Verma
 
638872_Akhil Garg
638872_Akhil Garg638872_Akhil Garg
638872_Akhil GargAkhil Garg
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareRitwik Das
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
ME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsAviran Cohen
 
Amit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar
 
Bala Sr Java Developer
Bala  Sr Java DeveloperBala  Sr Java Developer
Bala Sr Java DeveloperJava Dev
 
Framework adoption for java enterprise application development
Framework adoption for java enterprise application developmentFramework adoption for java enterprise application development
Framework adoption for java enterprise application developmentClarence Ho
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN StackTroy Miles
 
Ektron Synergy 2014 - A Case Study in Using MVC with Ektron
Ektron Synergy 2014 - A Case Study in Using MVC with EktronEktron Synergy 2014 - A Case Study in Using MVC with Ektron
Ektron Synergy 2014 - A Case Study in Using MVC with EktronEktron
 

Similar a Intro to Angular.js & Zend2 for Front-End Web Applications (20)

AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project 
 
PPT on Angular 2 Development Tutorial
PPT on Angular 2 Development TutorialPPT on Angular 2 Development Tutorial
PPT on Angular 2 Development Tutorial
 
Angular2 + Ng-Lightning + Lightning Design System = Great Apps
Angular2 + Ng-Lightning + Lightning Design System = Great AppsAngular2 + Ng-Lightning + Lightning Design System = Great Apps
Angular2 + Ng-Lightning + Lightning Design System = Great Apps
 
Resume_Venugopal
Resume_VenugopalResume_Venugopal
Resume_Venugopal
 
JAVA EE training from 3rd-oct-2015
JAVA EE training from 3rd-oct-2015JAVA EE training from 3rd-oct-2015
JAVA EE training from 3rd-oct-2015
 
What's new in Angular 2?
What's new in Angular 2?What's new in Angular 2?
What's new in Angular 2?
 
Valentine with Angular js - Introduction
Valentine with Angular js - IntroductionValentine with Angular js - Introduction
Valentine with Angular js - Introduction
 
Reason to choose Angular JS for your Web Application
Reason to choose Angular JS for your Web ApplicationReason to choose Angular JS for your Web Application
Reason to choose Angular JS for your Web Application
 
638872_Akhil Garg
638872_Akhil Garg638872_Akhil Garg
638872_Akhil Garg
 
Chinnasamy Manickam
Chinnasamy ManickamChinnasamy Manickam
Chinnasamy Manickam
 
Module2
Module2Module2
Module2
 
spring
springspring
spring
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
ME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS Fundamentals
 
Amit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JSAmit Kumar Architect with Web and Angular JS
Amit Kumar Architect with Web and Angular JS
 
Bala Sr Java Developer
Bala  Sr Java DeveloperBala  Sr Java Developer
Bala Sr Java Developer
 
Framework adoption for java enterprise application development
Framework adoption for java enterprise application developmentFramework adoption for java enterprise application development
Framework adoption for java enterprise application development
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN Stack
 
Ektron Synergy 2014 - A Case Study in Using MVC with Ektron
Ektron Synergy 2014 - A Case Study in Using MVC with EktronEktron Synergy 2014 - A Case Study in Using MVC with Ektron
Ektron Synergy 2014 - A Case Study in Using MVC with Ektron
 

Último

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Último (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Intro to Angular.js & Zend2 for Front-End Web Applications

  • 1. Intro to Angular.js & Zend2 for Front-End Web Applications Adrian Esquivel aesquivel@teckpert.com Chief Expert
  • 2. About Me • • • • • Grew up in Miami Computer Engineering @UF Defense and security 7 Years Chief Expert @TECKpert since 2009 Leading engineering teams for 10+ years
  • 4. Background: What is MVC? • Stands for “Model-View-Controller”. • Architecture representation data based on user interaction.
  • 5. Background: Why MVC? • Modularize the user interface. • Consolidate front end code (HTML5). • Different skill sets in development (front/back). • Smaller front end code footprint. • Take advantage of cloud architecture.
  • 6. Background: PHP & JS Frameworks PHP Zend Symfony CodeIgniter CakePHP JavaScript Angular.js Ember.js Backbone.js
  • 7. Intro to Zend2: History • Started by graduates of Technion, Israeli hightech university, in 1997. • Zend Technologies established in 1999. • Opened US office in 2004 and established offices worldwide. • Commercial products from IDE to Server software, security and certification.
  • 8. Intro to Zend2: Benefits • • • • • • Based on PHP 5.3+. 100% Object-Oriented. Flexible components and full-featured stack. Autoloading and dependency injection. Modules Event manager.
  • 9. Intro to Zend2: Models • • • • • Single object or collection of objects. Represents logical layer. Contains application logic (i.e. business logic). Manages data - stores, manipulates, responds. Nothing to do with a user interface.
  • 10. Intro to Zend2: Views • Visual representations of a model. • Here’s where all your front end code is (HTML, JS, CSS). • Zend2 file format: .phtml.
  • 11. Intro to Zend2: Controllers • • • • • Interprets user action. Link between the model and view. Changes the state of the model and view. Manages the output. Always name files with “*Controller”. – E.g. MapController.php • Minimize code in controller with modules and events.
  • 12. Intro to Zend2: Modules • Basic unit of ZF2. • Collection of code and other files that solves specific problem. • Contains namespace and class file (module.php)
  • 13. Intro to Zend2: Events • Events are actions. • A Listener is a callback that reacts to an event. • Event manager is an object that pulls together listeners for one or more events.
  • 14. Intro to Zend2: How to Start • Download latest package (2.2.5). – https://packages.zendframework.com/ • Start with a skeleton application. – http://framework.zend.com/manual/2.2/en/userguide/skeleton-application.html • Build something simple.
  • 15. Intro to Angular.JS: History • Released in 2009. • Backed by Google. • Checkout apps built with Angular.js at builtwith.angularjs.org.
  • 16. Intro to Angular.JS: Benefits • • • • • Based on MVC. Breaks away from DOM manipulation. Supports two way data binding. Works well with other libraries. Easy to test.
  • 17. Intro to Angular.JS: How to Start • Download – http://angularjs.org/ • Watch tutorials and case studies. – http://docs.angularjs.org/tutorial – http://builtwith.angularjs.org/ • Install it in Zend2 skeleton app.
  • 18. Intro to Angular.JS: Data Binding • Syncs data between model and view components. • Does this automatically. • Traditional templates bind data one way. • Angular binds data two ways – keeps the model in sync (single-source) and the view as a snapshot. • Great for testing.
  • 19. Intro to Angular.JS: Controllers • Respond to events. • Gather data. • NEVER interacts with DOM
  • 20. Intro to Angular.JS: Directives • Markers on elements. – <input data-ng:model=“Hello"> • Tells Angular on “compilation” to modify behavior on the element • Used for DOM interaction and manipulation. • Angular has built in directives
  • 21. Intro to Angular.JS: Services • Can handle complex business logic. • Bring services to the client side. • Objects or functions that execute tasks for components (i.e. controller) that depend on it.
  • 22. Intro to Angular.JS: Other Components • Expressions. • Forms and Filters.
  • 24. Final Notes: Target Applications • • • • Dashboard applications. Single-page applications. Map interfaces. Chart/Graph interfaces. Pretty much any kind of UI…
  • 25. Final Notes: Tips • • • • • Develop your application stack with Zend2. Use HTML5 and CSS3. Create web and mobile views. Use Angular.js to be “device-agnostic”. Make use of operations, events, and bindings.
  • 26. Other Concepts • MOVE - “Models-Operations-Views-Events”. • SOLID - Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion
  • 28. Announcement We’re building teams @TECKpert Visit www.teckpert.com/careers