Joomladay Nl 2009 - Nooku Framework

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites, 1 Group & 1 Event

    Joomladay Nl 2009 - Nooku Framework - Presentation Transcript

    1. nooku.org/framework
    2. Nooku Framework The extension API that speaks for itself ! Joomladay NL, June 2009 - Nieuwegein
    3. Technology, features, experience ! At some point, to stay viable, content management systems require a quantum evolution that takes them beyond technology and features and on to the satisfaction of a customer experience. That’s what we are trying to do with Nooku. Johan Janssens http:///www.nooku.org 1 2
    4. Joomla 1.0 Joomla! CMS http:///www.nooku.org 1 3
    5. Joomla 1.5 Joomla ! CMS Components Modules Extensions Templates Languages Administrator Site Application Installation XML-RPC Joomla! CMF Libraries Framework Plugins http:///www.nooku.org 1 4
    6. Nooku Framework http:///www.nooku.org 1 5
    7. What is it ? Rapid extension development framework for Joomla. •Version 0.7.0 • GPL v 2.0 license • Non-commercial • Joomla 1.5 only • Installs as a plugin • 30k lines of code • Can work standalone http:///www.nooku.org 1 6
    8. Why a new framework ? 1. Developing for Joomla 1.5 : • takes too much time • too much repeated tasks • resulting extensions are inflexible • PHP4 2. Existing framework don’t integrate easily with Joomla http:///www.nooku.org 1 7
    9. How it used to be ... ... class WeblinksController extends JController // Checkout the weblink {                 $model = $this->getModel('weblink');     function __construct($config = array())                 $model->checkout();     {             } break;         parent::__construct($config);             case 'edit'    :             {         // Register Extra tasks                 JRequest::setVar( 'hidemainmenu', 1 );         $this->registerTask( 'add',  'display' );                 JRequest::setVar( 'layout', 'form'  );         $this->registerTask( 'edit', 'display' );                 JRequest::setVar( 'view'  , 'weblink');                 JRequest::setVar( 'edit', true );     }                 // Checkout the weblink    function display( )                 $model = $this->getModel('weblink');     {                 $model->checkout();         switch($this->getTask())             } break;         {         }             case 'add'     :             {                 JRequest::setVar( 'hidemainmenu', 1 );                 JRequest::setVar( 'layout', 'form'  );                 JRequest::setVar( 'view'  , 'weblink');                 JRequest::setVar( 'edit', false ); ... http:///www.nooku.org 1 8
    10. How it should be ... class WeblinksControllerWeblinks extends KControllerForm { //do nothing } class WeblinksModelWeblinks extends KModelTable { //do nothing } class WeblinksViewWeblinks extends KViewHtml { //do nothing } That’s all you need for a working MVC extensions ! http:///www.nooku.org 1 9
    11. House Rules ! • Use existing Design Pattern Don’t reinvent the wheel - just make it roll smoother • Make all code reusable Don’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 Interface Learn once, apply everywhere KISS : keep it sexy and simple • Convention over configuration • Scaffolding is a fancy word for copy/paste http:///www.nooku.org 1 10
    12. Features ! Flexibility Extensibility •Auto-loading • Chain of command • Factory/Object Store • Inflector • Dependency injection • Mixins • Smart and dynamic MVC • Decorators Data handling Security • ORM/Table Gateway • Auto CSRF protection • REST/XML/JSON • Input filtering http:///www.nooku.org 1 11
    13. MVC KModel State State Query Change View Selection KView KController http:///www.nooku.org 1 12
    14. MVC KModel State State Query Change View Selection KView KController Execute Controller KDispatcher http:///www.nooku.org 1 13
    15. KDatabase KTable MVC KModel State State Query Change View Selection KView KController Execute Controller KDispatcher http:///www.nooku.org 1 14
    16. KDatabase KTable MVC KModel State State Query Change View Selection KView KController Execute Controller KDispatcher http:///www.nooku.org 1 15
    17. KDatabase KTable MVC KModel State State Query Change View Selection KView KController Execute Controller KTemplate KDispatcher http:///www.nooku.org 1 16
    18. KFactory KFactory::get('admin::com.harbour.model.boat'); KFactory::tmp('admin::com.harbour.model.boat'); KFactory::get('lib.koowa.database'); KFactory::get('lib.joomla.session'); http:///www.nooku.org 1 17
    19. KRequest KRequest::get('get.layout', 'cmd', 'default'); KRequest::set('get.layout', 'mylayout'); KRequest::get('post', 'string'); http:///www.nooku.org 1 18
    20. KController •Browse • Read • Edit • Add • Delete http:///www.nooku.org 1 19
    21. KTemplate <ul> <? foreach(@$boats as $boat) : ?> <li> <?=$boat->id?>. <?=$boat->name?> </li> <? endforeach; ?> </ul> http:///www.nooku.org 1 20
    22. Who is using it ? Anahita Social Engine http://www.anahitapolis.com Nooku Content http://www.nooku.org Custom Projects Upcoming Extensions •Port of Antwerp •Virtuemart 2.0 • Italian Institute of Technology • YOOTheme • Kainga Real Estate system • AEC Subscription http:///www.nooku.org 1 21
    23. Learn more ? 1. Check out our presentations http://www.nooku.org/framework 2. Look at the API http://api.nooku.org 3. Get code & mailing list access http://www.nooku.org/framework/request.html 4. Come to a Nooku Code Jam The next one is in Hamburg on June 27th ... or organize a Nooku Code Jam in your city http:///www.nooku.org 1 22
    24. You can find us at http://www.nooku.org You can follow us on http://www.twitter.com/nooku http:///www.nooku.org 1 23

    + Nooku TeamNooku Team, 5 months ago

    custom

    1322 views, 3 favs, 2 embeds more stats

    As Lead Architect of Joomla 1.5, Johan Janssens did more

    More info about this document

    CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

    Go to text version

    • Total Views 1322
      • 1288 on SlideShare
      • 34 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 0
    Most viewed embeds
    • 27 views on http://www.joomladays.nl
    • 7 views on http://www.joomlacommunity.eu

    more

    All embeds
    • 27 views on http://www.joomladays.nl
    • 7 views on http://www.joomlacommunity.eu

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories