SlideShare una empresa de Scribd logo
1 de 17
Zend Framework
Introduction to Framework
What does a Framework mean?
• It’s a concrete platform where the common code to be
  executed in entire application can be kept which targets
  the maintainable, Reusable and scalable application.

• A framework is an abstraction of the software code
  which can be selectively overridden.

• Framework takes the form of libraries, where a well-
  defined application program interface (API) is reusable
  anywhere within the software under development.
Principles of a Framework
• Control over the flow: Instead of user’s (programmer’s) custom execution of
  flow, Framework must have the control over the flow.

• Default behavior: Application has to work even without any customization of
  code with default configuration.

• Extendable: Programmer should have the ability to extend the framework
  code

• Non-changeable: User can extend the framework code but not allowed to
  change the core framework code

• Compatible: Framework should be in such a way that Application should not
  be crashed even we upgrade framework version. (Latest framework has to
  work even with the older programming language versions)

• Portable: Application developed on framework has to support multiple
  environments (Ex: Different databases and servers like IIS, Apache)
Advantages over traditional programming
• As frameworks are designed to target reusable code for quick
  development, lot of development efforts and time are reduced.

• Using frameworks, the developers can spend more time on
  functionality development of the application than preparing the
  environment. This helps them to build defect free software
  applications.

• Application Code is clean and neat as we follow standard of the
  software framework

• Frameworks help you to develop the project rapidly, if you know
  one framework well then you’ll never worry about the project
  deadline.
Disadvantages:

• Learning curve is involved in understanding the different
  frameworks.
• Preferable to use for large scale application because for small
  application, core programming language is faster than the
  framework.
Frameworks available in the market:
•   Zend
•   Cake PHP
•   Code Igniter
•   Symfony
•   Yii
Zend framework:
• Open-source software framework for PHP 5.
• Its strength is in its highly-modular MVC design, making your code
  more reusable and easier to maintain.
History of Zend
• Zend framework is started by Andi Gutmans and Zeev Suraski, one
  of the most influential persons that started PHP 3.
• Launched in year 2006 with the preview release of 0.1.3 .
• Latest version - 2.0 beta release
Popular products developed on Zend
                   Framework
• Magento, which is one of popular open source shopping cart
• McAffee company website
• IBM company website
Advantages over other frameworks

• Highly flexible: We can extend all most all the framework
  classes
• Loosely coupled: We can delete the components or modules
  which we don’t want in our application. It is highly modular.
• Scalable: Can be developed high performance application as
  entire library won’t be loaded for each request.
• Easy to test: PHPUnit is integrated with Zend framework.
• Compatible with different databases (Db2, Mysql, Oracle and
  MSSql)
Structure of Zend framework
Security in Zend framework

• Sql security: Zend framework has the Database abstraction
  layer which contains many escaping functions so no need to
  bother about sql injection attacks.
• It’s having different APIs to handle queries
        • Zend_Db
        • Zend_Db_Statement
        • Zend_Db_Select
        • Zend_Db_Table
Cross Site Request Forgery (CSRF) Protection:
• Protections against CSRF attacks are usually based on secret,
    session depended form tokens
<?php
Class My_Form extends Zend_Form
{
  function __construct()
  {
         parent::__construct();
         $this->addElement('hash', 'csrf_token',
            array('salt' => get_class($this) .
         's3cr3t%Ek@on9!'));
  }
}
?>
Session Management Configuration:
• Configuration has big influence on security.
• Zend_Session providing different options to configure session
   parameters’ .
• It supports SSL to avoid session hijacking.
<?php
Zend_Session::setOptions(array(
 /* SSL server */ 'cookie_secure' => true,
 /* own name        */ 'name'       => 'mySSL',
 /* own storage */ 'save_path'        => '/sessions/mySSL',
 /* XSS hardening */ 'cookie_httponly' => true,
 /* short lifetime */ 'gc_maxlifetime' => 15 * 60
                ));
Zend_Session::start();
?>
Security from XSS :
A number of classes, primarily within the
Zend_Form, Zend_Filter, Zend_Form, Zend_Log and Zend_View
components, contained character encoding inconsistencies whereby
calls to the htmlspecialchars() and htmlentities() functions used
undefined or hard coded charset parameters.
Different Design patterns used in Zend
                       framework
•   Zend_Controller_Front
     – Singleton
•   Zend_Db_Adapter
     – Abstarct factory pattern
•   Zend_Db_Table
     – Table Data Gateway
•   Zend_Db_Table_Row
•   Row Data gateway
•   Zend_Log
     – Factory Method
     – Adapter
     – Composite
•   Zend_Form
     – Composite
     – Decorators
•   Zend_Filter and Zend_Validator
     – Strategy
References
http://www.techopedia.com/definition/14384/software-framework
http://en.wikipedia.org/wiki/Software_framework
http://www.net-security.org/secworld.php?id=8697
http://www.php-developer.org/most-used-php-framework-the-
popular-top-7-list-in-year-2011/
http://net.tutsplus.com/tutorials/php/10-compelling-reasons-to-
use-zend-framework/

Más contenido relacionado

