SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Rafael Santos dos Reis & Luiz Guilherme Cruz
PhpManteiga Framework
Developing MDA Applications with the
Rafael Santos dos Reis
rafaelsreis@gmail.com
https://www.linkedin.com/in/rafael-santos-dos-reis-2790ab52/
Graduated in Technology in Analysis and Development of
Systems and Post graduated in the MBA course in Project
Management. Extensive experience in systems
development with the focus in the areas of Project
Management, Software Architecture, Databases and agile
methodologies.
Luiz Guilherme Cruz
lgfcruz@gmail.com
http://br.linkedin.com/in/luizguilhermecruz
Graduated in Data Processing by UNAMA, Specialization
in Web Technology by CESUPA, MBA in Project
Management by FGV - Fundação Getúlio Vargas,
PRODEPA (Data Processing of the Pará State) employee
in the area of systems development in Technology
Management and Innovation, Web Accessibility
Consultant and Assistive Software of the ACESSAR -
UFRA Nucleus.
Objective
Developing MDA Applications with the PhpManteiga Framework
Objective
The PhpManteiga Framework has as the
main objective make the development of
web applications with the use of PHP and
UML language easily and quickly by anyone
with the minimum knowledge required.
Developing MDA Applications with the PhpManteiga Framework
What is the PhpManteiga?
Developing MDA Applications with the PhpManteiga Framework
What is the PhpManteiga?
It is a framework for web development using the main
design patterns of the market, aimed at increased
productivity focused on MDA technology using UML
resources.
Developing MDA Applications with the PhpManteiga Framework
Why PhpManteiga?
Developing MDA Applications with the PhpManteiga Framework
Why PhpManteiga?
After we thought a lot about a name for our new
framework we came up with what most represented what
we wanted for this tool. Hence we call it PhpManteiga.
PHP because it is a framework in PHP and "Manteiga"
(Butter in English) that for us is a cinch (a piece of cake!),
which allows anyone can program without a deep
knowledge of the PHP language.
Developing MDA Applications with the PhpManteiga Framework
MDA
(Model Driven Architecture)
Developing MDA Applications with the PhpManteiga Framework
● It is a systems development approach that allows project and
construction independent of programming language.
● It is a conceptual architecture for software development
defined by the OMG (Object Management Group);
● It is not a development process;
● Portability, Reuse and Productivity;
MDA (Model Driven Architecture)
Developing MDA Applications with the PhpManteiga Framework
MDA (Model Driven Architecture)
Developing MDA Applications with the PhpManteiga Framework
PIM
Platform
Independent
Model
PSM
Platform
Specific
Model
MDA
Transformation
Artifacts and Codes
Used Technologies
Developing MDA Applications with the PhpManteiga Framework
Developing MDA Applications with the PhpManteiga Framework
Used Technologies
PHP
DB
(DatabaseFactory)
View
(Smarty)
Model
(Entity)
Controller
(Action)
XML
(Config Files)
UML
(Conceptual
Model)
PHP (Hypertext Preprocessor) is a
widely-used open source
general-purpose scripting language that
is especially suited for web development
and can be embedded into HTML.
Source: php.net
PHP
Developing MDA Applications with the PhpManteiga Framework
It is a software architecture standard that separates the
representation of information from user interaction with it.
The model consists of application data, business rules, logic,
and functions. A view can be any output representation of
the data, such as a table or a diagram. The controller
mediates the input, converting it to commands for the
model or view. The core ideas behind MVC are code reuse
and concept separation.
Source: Wikipedia
MVC
Developing MDA Applications with the PhpManteiga Framework
MVC
Developing MDA Applications with the PhpManteiga Framework
Clients
Internet FrontController Controller
1 2
43
Model
5
View
6
● Access interface of a Database of the PHP;
● Abstraction of the database layer;
● Independence of database;
● It is Object Oriented;
PDO (PHP Data Object)
Developing MDA Applications with the PhpManteiga Framework
● Independence of the DBMS;
● Access to own structures for systems oriented to objects;
● Ability to execute a specific program of application in
different systems such as the minimum of changes in the
program;
OQL Support
Developing MDA Applications with the PhpManteiga Framework
● Add metadata to classes, properties, and methods;
● Does not directly affect the application;
● Can be parameterized by simple tags;
● Facility in the code maintenance;
Annotation
Developing MDA Applications with the PhpManteiga Framework
Annotations in PHP?
Developing MDA Applications with the PhpManteiga Framework
Probably you may have already used some kind of
annotation in your code!
/**
* Class Hello World
*
* @author Ausla
* @see http://www.ausla.com.br
*/
Class Hello {}
● The use of PhpDoc;
● Launch of release 5 of PHP;
● Some frameworks access PhpDoc tags;
● Some frameworks have started using specific tags;
Historic of Annotations on PHP
Developing MDA Applications with the PhpManteiga Framework
Extending the API Reflection of PHP 5
● Provides access to PhpDoc tags;
● Used to get information about types of parameter or
properties;
● It has no real support the annotation;
And how does it work then?
Developing MDA Applications with the PhpManteiga Framework
Generic Frameworks
● Allows you to create your own annotations;
● Provides generic parsing in annotations;
● Provides access at runtime;
● No standard norm for the annotations;
And how does it work then?
Developing MDA Applications with the PhpManteiga Framework
Internal Architecture of
PhpManteiga
Developing MDA Applications with the PhpManteiga Framework
AbstractDao
SingletonPDO
Internal Architecture of PhpManteiga
Developing MDA Applications with the PhpManteiga Framework
Clients
Internet FrontController
Action
(Controller)
1 2
107
DB
(Oracle,
PostgreSQL,
MySQL, etc.)
15
Smarty
(View)
16
Facade
Entity
(Model)
MBO
MQL
116
8
9
12
5
13
4
3 14
They are responsible for mapping all
classes through autoload calls, enabling
rapid development without the need for
previous statements. The mapping is
done through an XML file named
context-config.xml.
Classes, Context and MappingClass
Developing MDA Applications with the PhpManteiga Framework
It is responsible for instantiating initial session
variables in the architecture through an XML
file named init-config.xml, where each XML tag
described in this file will be instantiated only the
first time the system is called with the values
entered in the respective file.
Initialization
Developing MDA Applications with the PhpManteiga Framework
They are responsible for handling all the
exceptions and alerts that have occurred in the
architecture, and all exceptions are logged in
the Log4Php folder, where this folder is defined
in the Context classes through an XML file
named context-config.xml in the Log tag.
ErrorHandler and Error
Developing MDA Applications with the PhpManteiga Framework
It is responsible for the control of the processing
flow of the entire architecture since the request
is received by it and then it is checked if the
action (command) can be executed. It is in this
class that the access permissions to the Actions
that are being called are checked.
FrontController
Developing MDA Applications with the PhpManteiga Framework
The abstract class of access to data through
independent SQL commands of the database, in
this class all methods of manipulation of data
through the SingletonPDO class are described.
AbstractDAO
Developing MDA Applications with the PhpManteiga Framework
This class implements a pool of connections to
the database through the PDO, being
performed by the configuration XML file, called
database-config.xml. This class uses an
AbstractFactory project pattern, through the
DatabaseFactory class, to access the various
databases supported by the PDO drivers.
SingletonPDO
Developing MDA Applications with the PhpManteiga Framework
This class implements the
AbstractFactory design pattern of all
connection classes of various types of
databases.
DatabaseFactory
Developing MDA Applications with the PhpManteiga Framework
They are responsible for the PDO
connection to the various types of
databases on the market, where
connections to MySQL, PostgreSQL,
Oracle, and MSSQL were used through a
single interface called IDatabase.
IDatabase, MySQL, PgSQL, Oracle and MSSQL
Developing MDA Applications with the PhpManteiga Framework
This class implements the standard OQL (Object
Query Language), among its main features allows
to retrieve and manipulate objects stored in the
database. The MQL class was developed based on
the hibernate HQL (Hibernate Query Language)
pattern, using the hibernate LAZY technique.
MQL (Manteiga Query Language)
Developing MDA Applications with the PhpManteiga Framework
This class implements the annotation on the Entity
object and the overhead of the GET and SET
methods, using internally in its methods (find, save
and delete) a call to MQL without the developer
having specific knowledge of SQL.
MBO (Manteiga Business Object)
Developing MDA Applications with the PhpManteiga Framework
This class implements the objects that represent
the tables in the database, extending the MBO
class. It is in this class that all the annotations will
be described to describe the correct form of the
object.
Entity
Developing MDA Applications with the PhpManteiga Framework
It is responsible for grouping all the Entity class
functionalities of a given package, organizing it by
features with similar characteristics.
Facade
Developing MDA Applications with the PhpManteiga Framework
This class implements the interaction between
presentation (Smarty) and business (Facade)
layers, having 3 minimal methods (show, form and
submit). The Actions correspond to the Command
project pattern that will be validated by the
FrontController.
Actions
Developing MDA Applications with the PhpManteiga Framework
This class is responsible for interacting directly
with the presentation layer (Smarty).
ActionForm
Developing MDA Applications with the PhpManteiga Framework
Design Patterns Used
Developing MDA Applications with the PhpManteiga Framework
● FrontController
● Command
● Singleton
● AbstractFactory
● Facade
Design Patterns Used
Developing MDA Applications with the PhpManteiga Framework
Third Party Tools Used
Developing MDA Applications with the PhpManteiga Framework
● AccessMethods
● Addendum
● Smarty
● PhpDoc
● JQuery/Ext
Third Party Tools Used
Developing MDA Applications with the PhpManteiga Framework
Success Cases
Developing MDA Applications with the PhpManteiga Framework
Virtual Police Station of the Pará State
Developing MDA Applications with the PhpManteiga Framework
Governor's Agenda
Developing MDA Applications with the PhpManteiga Framework
PRODEPA Assisted Monitoring System
Developing MDA Applications with the PhpManteiga Framework
● Gerador de formulários e pesquisa online chamado eForms;
● Internal Control of the Management Unit of the State;
● Payment Control of the prefectures by automatic debit of the
IGEPREV;
● Health Plan Company Management System;
● Modules of the integrated management system of the
Secretariat of Education of the Pará State;
Other Success Cases
Developing MDA Applications with the PhpManteiga Framework
More information
Developing MDA Applications with the PhpManteiga Framework
A1Br - First Accessible News Portal in Brazil
More information
http://phpmanteiga.sourceforge.net/
https://github.com/lgfcruz/PhpManteiga
Luiz Guilherme Cruz
PhpManteiga Framework
Thanks
Luiz Guilherme Cruz
lgfcruz@gmail.com
Rafael Santos dos Reis
rafaelsreis@gmail.com
Developing MDA Applications with the

