SlideShare a Scribd company logo
MainframePHP
The fast PHP framework
Vangelis Bibakis
@ JoomlaDay Greece 2013
About your speaker
Founder: DemianLabs.com
CTO: AdAxem.eu
Creator of: MainframePHP
& many micro web apps
@bibakis
bibakisv@gmail.com
Hey, thanks professor !
What we‟ll talk about today
1. Case studies
2. Productivity
3. Performance
4. Learnability
5. Themes
6. Assets
7. Plugins
8. Libraries
Yet… What is Mainframe ?
• A PHP framework based on CodeIgniter
• Adds essential functionality that
CodeIgniter is missing
• Focused on web apps
• Best open source tools included
( jQuery, Bootstrap, html5 boilerplate & others)
Yet… What is Mainframe ?
In a few words…
“Mainframe is to CodeIgniter,
what Ubuntu is to Debian”
Vangelis
1. Case studies
ARTIFAX EVENT 4
• 600.000 lines of code(so far)
• The “photoshop” of event management
• Large established client base
• Huge feature set
Mainframe, the fast PHP framework
1. Case studies
If Event 4 was a Greek startup
it would be bigger than…
1. Case studies
If Event 4 was a Greek startup
it would be bigger than…
• CSS Igniter
1. Case studies
If Event 4 was a Greek startup
it would be bigger than…
• CSS Igniter
• Incrediblue
1. Case studies
If Event 4 was a Greek startup
it would be bigger than…
• CSS Igniter
• Incrediblue
• Workable
1. Case studies
If Event 4 was a Greek startup
it would be bigger than…
• CSS Igniter
• Incrediblue
• Workable
Combined…
1. Case studies
• DeskHot.com
Bookmark manager, SaaS
• MobileTest.me
Micro web app, responsive design testing
• ConvertPSD2HTML.com
Slicing service, defunct (RIP)
• RandomTextGenerator.com
Micro web app, #1 in it‟s class
2. Productivity
• Before we took over development of Event
4,
3 other companies failed to deliver
2. Productivity
• Before we took over development of Event
4,
3 other companies failed to deliver
• Large feature sets delivered weekly
2. Productivity
• Before we took over development of Event
4,
3 other companies failed to deliver
• Large feature sets delivered weekly
• Constant improvement of UI, workflows
2. Productivity
How Mainframe makes you productive ?
2. Productivity
How Mainframe makes you productive ?
• Expands upon the MVC lifestyle
(everything in it‟s right place)
2. Productivity
How Mainframe makes you productive ?
• Expands upon the MVC lifestyle
(everything in it‟s right place)
• Keeps CodeIgniter‟s coding style
2. Productivity
How Mainframe makes you productive ?
• Expands upon the MVC lifestyle
(everything in it‟s right place)
• Keeps CodeIgniter‟s coding style
• It won‟t say no if you want to get nasty
2. Productivity
How Mainframe makes you productive ?
• Expands upon the MVC lifestyle
(everything in it‟s right place)
• Keeps CodeIgniter‟s coding style
• It won‟t say no if you want to get nasty
• Absolutely no command line needed
(web and nothing but the web)
3. Performance
• 45.000 monthly unique visitors on our
main server
3. Performance
• 45.000 monthly unique visitors on our
main server
• On a small VPS with 384mb of RAM
(that‟s less memory than your phone)
4. Learnability
• Mainframe is built upon the “hackathon
effect”
4. Learnability
• Mainframe is built upon the “hackathon
effect”
• It‟s so similar to CodeIgniter that
inexperienced developers can‟t tell the
difference
5. Themes
Template library by Colin Williams
5. Themes
Template library by Colin Williams
1. Setting the Default Template:
$template['active_group'] = 'default„;
$template['default']['template'] = 'template.php';
5. Themes
Template library by Colin Williams
1. Setting the Default Template:
$template['active_group'] = 'default„;
$template['default']['template'] = 'template.php';
2. Defining Regions
$template['default']['regions'] = array(
'header„,
'content„,
'footer„
);
5. Themes
Template library by Colin Williams
1. Setting the Default Template:
$template['active_group'] = 'default„;
$template['default']['template'] = 'template.php';
2. Defining Regions
$template['default']['regions'] = array(
'header„,
'content„,
'footer„
);
3. Defining Parsers
$template['default']['parser'] = 'smarty_parser„;
Template will call smarty_parser::parse()
$template['default']['parser'] = 'frog_parser„;
$template['default']['parser_method'] = 'frog„;
Template will call frog_parser::frog();
• … And 9 more steps
Mainframe, the fast PHP framework
5. Themes
Where in Mainframe you just do…
$this->load->theme(„Simplicity‟);
…in the controller‟s constructor
6. Assets
3rd party assets libraries for CodeIgniter
Things are a bit better here
There are a few nice libraries
But….
6. Assets
3rd party assets libraries for CodeIgniter
• They are usually abandoned after a while
• They don‟t support minifying/compression
• They don‟t support server side LESS/SASS
• They are not integrated into a theming
system
6. Assets
Mainframe supports
• Integration with the theming system
• Server side LESS
• Server side minification of
JavaScript/CSS/LESS
• Intelligent caching control
• Asset ordering
6. Assets
Sounds a lot but it‟s easy
$this->load->js(„javascript.js‟);
$this->load->css(„stylesheet.css‟);
$this->load->less(„stylesheet.less‟);
In either your theme or your views
6. Assets
Or if you are feeling bohemian
js(„javascript.js‟);
css(„stylesheet.css‟);
less(„stylesheet.less‟);
7. Plugins
Let‟s have a look at the most
popular system for adding support for
Modules / Plugins / HMVC / Whatever you want to call it
“Modular Extensions – HMVC”
by
Wiredesignz
First let‟s look at the documentation…
Mainframe, the fast PHP framework
Mainframe, the fast PHP framework
Mainframe, the fast PHP framework
Mainframe, the fast PHP framework
7. Plugins
In Mainframe
Just place your files in
/app/plugins/plugin_name/
Using the exact same structure as in plain CodeIgniter
/models
/views
/controllers
/helpers
8. Libraries
Libraries in Mainframe have a special place
in /libs
They are grouped by language like so:
• Css
• Js
• Php
• CodeIgniter
• Common
8. Libraries
CodeIgniter is a library ?
• Well… technically no.
• But by treating it as one we have a very
simple upgrade procedure for the times a
new CodeIgniter version is released.
• Delete the old folder, paste the new one.
You don‟t have to touch anything else.
8. Libraries
• Mainframe supports multiple apps all running
from a single installation
• For example you can have
www.deskhot.com
mobile.deskhot.com
intranet.deskhot.com
• “Common” contains all the code you want
shared by all these applications. For example
your custom image resize helper.
Peace & simple living

