SlideShare une entreprise Scribd logo
1  sur  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?

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Dernier (20)

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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

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