La actualidad más candente

Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0Shiju Varghese
 
Require JS
Require JSRequire JS
Require JSImaginea
 
4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
4η διάλεξη Τεχνολογίες Παγκόσμιου ΙστούManolis Vavalis
 
Exploring AngularJS - Liju Pillai
Exploring AngularJS - Liju PillaiExploring AngularJS - Liju Pillai
Exploring AngularJS - Liju PillaiLiju Pillai
 
ASP .NET MVC
ASP .NET MVC ASP .NET MVC
ASP .NET MVC eldorina
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedStéphane Bégaudeau
 
TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0Shiju Varghese
 
Php Frameworks
Php FrameworksPhp Frameworks
Php FrameworksRyan Davis
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5Jon Galloway
 
Why Zend Framework? - Meetup event!
Why Zend Framework? - Meetup event!Why Zend Framework? - Meetup event!
Why Zend Framework? - Meetup event!AJINKYA N
 
Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4PawanMM
 
Session 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web AppsSession 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web AppsPawanMM
 
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORKSpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORKSpringPeople
 
Ch. 9 jsp standard tag library
Ch. 9 jsp standard tag libraryCh. 9 jsp standard tag library
Ch. 9 jsp standard tag libraryManolis Vavalis
 
Panada: An Introduction by Iskandar Soesman
Panada: An Introduction by Iskandar SoesmanPanada: An Introduction by Iskandar Soesman
Panada: An Introduction by Iskandar Soesmank4ndar
 

La actualidad más candente (20)

Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0
 
Require JS
Require JSRequire JS
Require JS
 
4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
4η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
 
Exploring AngularJS - Liju Pillai
Exploring AngularJS - Liju PillaiExploring AngularJS - Liju Pillai
Exploring AngularJS - Liju Pillai
 
ASP .NET MVC
ASP .NET MVC ASP .NET MVC
ASP .NET MVC
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get started
 
TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0TDD with ASP.NET MVC 1.0
TDD with ASP.NET MVC 1.0
 
Php Frameworks
Php FrameworksPhp Frameworks
Php Frameworks
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5
 
Why Zend Framework? - Meetup event!
Why Zend Framework? - Meetup event!Why Zend Framework? - Meetup event!
Why Zend Framework? - Meetup event!
 
Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4Session 28 - Servlets - Part 4
Session 28 - Servlets - Part 4
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
Session 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web AppsSession 31 - Session Management, Best Practices, Design Patterns in Web Apps
Session 31 - Session Management, Best Practices, Design Patterns in Web Apps
 
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORKSpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
SpringPeople Building Web Sites with ASP.NET MVC FRAMEWORK
 
Ch. 7 beeing a jsp
Ch. 7 beeing a jsp     Ch. 7 beeing a jsp
Ch. 7 beeing a jsp
 
Cqrs.frameworks
Cqrs.frameworksCqrs.frameworks
Cqrs.frameworks
 
Ch. 9 jsp standard tag library
Ch. 9 jsp standard tag libraryCh. 9 jsp standard tag library
Ch. 9 jsp standard tag library
 
Ch. 11 deploying
Ch. 11 deployingCh. 11 deploying
Ch. 11 deploying
 
Panada: An Introduction by Iskandar Soesman
Panada: An Introduction by Iskandar SoesmanPanada: An Introduction by Iskandar Soesman
Panada: An Introduction by Iskandar Soesman
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 

Similar a Zend MVC pattern based Framework – Best for Enterprise web applications

Autoframework design
Autoframework designAutoframework design
Autoframework designForge Events
 
Application development using Zend Framework
Application development using Zend FrameworkApplication development using Zend Framework
Application development using Zend FrameworkMahmud Ahsan
 
Technource - Zend framework Developers India
Technource - Zend framework Developers IndiaTechnource - Zend framework Developers India
Technource - Zend framework Developers IndiaTechnource
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Shelly Megan
 
High performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructureHigh performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructuremkherlakian
 
Extending ZF & Extending With ZF
Extending ZF & Extending With ZFExtending ZF & Extending With ZF
Extending ZF & Extending With ZFRalph Schindler
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesVagif Abilov
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.netsuraj pandey
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architectureKevin Wenger
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterJamshid Hashimi
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentDiego Delon
 
Which are the best PHP frameworks for web development that have a good future...
Which are the best PHP frameworks for web development that have a good future...Which are the best PHP frameworks for web development that have a good future...
Which are the best PHP frameworks for web development that have a good future...Moon Technolabs Pvt. Ltd.
 
Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021WrapPixel
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to MicroservicesKyle Brown
 

Similar a Zend MVC pattern based Framework – Best for Enterprise web applications (20)

green
greengreen
green
 
Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)
 
Autoframework design
Autoframework designAutoframework design
Autoframework design
 
Application development using Zend Framework
Application development using Zend FrameworkApplication development using Zend Framework
Application development using Zend Framework
 
Technource - Zend framework Developers India
Technource - Zend framework Developers IndiaTechnource - Zend framework Developers India
Technource - Zend framework Developers India
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
 
High performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructureHigh performance PHP: Scaling and getting the most out of your infrastructure
High performance PHP: Scaling and getting the most out of your infrastructure
 
