About Joomlatools and FOF in the Joomla! core.

85 views
Skip to first unread message

Alejandro Arroyave

unread,
Dec 30, 2015, 11:56:15 PM12/30/15
to Joomlatools Developers
Hello Joomlatools developers,

I have a doubt for a long time, really since that Joomla team decides add FOF in the core. Why the Joomla (Core) Team decides include FOF instead of Nooku (now Joomlatools Framework)? What's differences between FOF and Joomlatools Framework? What did he mean Dionysopoulos with this post about Nooku (http://www.dionysopoulos.me/why-i-m-not-using-the-nooku-framework-any-more.html)?

I have read both the frameworks documentations and now I don't know what to decide to develop my Joomla! Extensions.

Thank you for help and resolve my doubts.

--
Alejandro.

Johan Janssens

unread,
Dec 31, 2015, 3:26:06 AM12/31/15
to Joomlatools Developers
Hi Alejandro,

Thanks for your question. Why FOF was included or why Nick wrote his blog post are questions I'm afraid I cannot answer you. You are best to direct those to the relevant people. Which framework to use I can help with but frameworks are a bit like dating a new girlfriend, you need to discover them yourself. 

Both FOF and Joomlatools Framework are stable and continuously developed and are good choices when you wish to create custom Joomla extensions. Early versions of FOF were heavily inspired by my work on Nooku. We moved Nooku back to Joomlatools earlier in 2015  and our continuing on the work we started in 2008 already.

If you have technical questions about Joomlatools Framework I'm most happy to try and answer those, make sure to also check our our getting started guide : http://developer.joomlatools.com/framework/getting-started.html and feel free to hop into our gitter chat at http://gitter.im/joomlatools/dev

Happy coding and Happy NY!

Johan

Herman Peeren