More Related Content

What's hot (20)

PPTX
yii1
Rajat Gupta
 
PDF
Introduction to PHP H/MVC Frameworks by www.silicongulf.com
Christopher Cubos
 
PPTX
PHP Framework Battle
Achievers Tech
 
PPTX
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
European Collaboration Summit
 
PDF
Widgets neil
RavingTiger
 
PPTX
Yii 2.0 overview - 1 of 2
Cassiano Surek
 
PDF
Yii Framework Security
Ilko Kacharov
 
PPT
Yii framework
Pratik Gondaliya
 
PPTX
Entity Framework 7: What's New?
Ricardo Peres
 
PPTX
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Steve Kessler
 
PDF
Alfresco Day Stockholm 2015 - Rapid UI Development
Nicole Szigeti
 
PPTX
Practical Application of API-First in microservices development
Chavdar Baikov
 
PDF
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
NCCOMMS
 
PPTX
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Esri Nederland
 
KEY
Yii Introduction
Jason Ragsdale
 
PDF
Best PHP Frameworks
Clixlogix Technologies
 
PPTX
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
PDF
Yii PHP MVC Framework presentation silicongulf.com
Christopher Cubos
 
KEY
RIA with Flex & PHP - Tulsa TechFest 2009
Jason Ragsdale
 
PPTX
Supercharge Your SharePoint Framework Webpart with React
Eric Overfield
 
Introduction to PHP H/MVC Frameworks by www.silicongulf.com
Christopher Cubos
 
PHP Framework Battle
Achievers Tech
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
European Collaboration Summit
 
Widgets neil
RavingTiger
 
Yii 2.0 overview - 1 of 2
Cassiano Surek
 
Yii Framework Security
Ilko Kacharov
 
Yii framework
Pratik Gondaliya
 
Entity Framework 7: What's New?
Ricardo Peres
 
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Steve Kessler
 
Alfresco Day Stockholm 2015 - Rapid UI Development
Nicole Szigeti
 
Practical Application of API-First in microservices development
Chavdar Baikov
 
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
NCCOMMS
 
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Esri Nederland
 
Yii Introduction
Jason Ragsdale
 
Best PHP Frameworks
Clixlogix Technologies
 
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
Yii PHP MVC Framework presentation silicongulf.com
Christopher Cubos
 
RIA with Flex & PHP - Tulsa TechFest 2009
Jason Ragsdale
 
Supercharge Your SharePoint Framework Webpart with React
Eric Overfield
 

Similar to Mainframe, the fast PHP framework (20)

PPTX
CODE IGNITER
Yesha kapadia
 
