31
nooku.org/framework

Joomladay Es 2009 - Nooku Framework

  • Upload
    nooku

  • View
    2.093

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Joomladay Es 2009  - Nooku Framework

nooku.org/framework

Page 2: Joomladay Es 2009  - Nooku Framework

Joomladay, December 2009, Barcelona ES

Nooku Framework

The API that speaks for itself

Page 3: Joomladay Es 2009  - Nooku Framework

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

Page 4: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org 3http:///www.nooku.org

Joomla 1.0

Page 5: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org 3http:///www.nooku.org

Joomla 1.0

Page 6: Joomladay Es 2009  - Nooku Framework

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

Page 7: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org 3http:///www.nooku.org

+ Nooku Framework

Page 8: Joomladay Es 2009  - 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

Page 9: Joomladay Es 2009  - Nooku Framework

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

Page 10: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Write less code !

11

Leaves more time to focus on business logic

and user experience

http:///www.nooku.org

Page 11: Joomladay Es 2009  - Nooku Framework

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

Page 12: Joomladay Es 2009  - Nooku Framework

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

Page 13: Joomladay Es 2009  - Nooku Framework

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

Page 14: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Security!

11

IBM says Joomla is insecure

http:///www.nooku.org

Page 15: Joomladay Es 2009  - Nooku Framework

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 !

Page 16: Joomladay Es 2009  - Nooku Framework

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 :

Page 17: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Reusability!

11

3600+ extensions and counting

http:///www.nooku.org

Page 18: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org 11

Joomla goes CCK crazy

Link : http://www.alledia.com/blog/product-reviews/joomla-goes-cckrazy/

http:///www.nooku.org

Page 19: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org 11

• Extensions focus on features

• Extensions are not reusable

• Extensions are not flexible

http:///www.nooku.org

Problem ?

Page 20: Joomladay Es 2009  - Nooku Framework

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 !

Page 21: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Don’t code, specialize!

11http:///www.nooku.org

Page 22: Joomladay Es 2009  - Nooku Framework

http:///www.nooku.org

KModel

KView KController

State

Query

View Selection

State

Change

Static MVC

21http:///www.nooku.org

Joomla 1.5 only

Page 23: Joomladay Es 2009  - Nooku Framework

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

Page 24: Joomladay Es 2009  - Nooku Framework

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

Page 25: Joomladay Es 2009  - Nooku Framework

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

Page 26: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Nooku Content

21http:///www.nooku.org

Page 27: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Anahita Social Engine

21http:///www.nooku.org

Page 28: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Ninjaboard

21http:///www.nooku.org

Page 29: Joomladay Es 2009  - Nooku Framework

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/

Page 30: Joomladay Es 2009  - Nooku Framework

1http:///www.nooku.org

Questions ?

23http:///www.nooku.org

Page 31: Joomladay Es 2009  - Nooku Framework

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