Contenu connexe

Similaire à Developing MDA Applications with the PhpManteiga Framework

Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...
Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...
Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...JPLoft Solutions
 
PHP vs .NET vs JAVA : The Right Tech for Your Next Big Project
PHP vs .NET vs JAVA : The Right Tech for Your Next Big ProjectPHP vs .NET vs JAVA : The Right Tech for Your Next Big Project
PHP vs .NET vs JAVA : The Right Tech for Your Next Big ProjectRosalie Lauren
 
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 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Alaina Carter
 
Can I learn PHP course in 3 months..pptx
Can I learn PHP course in 3 months..pptxCan I learn PHP course in 3 months..pptx
Can I learn PHP course in 3 months..pptxasmeerana605
 
Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024Clarion Technologies
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyMarcos Labad
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development ServicesKabilan D
 
408372362-Student-Result-management-System-project-report-docx.docx
408372362-Student-Result-management-System-project-report-docx.docx408372362-Student-Result-management-System-project-report-docx.docx
408372362-Student-Result-management-System-project-report-docx.docxsanthoshyadav23
 
Codeigniter Introduction
Codeigniter IntroductionCodeigniter Introduction
Codeigniter IntroductionAshfan Ahamed
 
DrupalDeveloper
DrupalDeveloperDrupalDeveloper
DrupalDeveloperRaju J
 
