nooku.org/framework
Joomladay, December 2009, Barcelona ES
Nooku Framework
The API that speaks for itself
1http:///www.nooku.org
What is it ?Rapid extension development framework for Joomla.
•Version 0.6.5/0.7.0
• GPL license
• Non-commercial
• Joomla 1.5 only
• Installs as a plugin
• 30k lines of code
• Can work standalone
6http:///www.nooku.org
1http:///www.nooku.org 3http:///www.nooku.org
Joomla 1.0
1http:///www.nooku.org 3http:///www.nooku.org
Joomla 1.0
1http:///www.nooku.org 3http:///www.nooku.org
Joomla ! CMS
Joomla! CMF
Components Modules Templates Languages
XML-RPCInstallationSiteAdministrator
Libraries Plugins
Extensions
Application
Framework
Joomla 1.5
1http:///www.nooku.org 3http:///www.nooku.org
+ Nooku Framework
1http:///www.nooku.org
Why a new framework ?
• takes too much time
• too much repeated tasks
• resulting extensions are inflexible
• PHP4
1. Developing for Joomla 1.5 :
2. Existing frameworks don’t integrate easily with Joomla
7
• allow you to build an application
• Joomla is an ecosystem of applications
http:///www.nooku.org
1http:///www.nooku.org
• Use existing Design PatternDon’t reinvent the wheel - just make it roll smoother
• Make all code reusableDon’t repeat yourself - and don’t repeat anyone else either
• Extreme flexibility Every object, and every part of the code must be extensible and replaceable.
Ability to hook into any controller, database or application action
• An API is like a User InterfaceLearn once, apply everywhereKISS : keep it sexy and simple
• Convention over configuration
• Scaffolding is a fancy word for automated copy/paste
House Rules !
10http:///www.nooku.org
1http:///www.nooku.org
Write less code !
11
Leaves more time to focus on business logic
and user experience
http:///www.nooku.org
1http:///www.nooku.org
How it should be ...class WeblinksControllerWeblinks extends KControllerForm{
// no code needed}
class WeblinksModelWeblinks extends KModelTable{
// no code needed}
class WeblinksViewWeblinks extends KViewHtml{
// no code needed}
That’s all you need for a working MVC extension!
9http:///www.nooku.org
1http:///www.nooku.org 11
Using Joomla Framework Using Nooku Framework
1.782
9.964
3.57230.190
Non comment Lines of CodeComment Lines of code
http:///www.nooku.org
?
NinjaboardLines of Code
1http:///www.nooku.org 11
Using Joomla Framework Using Nooku Framework
1.782
9.964
3.57230.190
Non comment Lines of CodeComment Lines of code
88% Reduction!
http:///www.nooku.org
NinjaboardLines of Code
1http:///www.nooku.org
Security!
11
IBM says Joomla is insecure
http:///www.nooku.org
1http:///www.nooku.org 11
“The high rank is due to third party apps developed for Joomla and not due to vulnerabilities in Joomla itself.”
Elin Waring - President Opensourcematters, Inc.
Link : http://community.joomla.org/blogs/community/1029-on-being-qthe-vendorq.html
http:///www.nooku.org
OSM says : Not our fault !
1http:///www.nooku.org 11
Link : http://community.joomla.org/blogs/community/1029-on-being-qthe-vendorq.html
“Write less code to lower the risk of vulnerabilities.Provide advanced automatic security features out
of the box.”
http:///www.nooku.org
Nooku Framework says :
1http:///www.nooku.org
Reusability!
11
3600+ extensions and counting
http:///www.nooku.org
1http:///www.nooku.org 11
Joomla goes CCK crazy
Link : http://www.alledia.com/blog/product-reviews/joomla-goes-cckrazy/
http:///www.nooku.org
1http:///www.nooku.org 11
• Extensions focus on features
• Extensions are not reusable
• Extensions are not flexible
http:///www.nooku.org
Problem ?
1http:///www.nooku.org 11
Nooku Framework helps you build extensible, reusable code
... even if you don’t know what you are doing!
http:///www.nooku.org
Solution !
1http:///www.nooku.org
Don’t code, specialize!
11http:///www.nooku.org
http:///www.nooku.org
KModel
KView KController
State
Query
View Selection
State
Change
Static MVC
21http:///www.nooku.org
Joomla 1.5 only
http:///www.nooku.org
KModel
KView KController
State
Query
View Selection
State
Change
KDatabase
KDispatcher
Execute
Controller
KTable
KTemplate
Dynamic MVC
22
All of this happens behind the scenes, without writing
any code.
Your task is specializing it: writing only the specifics
that deviate from the default behavior.
http:///www.nooku.org
1http:///www.nooku.org
Features !
•Auto-loading• Factory/Object Store
• Dependency injection
• Smart and dynamic MVC
• Chain of command
• Inflector
• Mixins
• Decorators
Extensibility
• Auto CSRF protection
• Input filtering
Security
Flexibility
• ORM/Table Gateway
• REST/XML/JSON
Data handling
11http:///www.nooku.org
1http:///www.nooku.org
•DOCman 2
• YOOTheme• AEC
• Dioscouri
Who is using it ?Anahita Social Engine
Nooku Content
•Port of Antwerp
• Italian Institute of Technology
• Kainga Real Estate system
Custom Projects Upcoming Extensions
http://www.anahitapolis.com
http://www.nooku.org
21
Ninjaforgehttp://www.ninjaforge.com
http:///www.nooku.org
1http:///www.nooku.org
Nooku Content
21http:///www.nooku.org
1http:///www.nooku.org
Anahita Social Engine
21http:///www.nooku.org
1http:///www.nooku.org
Ninjaboard
21http:///www.nooku.org
1http:///www.nooku.org
Learn more ?1. Check out our presentations
2. Look at the API
3. Get mailing list access
4. Get the code
http://www.nooku.org/framework
http://api.nooku.org
http://www.nooku.org/framework/request.html
22http:///www.nooku.org
http://sourceforge.net/projects/nooku-framework/
1http:///www.nooku.org
Questions ?
23http:///www.nooku.org
1http:///www.nooku.org 23
http://www.nooku.org
http://www.twitter.com/nooku
You can find us at
You can follow us on
http:///www.nooku.org
Top Related