PPTX
PHP Frameworks & Introduction to CodeIgniter
Jamshid Hashimi
 
PPTX
Codeigniter
ShahRushika
 
DOCX
Codeigniter
Chirag Parmar
 
PPT
Benefits of the CodeIgniter Framework
Toby Beresford
 
PPTX
Codeigniter
shah baadshah
 
PPTX
CodeIgniter
Sandun_Prasanna
 
PPTX
MVC & CodeIgniter
Harshit Gupta
 
PPT
Introduction to CodeIgniter
kindafunnylookin
 
PPTX
codeigniter
Utkarsh Chaturvedi
 
PDF
Code igniter - A brief introduction
Commit University
 
PPT
PHP Frameworks and CodeIgniter
KHALID C
 
PDF
CodeIgniter Website Development a Comprehensive Guide 2024 .pdf
JPLoft Solutions
 
DOCX
report_vendor_connect
Yash Mittal
 
PDF
Introduction To CodeIgniter
Muhammad Hafiz Hasan
 
PPS
Codeigniter, a MVC framework for beginner
aminbd
 
PPT
Introduction To CodeIgniter
schwebbie
 
PDF
Analyzing Optimal Practises for Web Frameworks
IRJET Journal
 
PPTX
Codeignitor
Gandhi Ravi
 
PDF
Codeigniter
Joram Salinas
 
CODE IGNITER
Yesha kapadia
 
PHP Frameworks & Introduction to CodeIgniter
Jamshid Hashimi
 
Codeigniter
ShahRushika
 
Codeigniter
Chirag Parmar
 
Benefits of the CodeIgniter Framework
Toby Beresford
 
Codeigniter
shah baadshah
 
CodeIgniter
Sandun_Prasanna
 
MVC & CodeIgniter
Harshit Gupta
 
Introduction to CodeIgniter
kindafunnylookin
 
codeigniter
Utkarsh Chaturvedi
 
Code igniter - A brief introduction
Commit University
 
PHP Frameworks and CodeIgniter
KHALID C
 
CodeIgniter Website Development a Comprehensive Guide 2024 .pdf
JPLoft Solutions
 
report_vendor_connect
Yash Mittal
 
Introduction To CodeIgniter
Muhammad Hafiz Hasan
 
Codeigniter, a MVC framework for beginner
aminbd
 
Introduction To CodeIgniter
schwebbie
 
Analyzing Optimal Practises for Web Frameworks
IRJET Journal
 
Codeignitor
Gandhi Ravi
 
Codeigniter
Joram Salinas
 
Ad

Recently uploaded (20)

PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
July Patch Tuesday
Ivanti
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Python basic programing language for automation
DanialHabibi2
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Ad