Top 10 best PHP frameworks for web development.pdf
Top 10 best PHP frameworks for web development.pdfTop 10 best PHP frameworks for web development.pdf
Top 10 best PHP frameworks for web development.pdfMoon Technolabs Pvt. Ltd.
 
Trusted PHP Development Services in the USA
Trusted PHP Development Services in the USATrusted PHP Development Services in the USA
Trusted PHP Development Services in the USAtechnoprofiles
 

Similaire à Developing MDA Applications with the PhpManteiga Framework (20)

Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...
Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...
Why CakePHP Is Superior to Other Web Frameworks! Examine Its Pros & Cons For ...
 
PHP vs .NET vs JAVA : The Right Tech for Your Next Big Project
PHP vs .NET vs JAVA : The Right Tech for Your Next Big ProjectPHP vs .NET vs JAVA : The Right Tech for Your Next Big Project
PHP vs .NET vs JAVA : The Right Tech for Your Next Big Project
 
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...
 
Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020
 
Can I learn PHP course in 3 months..pptx
Can I learn PHP course in 3 months..pptxCan I learn PHP course in 3 months..pptx
Can I learn PHP course in 3 months..pptx
 
cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)
 
Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024Top 13 Backend Frameworks for Web development in 2024
Top 13 Backend Frameworks for Web development in 2024
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
 