unread,
Dec 31, 2015, 4:23:12 AM12/31/15
to Joomlatools Developers
Some remarks from me, as an independent developer who has used both frameworks. Without mentioning too much of some underlying and contra-productive 'politics' in Joomla.
  • As plans are now, FOF will be removed from Joomla's core for Joomla 4. But you can always add it, like you can add the Joomlatools Framework. Both will be available for future versions of Joomla.
  • Both FOF (inspired by Nooku) and Nooku/Joomlatools Framework add behaviours to components, but it is done in a more advanced (and in my opinion: better) way in Joomlatools Framework by using mixins and a chain of command (intercepting filters), where FOF uses Joomla-plugins for that (pub/sub). For Joomla 4 we are working in the direction of intecepting filters (via middleware of a command bus) to add so called 'horizontal components' to add behaviour, but time will learn if and when that will be fully realised.
  • The blogpost was written after Nicholas had based his Akeeba extensions on a then still instable version of Nooku Framework, which was very much in transition and it didn't work out very well for him. He then started FOF, trying to use some benefits of the Nooku Framework like Convention over Code, HMVC and the addition of behaviour, but with the focus on backwards compatibility. Later that focus was dropped. Nooku Framework is stable since version 1.0, some years ago now, so Nick's arguments against using Nooku Framework are not actual anymore. But a lesson could be, that if you don't want to be dependent from others for your software, you might better make your own framework. Both reinventing the wheel and being dependent have advantages and disadvantages.
  •  In FOF 2 some elements were added, like a primitive ORM (partly inspired by Laravel's Eloquent), although Joomla's active record pattern and database access is still used. Experiments like that are very interesting to study. FOF is always meant as an addition to the Joomla core, a framework on a framework, while Nooku was built as a new and better framework from the start.

Both Nicholas and I were in the Joomla 4 Architecture Workgroup in 2015, but we both stepped out. I will be working on some architectural stuff for Joomla 4, like the command bus and its middleware, but not as part of the workgroup anymore. The idea is that some of this will be used in the RESTful webservices that are planned for Joomla 3.6.


Talking about RESTful webservices: Joomlatools Framework has them out of the box! That is another advantage of this framework over others. In many respects it is much more mature.

Alejandro Arroyave

unread,
Dec 31, 2015, 12:05:17 PM12/31/15
to Joomlatools Developers
Thank you Johan for your answer.

I'm interesting in develop an extension using Joomlatools Framework and AngularJS, I go to read all documentation and if I have questions or doubts, I'm going to ask them for help.

Cheers!

Alejandro Arroyave

unread,
Dec 31, 2015, 12:13:46 PM12/31/15
to Joomlatools Developers
Thank you Herman for your reponse,

I have another question: Where I can participe and proposing ideas for future versions of Joomla?  I have read this https://www.joomla.org/about-joomla/contribute-to-joomla.html but I don't know where pull my request or ideas.

As you are part of Joomla Architecture group I ask you.

Cheers!

Herman Peeren

unread,
Dec 31, 2015, 1:49:21 PM12/31/15
to Joomlatools Developers
On Thursday, 31 December 2015 18:13:46 UTC+1, Alejandro Arroyave wrote:
Thank you Herman for your reponse,

I have another question: Where I can participe and proposing ideas for future versions of Joomla?  I have read this https://www.joomla.org/about-joomla/contribute-to-joomla.html but I don't know where pull my request or ideas.

As you are part of Joomla Architecture group I ask you.

Cheers!



To be clear: I'm not a member anymore of the Joomla 4 Architecture Working Group.

Contributions to Joomla are always welcome. In the past we had an ideas-list, but in open source, contributions in the form of telling others what they should build, don't work very well. Better is to contribute in the form of code or tests or documentation or within a working group, as stated in the page you refered to.

Pull requests are code-proposals that are done for Joomla CMS against this repo: https://github.com/joomla/joomla-cms
Any Joomla issues can be found in https://issues.joomla.org/

All Joomla working groups are listed on https://volunteers.joomla.org/working-groups
There are several Working Groups for Joomla 4 like: https://volunteers.joomla.org/working-groups/joomla-4-working-group , https://volunteers.joomla.org/working-groups/joomla-4-architecture and https://volunteers.joomla.org/working-groups/user-experience-working-group . Coordinator for Joomla 4 is Marco Dings https://volunteers.joomla.org/joomlers/marco-dings

BTW: Joomlatools Framework is open source too and you can also send pull requests to https://github.com/joomlatools/joomlatools-platform




 
 

Herman Peeren

unread,
Jan 1, 2016, 3:23:14 AM1/1/16
to Joomlatools Developers
Hi Alejandro, we better discuss Joomla-related issues on Joomla's general developers mailing list and Joomla CMS-specific development things on the Joomla CMS list. So we keep the Joomlatools-list specific and clean for Joomlatools/Nooku. Sorry I didn't realise that yesterday; started too early with the champagne. Bst wishes for everybody! May it be a good year for Joomlatools!

Johan Janssens

unread,
Jan 1, 2016, 5:03:17 PM1/1/16
to Joomlatools Developers
Hi Alejandro,

Great happy to help. If you haven't read it yet, check out our Backbone.js tutorial. It shows how to use our todo component as a REST backend for the TodoMVC using backbone. It shouldn't be that hard to port this example to Angular. 

If you have specific questions let me know and if you are interested to help us write a similar tutorial for Angular that would be very helpful. The markdown for the tutorial can be found here, feel free to fork it : https://github.com/joomlatools/developer.joomlatools.com/blob/master/framework/tutorials/backbonejs-and-joomla.md

Let le know if you have questions!

Happy coding!

Johan

Johan Janssens

unread,
Jan 1, 2016, 5:14:09 PM1/1/16
to Joomlatools Developers
Thanks Herman! Very helpful insights.

Just one key important point I want to add. FOF was build with the idea to extend upon Joomla hence it's name (Framework of a Framework) improving/extending upon the existing core Joomla libraries, using similar concepts I introduced in Nooku.

Nooku, from day one, was build with the idea to depend as least as possible on Joomla. Out bigger goal is to create a framework that can run inside Joomla but can also be used standalone or as part of other web applications. 

Nooku 2.x is still partly coupled to Joomla. The 3.x version we are working on, will be able to run standalone. The integration with Joomla will be done through a separate adapter component that will live in it's own repo, the framework will become a dependency of that component.  To get an idea where we are heading check out the develop branch

Happy coding!

Johan

Alejandro Arroyave Valencia

unread,
Jan 1, 2016, 5:15:06 PM1/1/16
to joomlat...@googlegroups.com
Thank you for all information, I go to try enroll me

Best regards, 
--

---
You received this message because you are subscribed to a topic in the Google Groups "Joomlatools Developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/joomlatools-dev/6D8zoJKmo-k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to joomlatools-d...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Enviado desde mi iPhone

ALEJANDRO ARROYAVE VALENCIA
Director Ejecutivo
Teléfono: +57 (4) 448-1348
Móvil: +57 (300) 798-4459
Ximware S.A.S - http://www.ximware.com

Herman Peeren

unread,
Jan 2, 2016, 4:29:11 AM1/2/16
to Joomlatools Developers
Thank you Johan. A small question about Joomlatools Framework 3: in that develop-branch you are refering to I don't see PHP namespaces being used. I thought version 3 of the framework would use that; like in Nooku Platform https://github.com/nooku/nooku-platform/tree/develop/library where the K in front of the classname has been changed to the \Nooku\Library namespace. It doesn't make any difference when using it, but is more an issue of acceptance in the broader PHP-community: you hardly see non-namespaced code in modern PHP frameworks nowadays. I know that is mostly because of the misuse of namespacing for PSR4-autoloading, but that is the current reality in PHP.

Johan Janssens

unread,
Jan 2, 2016, 8:28:24 AM1/2/16
to Joomlatools Developers
Eventually the namespacing approach in platform will be introduced in the framework, this is not a priority right now, might happen in 3.x, could also be moved to 4.x. Don't know yet.

Johan

Johan Janssens

unread,
Apr 9, 2016, 12:00:08 PM4/9/16
to Joomlatools Developers
Hello Herman,

A little update for you, based on your previous question. 

1. Nooku Framework 2.x has been rebranded to Joomlatools Framework. See: https://github.com/joomlatools/joomlatools-framework
2. Nooku Framework 3.x has been rebranded to Kodekit. See: https://github.com/timble/kodekit
3. Nooku Platform has been rebranded to Kodekit Platform. See: https://github.com/timble/kodekit-platform

+ All Kodekit code has been relicensed to the more permissive MPLv2 license.

Kodekit vendor based namespaces have been introduced in Kodekit and Kodekit Platform. (Namespace approach might still change slighty). The platform now uses Kodekit as a submodule for development purposes. A 0.10 release of platform and 3.0 release of framewor is planned once all the rebranding and refactoring has been completed. 

Version 3.0 of Joomlatools Framework will eventually be based on Kodekit 3.0. This is not planned for the short term, but once we do so it will contain namespaces. 

Hope that helps,

Johan
Reply all
Reply to author
Forward
0 new messages