Mainframe, the fast PHP framework

  • 1. MainframePHP The fast PHP framework Vangelis Bibakis @ JoomlaDay Greece 2013
  • 2. About your speaker Founder: DemianLabs.com CTO: AdAxem.eu Creator of: MainframePHP & many micro web apps @bibakis [email protected]
  • 4. What we‟ll talk about today 1. Case studies 2. Productivity 3. Performance 4. Learnability 5. Themes 6. Assets 7. Plugins 8. Libraries
  • 5. Yet… What is Mainframe ? • A PHP framework based on CodeIgniter • Adds essential functionality that CodeIgniter is missing • Focused on web apps • Best open source tools included ( jQuery, Bootstrap, html5 boilerplate & others)
  • 6. Yet… What is Mainframe ? In a few words… “Mainframe is to CodeIgniter, what Ubuntu is to Debian” Vangelis
  • 7. 1. Case studies ARTIFAX EVENT 4 • 600.000 lines of code(so far) • The “photoshop” of event management • Large established client base • Huge feature set
  • 9. 1. Case studies If Event 4 was a Greek startup it would be bigger than…
  • 10. 1. Case studies If Event 4 was a Greek startup it would be bigger than… • CSS Igniter
  • 11. 1. Case studies If Event 4 was a Greek startup it would be bigger than… • CSS Igniter • Incrediblue
  • 12. 1. Case studies If Event 4 was a Greek startup it would be bigger than… • CSS Igniter • Incrediblue • Workable
  • 13. 1. Case studies If Event 4 was a Greek startup it would be bigger than… • CSS Igniter • Incrediblue • Workable Combined…
  • 14. 1. Case studies • DeskHot.com Bookmark manager, SaaS • MobileTest.me Micro web app, responsive design testing • ConvertPSD2HTML.com Slicing service, defunct (RIP) • RandomTextGenerator.com Micro web app, #1 in it‟s class
  • 15. 2. Productivity • Before we took over development of Event 4, 3 other companies failed to deliver
  • 16. 2. Productivity • Before we took over development of Event 4, 3 other companies failed to deliver • Large feature sets delivered weekly
  • 17. 2. Productivity • Before we took over development of Event 4, 3 other companies failed to deliver • Large feature sets delivered weekly • Constant improvement of UI, workflows
  • 18. 2. Productivity How Mainframe makes you productive ?
  • 19. 2. Productivity How Mainframe makes you productive ? • Expands upon the MVC lifestyle (everything in it‟s right place)
  • 20. 2. Productivity How Mainframe makes you productive ? • Expands upon the MVC lifestyle (everything in it‟s right place) • Keeps CodeIgniter‟s coding style
  • 21. 2. Productivity How Mainframe makes you productive ? • Expands upon the MVC lifestyle (everything in it‟s right place) • Keeps CodeIgniter‟s coding style • It won‟t say no if you want to get nasty
  • 22. 2. Productivity How Mainframe makes you productive ? • Expands upon the MVC lifestyle (everything in it‟s right place) • Keeps CodeIgniter‟s coding style • It won‟t say no if you want to get nasty • Absolutely no command line needed (web and nothing but the web)
  • 23. 3. Performance • 45.000 monthly unique visitors on our main server
  • 24. 3. Performance • 45.000 monthly unique visitors on our main server • On a small VPS with 384mb of RAM (that‟s less memory than your phone)
  • 25. 4. Learnability • Mainframe is built upon the “hackathon effect”
  • 26. 4. Learnability • Mainframe is built upon the “hackathon effect” • It‟s so similar to CodeIgniter that inexperienced developers can‟t tell the difference
  • 27. 5. Themes Template library by Colin Williams
  • 28. 5. Themes Template library by Colin Williams 1. Setting the Default Template: $template['active_group'] = 'default„; $template['default']['template'] = 'template.php';
  • 29. 5. Themes Template library by Colin Williams 1. Setting the Default Template: $template['active_group'] = 'default„; $template['default']['template'] = 'template.php'; 2. Defining Regions $template['default']['regions'] = array( 'header„, 'content„, 'footer„ );
  • 30. 5. Themes Template library by Colin Williams 1. Setting the Default Template: $template['active_group'] = 'default„; $template['default']['template'] = 'template.php'; 2. Defining Regions $template['default']['regions'] = array( 'header„, 'content„, 'footer„ ); 3. Defining Parsers $template['default']['parser'] = 'smarty_parser„; Template will call smarty_parser::parse() $template['default']['parser'] = 'frog_parser„; $template['default']['parser_method'] = 'frog„; Template will call frog_parser::frog(); • … And 9 more steps
  • 32. 5. Themes Where in Mainframe you just do… $this->load->theme(„Simplicity‟); …in the controller‟s constructor
  • 33. 6. Assets 3rd party assets libraries for CodeIgniter Things are a bit better here There are a few nice libraries But….
  • 34. 6. Assets 3rd party assets libraries for CodeIgniter • They are usually abandoned after a while • They don‟t support minifying/compression • They don‟t support server side LESS/SASS • They are not integrated into a theming system
  • 35. 6. Assets Mainframe supports • Integration with the theming system • Server side LESS • Server side minification of JavaScript/CSS/LESS • Intelligent caching control • Asset ordering
  • 36. 6. Assets Sounds a lot but it‟s easy $this->load->js(„javascript.js‟); $this->load->css(„stylesheet.css‟); $this->load->less(„stylesheet.less‟); In either your theme or your views
  • 37. 6. Assets Or if you are feeling bohemian js(„javascript.js‟); css(„stylesheet.css‟); less(„stylesheet.less‟);
  • 38. 7. Plugins Let‟s have a look at the most popular system for adding support for Modules / Plugins / HMVC / Whatever you want to call it “Modular Extensions – HMVC” by Wiredesignz First let‟s look at the documentation…
  • 43. 7. Plugins In Mainframe Just place your files in /app/plugins/plugin_name/ Using the exact same structure as in plain CodeIgniter /models /views /controllers /helpers
  • 44. 8. Libraries Libraries in Mainframe have a special place in /libs They are grouped by language like so: • Css • Js • Php • CodeIgniter • Common
  • 45. 8. Libraries CodeIgniter is a library ? • Well… technically no. • But by treating it as one we have a very simple upgrade procedure for the times a new CodeIgniter version is released. • Delete the old folder, paste the new one. You don‟t have to touch anything else.
  • 46. 8. Libraries • Mainframe supports multiple apps all running from a single installation • For example you can have www.deskhot.com mobile.deskhot.com intranet.deskhot.com • “Common” contains all the code you want shared by all these applications. For example your custom image resize helper.
  • 47. Peace & simple living