Software Development with PHP & Laravel
Software Development  with PHP & LaravelSoftware Development  with PHP & Laravel
Software Development with PHP & Laravel
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development Services
 
408372362-Student-Result-management-System-project-report-docx.docx
408372362-Student-Result-management-System-project-report-docx.docx408372362-Student-Result-management-System-project-report-docx.docx
408372362-Student-Result-management-System-project-report-docx.docx
 
PHP Frameworks
PHP FrameworksPHP Frameworks
PHP Frameworks
 
Full Stack Development
Full Stack DevelopmentFull Stack Development
Full Stack Development
 
AseemMahajan_Resume
AseemMahajan_ResumeAseemMahajan_Resume
AseemMahajan_Resume
 
Codeigniter Introduction
Codeigniter IntroductionCodeigniter Introduction
Codeigniter Introduction
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
 
DrupalDeveloper
DrupalDeveloperDrupalDeveloper
DrupalDeveloper
 
FLossEd-BK Tequila Framework3.2.1
FLossEd-BK Tequila Framework3.2.1FLossEd-BK Tequila Framework3.2.1
FLossEd-BK Tequila Framework3.2.1
 
Top 10 best PHP frameworks for web development.pdf
Top 10 best PHP frameworks for web development.pdfTop 10 best PHP frameworks for web development.pdf
Top 10 best PHP frameworks for web development.pdf
 