Extending ZF & Extending With ZF
Extending ZF & Extending With ZFExtending ZF & Extending With ZF
Extending ZF & Extending With ZF
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.net
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 
Zend
ZendZend
Zend
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniter
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
 
Which are the best PHP frameworks for web development that have a good future...
Which are the best PHP frameworks for web development that have a good future...Which are the best PHP frameworks for web development that have a good future...
Which are the best PHP frameworks for web development that have a good future...
 
Zend framework 01 - introduction
Zend framework 01 - introductionZend framework 01 - introduction
Zend framework 01 - introduction
 
Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to Microservices
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 

Último

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"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
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
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
 

Último (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"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
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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
 
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
 

Zend MVC pattern based Framework – Best for Enterprise web applications

  • 2. Introduction to Framework What does a Framework mean? • It’s a concrete platform where the common code to be executed in entire application can be kept which targets the maintainable, Reusable and scalable application. • A framework is an abstraction of the software code which can be selectively overridden. • Framework takes the form of libraries, where a well- defined application program interface (API) is reusable anywhere within the software under development.
  • 3. Principles of a Framework • Control over the flow: Instead of user’s (programmer’s) custom execution of flow, Framework must have the control over the flow. • Default behavior: Application has to work even without any customization of code with default configuration. • Extendable: Programmer should have the ability to extend the framework code • Non-changeable: User can extend the framework code but not allowed to change the core framework code • Compatible: Framework should be in such a way that Application should not be crashed even we upgrade framework version. (Latest framework has to work even with the older programming language versions) • Portable: Application developed on framework has to support multiple environments (Ex: Different databases and servers like IIS, Apache)
  • 4. Advantages over traditional programming • As frameworks are designed to target reusable code for quick development, lot of development efforts and time are reduced. • Using frameworks, the developers can spend more time on functionality development of the application than preparing the environment. This helps them to build defect free software applications. • Application Code is clean and neat as we follow standard of the software framework • Frameworks help you to develop the project rapidly, if you know one framework well then you’ll never worry about the project deadline.
  • 5. Disadvantages: • Learning curve is involved in understanding the different frameworks. • Preferable to use for large scale application because for small application, core programming language is faster than the framework.
  • 6. Frameworks available in the market: • Zend • Cake PHP • Code Igniter • Symfony • Yii
  • 7. Zend framework: • Open-source software framework for PHP 5. • Its strength is in its highly-modular MVC design, making your code more reusable and easier to maintain.
  • 8. History of Zend • Zend framework is started by Andi Gutmans and Zeev Suraski, one of the most influential persons that started PHP 3. • Launched in year 2006 with the preview release of 0.1.3 . • Latest version - 2.0 beta release
  • 9. Popular products developed on Zend Framework • Magento, which is one of popular open source shopping cart • McAffee company website • IBM company website
  • 10. Advantages over other frameworks • Highly flexible: We can extend all most all the framework classes • Loosely coupled: We can delete the components or modules which we don’t want in our application. It is highly modular. • Scalable: Can be developed high performance application as entire library won’t be loaded for each request. • Easy to test: PHPUnit is integrated with Zend framework. • Compatible with different databases (Db2, Mysql, Oracle and MSSql)
  • 11. Structure of Zend framework
  • 12. Security in Zend framework • Sql security: Zend framework has the Database abstraction layer which contains many escaping functions so no need to bother about sql injection attacks. • It’s having different APIs to handle queries • Zend_Db • Zend_Db_Statement • Zend_Db_Select • Zend_Db_Table
  • 13. Cross Site Request Forgery (CSRF) Protection: • Protections against CSRF attacks are usually based on secret, session depended form tokens <?php Class My_Form extends Zend_Form { function __construct() { parent::__construct(); $this->addElement('hash', 'csrf_token', array('salt' => get_class($this) . 's3cr3t%Ek@on9!')); } } ?>
  • 14. Session Management Configuration: • Configuration has big influence on security. • Zend_Session providing different options to configure session parameters’ . • It supports SSL to avoid session hijacking. <?php Zend_Session::setOptions(array( /* SSL server */ 'cookie_secure' => true, /* own name */ 'name' => 'mySSL', /* own storage */ 'save_path' => '/sessions/mySSL', /* XSS hardening */ 'cookie_httponly' => true, /* short lifetime */ 'gc_maxlifetime' => 15 * 60 )); Zend_Session::start(); ?>
  • 15. Security from XSS : A number of classes, primarily within the Zend_Form, Zend_Filter, Zend_Form, Zend_Log and Zend_View components, contained character encoding inconsistencies whereby calls to the htmlspecialchars() and htmlentities() functions used undefined or hard coded charset parameters.
  • 16. Different Design patterns used in Zend framework • Zend_Controller_Front – Singleton • Zend_Db_Adapter – Abstarct factory pattern • Zend_Db_Table – Table Data Gateway • Zend_Db_Table_Row • Row Data gateway • Zend_Log – Factory Method – Adapter – Composite • Zend_Form – Composite – Decorators • Zend_Filter and Zend_Validator – Strategy