Trusted PHP Development Services in the USA
Trusted PHP Development Services in the USATrusted PHP Development Services in the USA
Trusted PHP Development Services in the USA
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Developing MDA Applications with the PhpManteiga Framework

  • 1. Rafael Santos dos Reis & Luiz Guilherme Cruz PhpManteiga Framework Developing MDA Applications with the
  • 2. Rafael Santos dos Reis rafaelsreis@gmail.com https://www.linkedin.com/in/rafael-santos-dos-reis-2790ab52/ Graduated in Technology in Analysis and Development of Systems and Post graduated in the MBA course in Project Management. Extensive experience in systems development with the focus in the areas of Project Management, Software Architecture, Databases and agile methodologies. Luiz Guilherme Cruz lgfcruz@gmail.com http://br.linkedin.com/in/luizguilhermecruz Graduated in Data Processing by UNAMA, Specialization in Web Technology by CESUPA, MBA in Project Management by FGV - Fundação Getúlio Vargas, PRODEPA (Data Processing of the Pará State) employee in the area of systems development in Technology Management and Innovation, Web Accessibility Consultant and Assistive Software of the ACESSAR - UFRA Nucleus.
  • 3. Objective Developing MDA Applications with the PhpManteiga Framework
  • 4. Objective The PhpManteiga Framework has as the main objective make the development of web applications with the use of PHP and UML language easily and quickly by anyone with the minimum knowledge required. Developing MDA Applications with the PhpManteiga Framework
  • 5. What is the PhpManteiga? Developing MDA Applications with the PhpManteiga Framework
  • 6. What is the PhpManteiga? It is a framework for web development using the main design patterns of the market, aimed at increased productivity focused on MDA technology using UML resources. Developing MDA Applications with the PhpManteiga Framework
  • 7. Why PhpManteiga? Developing MDA Applications with the PhpManteiga Framework
  • 8. Why PhpManteiga? After we thought a lot about a name for our new framework we came up with what most represented what we wanted for this tool. Hence we call it PhpManteiga. PHP because it is a framework in PHP and "Manteiga" (Butter in English) that for us is a cinch (a piece of cake!), which allows anyone can program without a deep knowledge of the PHP language. Developing MDA Applications with the PhpManteiga Framework
  • 9. MDA (Model Driven Architecture) Developing MDA Applications with the PhpManteiga Framework
  • 10. ● It is a systems development approach that allows project and construction independent of programming language. ● It is a conceptual architecture for software development defined by the OMG (Object Management Group); ● It is not a development process; ● Portability, Reuse and Productivity; MDA (Model Driven Architecture) Developing MDA Applications with the PhpManteiga Framework
  • 11. MDA (Model Driven Architecture) Developing MDA Applications with the PhpManteiga Framework PIM Platform Independent Model PSM Platform Specific Model MDA Transformation Artifacts and Codes
  • 12. Used Technologies Developing MDA Applications with the PhpManteiga Framework
  • 13. Developing MDA Applications with the PhpManteiga Framework Used Technologies PHP DB (DatabaseFactory) View (Smarty) Model (Entity) Controller (Action) XML (Config Files) UML (Conceptual Model)
  • 14. PHP (Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. Source: php.net PHP Developing MDA Applications with the PhpManteiga Framework
  • 15. It is a software architecture standard that separates the representation of information from user interaction with it. The model consists of application data, business rules, logic, and functions. A view can be any output representation of the data, such as a table or a diagram. The controller mediates the input, converting it to commands for the model or view. The core ideas behind MVC are code reuse and concept separation. Source: Wikipedia MVC Developing MDA Applications with the PhpManteiga Framework
  • 16. MVC Developing MDA Applications with the PhpManteiga Framework Clients Internet FrontController Controller 1 2 43 Model 5 View 6
  • 17. ● Access interface of a Database of the PHP; ● Abstraction of the database layer; ● Independence of database; ● It is Object Oriented; PDO (PHP Data Object) Developing MDA Applications with the PhpManteiga Framework
  • 18. ● Independence of the DBMS; ● Access to own structures for systems oriented to objects; ● Ability to execute a specific program of application in different systems such as the minimum of changes in the program; OQL Support Developing MDA Applications with the PhpManteiga Framework
  • 19. ● Add metadata to classes, properties, and methods; ● Does not directly affect the application; ● Can be parameterized by simple tags; ● Facility in the code maintenance; Annotation Developing MDA Applications with the PhpManteiga Framework
  • 20. Annotations in PHP? Developing MDA Applications with the PhpManteiga Framework Probably you may have already used some kind of annotation in your code! /** * Class Hello World * * @author Ausla * @see http://www.ausla.com.br */ Class Hello {}
  • 21. ● The use of PhpDoc; ● Launch of release 5 of PHP; ● Some frameworks access PhpDoc tags; ● Some frameworks have started using specific tags; Historic of Annotations on PHP Developing MDA Applications with the PhpManteiga Framework
  • 22. Extending the API Reflection of PHP 5 ● Provides access to PhpDoc tags; ● Used to get information about types of parameter or properties; ● It has no real support the annotation; And how does it work then? Developing MDA Applications with the PhpManteiga Framework
  • 23. Generic Frameworks ● Allows you to create your own annotations; ● Provides generic parsing in annotations; ● Provides access at runtime; ● No standard norm for the annotations; And how does it work then? Developing MDA Applications with the PhpManteiga Framework
  • 24. Internal Architecture of PhpManteiga Developing MDA Applications with the PhpManteiga Framework
  • 25. AbstractDao SingletonPDO Internal Architecture of PhpManteiga Developing MDA Applications with the PhpManteiga Framework Clients Internet FrontController Action (Controller) 1 2 107 DB (Oracle, PostgreSQL, MySQL, etc.) 15 Smarty (View) 16 Facade Entity (Model) MBO MQL 116 8 9 12 5 13 4 3 14
  • 26. They are responsible for mapping all classes through autoload calls, enabling rapid development without the need for previous statements. The mapping is done through an XML file named context-config.xml. Classes, Context and MappingClass Developing MDA Applications with the PhpManteiga Framework
  • 27. It is responsible for instantiating initial session variables in the architecture through an XML file named init-config.xml, where each XML tag described in this file will be instantiated only the first time the system is called with the values entered in the respective file. Initialization Developing MDA Applications with the PhpManteiga Framework
  • 28. They are responsible for handling all the exceptions and alerts that have occurred in the architecture, and all exceptions are logged in the Log4Php folder, where this folder is defined in the Context classes through an XML file named context-config.xml in the Log tag. ErrorHandler and Error Developing MDA Applications with the PhpManteiga Framework
  • 29. It is responsible for the control of the processing flow of the entire architecture since the request is received by it and then it is checked if the action (command) can be executed. It is in this class that the access permissions to the Actions that are being called are checked. FrontController Developing MDA Applications with the PhpManteiga Framework
  • 30. The abstract class of access to data through independent SQL commands of the database, in this class all methods of manipulation of data through the SingletonPDO class are described. AbstractDAO Developing MDA Applications with the PhpManteiga Framework
  • 31. This class implements a pool of connections to the database through the PDO, being performed by the configuration XML file, called database-config.xml. This class uses an AbstractFactory project pattern, through the DatabaseFactory class, to access the various databases supported by the PDO drivers. SingletonPDO Developing MDA Applications with the PhpManteiga Framework
  • 32. This class implements the AbstractFactory design pattern of all connection classes of various types of databases. DatabaseFactory Developing MDA Applications with the PhpManteiga Framework
  • 33. They are responsible for the PDO connection to the various types of databases on the market, where connections to MySQL, PostgreSQL, Oracle, and MSSQL were used through a single interface called IDatabase. IDatabase, MySQL, PgSQL, Oracle and MSSQL Developing MDA Applications with the PhpManteiga Framework
  • 34. This class implements the standard OQL (Object Query Language), among its main features allows to retrieve and manipulate objects stored in the database. The MQL class was developed based on the hibernate HQL (Hibernate Query Language) pattern, using the hibernate LAZY technique. MQL (Manteiga Query Language) Developing MDA Applications with the PhpManteiga Framework
  • 35. This class implements the annotation on the Entity object and the overhead of the GET and SET methods, using internally in its methods (find, save and delete) a call to MQL without the developer having specific knowledge of SQL. MBO (Manteiga Business Object) Developing MDA Applications with the PhpManteiga Framework
  • 36. This class implements the objects that represent the tables in the database, extending the MBO class. It is in this class that all the annotations will be described to describe the correct form of the object. Entity Developing MDA Applications with the PhpManteiga Framework
  • 37. It is responsible for grouping all the Entity class functionalities of a given package, organizing it by features with similar characteristics. Facade Developing MDA Applications with the PhpManteiga Framework
  • 38. This class implements the interaction between presentation (Smarty) and business (Facade) layers, having 3 minimal methods (show, form and submit). The Actions correspond to the Command project pattern that will be validated by the FrontController. Actions Developing MDA Applications with the PhpManteiga Framework
  • 39. This class is responsible for interacting directly with the presentation layer (Smarty). ActionForm Developing MDA Applications with the PhpManteiga Framework
  • 40. Design Patterns Used Developing MDA Applications with the PhpManteiga Framework
  • 41. ● FrontController ● Command ● Singleton ● AbstractFactory ● Facade Design Patterns Used Developing MDA Applications with the PhpManteiga Framework
  • 42. Third Party Tools Used Developing MDA Applications with the PhpManteiga Framework
  • 43. ● AccessMethods ● Addendum ● Smarty ● PhpDoc ● JQuery/Ext Third Party Tools Used Developing MDA Applications with the PhpManteiga Framework
  • 44. Success Cases Developing MDA Applications with the PhpManteiga Framework
  • 45. Virtual Police Station of the Pará State Developing MDA Applications with the PhpManteiga Framework
  • 46. Governor's Agenda Developing MDA Applications with the PhpManteiga Framework
  • 47. PRODEPA Assisted Monitoring System Developing MDA Applications with the PhpManteiga Framework
  • 48. ● Gerador de formulários e pesquisa online chamado eForms; ● Internal Control of the Management Unit of the State; ● Payment Control of the prefectures by automatic debit of the IGEPREV; ● Health Plan Company Management System; ● Modules of the integrated management system of the Secretariat of Education of the Pará State; Other Success Cases Developing MDA Applications with the PhpManteiga Framework
  • 49. More information Developing MDA Applications with the PhpManteiga Framework
  • 50. A1Br - First Accessible News Portal in Brazil More information http://phpmanteiga.sourceforge.net/ https://github.com/lgfcruz/PhpManteiga Luiz Guilherme Cruz
  • 51. PhpManteiga Framework Thanks Luiz Guilherme Cruz lgfcruz@gmail.com Rafael Santos dos Reis rafaelsreis@gmail.com Developing MDA Applications with the