More power to Framework and Applications

1 view
Skip to first unread message

Julio Farias

unread,
Aug 3, 2009, 12:44:21 PM8/3/09
to joomla-de...@googlegroups.com
Hi guys,

I have think in a new idea for Joomla Framework.
The base of idea is make a more extensible framework for sharing extensions and better organization.
In my attachment i have this idea.

Why extensions is out of Application folder?

Extensions can be access by any application this get more powerfull to Joomla Applications.
Any application can be use any package of extensions. you can create your own package if want.

we have admin folder to all extensions for manage something like content, banners, etc.
we have site folder with extensions use in site application.
we have core folder to pugins cause this is generic, but you can create inside package if you want.

Ps.: this is for language too.

Example:

can i create a new application for store and need use same components from administrator application like "com_content". This way, i can get easly using new classes on Framework something like:

$ext = new JExtensionApplication();
$content = $ext->package('admin')->type('component')->name('content');

Apps

This folder contains application like site, administrator, etc.
application is more simple.
apps/site/
cache/
includes/
logs/
templates/
configuration.php

JApplicationExtension

In lib i think in create a extension folder in Joomla Framework to better contorl of extensions
the idea is JExtensionsApplication can instance type of extensions for Joomla like component, module, plugin.
But if you want you can new and configure basePath(extensinos/componetns) for extension, basePrefix(com_ or mod_), render object and more.


Joomla Framework.png

Júlio Pontes (Joomila)

unread,
Aug 3, 2009, 2:29:10 PM8/3/09
to Joomla! General Development
More about the idea..

taking into account the abstraction of everything we think, will a
strong concept of DDD (Domain Driven Design), reference:http://
www.infoq.com/articles/ddd-evolving-architecture

On google groups would be to use more generic, working with a concept
of extensions, which allow the development of applications in
parallel.
would be a proposal for change to improve the architecture.
can divide into 3 resources: administrator, site and MyApplication (my
other project), all tools seek extensions in the repository.

could build a new application that could use the component
"com_content" the package "admin" as it is used in the
"administration" of Joomla.

Júlio Pontes (Joomila)

unread,
Aug 3, 2009, 4:01:58 PM8/3/09
to Joomla! General Development

Emerson Rocha Luiz

unread,
Aug 4, 2009, 1:58:55 AM8/4/09
to Joomla! General Development
How hard would be convert Joomla as it is in this new concept? How
hard would be for who have extensions now convert for work with the
new Joomla? In this case, can be something like 'you can still
programing with your old 1.5 style, and almost all will works fine,
BUT, if you apply this new concept, will do more with less code, and,
in special, with a more legible and easy to maintan code?

And about where you post your proposal, I guess that one best place
for discut this with more people is Joomla Dev CMS email list. In
there provably will get a better feedback of this idea.

On 3 Aug, 17:01, Júlio Pontes (Joomila) <juliopfn...@gmail.com> wrote:
> New screenhttp://groups.google.com.br/group/joomla-dev-general/web/Joomla%20Fra...

Júlio Pontes (Joomila)

unread,
Aug 4, 2009, 9:24:28 AM8/4/09
to Joomla! General Development
I will explain some ideas of this new concept.

1)

i can give example of use this on development if you use DDD(Domain
Drive Design) on your extensions.

I create a DomainClass with have all logic of my application for
example "content".
the domain class have rules like:
- list
- category( $catid/$name )
- getById( $id )
- getByAuthor( $id/$name )

$content = new Content();
$content->list()->category( 'news' )->display(); // return my list of
content from category news

in another scope if i can get the same logic and want get my $rows i
can use the same logic like this:

$rows = $content->list()->category( 'news' )->getRows();

if i wish get content from specific autor i use:

$rows = $content->list()->category( 'news' )->getByAuthor( 'joomila' )-
>getRows();

So this way my domainClass Content is more easy, all logic in one
Class but if you want you can extend and add new "rules" to your
"domain".

Your component can use this DomainClass to get list, edit, etc.

I can use this for Category, etc.

2)

another application of DDD on Joomla

You know applications like iGoogle, netVibes ?

these application have a concept of widgets.
The concept of widgets is "component of a graphical user interface
with which a user interacts" wiki

In Joomla we have modules, ok? but forget the name "module" and use
"widget".

In my concept of Joomla Framework on main Folder we have
Extendions/package/modules/

And in Joomla we have modules for List Content, docman, last news,
etc.

using DDD to use Widget(Modules) like this in Joomla Application

$widgets->package('site')->get('lastnews')->display(); //this will
render a module
$widgets->package('site')->get('lastnews')->getParams(); //return
params from module

i can use this concept in any applications: site, administrator or if
i create a new i can use.

3)

If you want create another application with use anothers frameworks

In my Apps folder i can create a new folder with name "store".

inside this application initialize my application using Joomla
Framework and i can use inside this application another frameworks to
development like Zend, Cake, etc.

Just put in libraries folder and use jimport();

Do you have thining: "now yeah but i can make this on actual joomla"
yeah BUT in this case i can extends to use JOomla Framework concept in
my Zend Application using for example Widgets(modules) concept.

So this way you can have more power to create applications using
Joomla Framework with Anothers..

4)

Talkin about components in this structure how i can get path from
component.

I create a DomainClass with Rules for diferent Type of Extensions in
this case Component if we analize how the concept and rules from
component on Joomla, we can create a class with rules of extensions
like.
- getController($name);
- getModel($model);
- display($viewName,$type,);

applying the same concept with exists today i not CHANGING the way
with how you can create your extensions just give a new way to use
this more easy and powerfull.

you can apply DDD to create a Class JExtensions and use something like
this.

$extension = JFactory::getExtension();
$extension->package('site')->extension('components')->name
('com_content')->getPath(); //get path from this component ex.: /
jooomla/extensinos/site/componetns/com_content

if i can get model path

$extension->package('site')->extension('components')->name
('com_content')->getPath('model'); //get path from this component
ex.: /jooomla/extensinos/site/componetns/com_content/model

for render a component

$extension->package('site')->extension('components')->name
('com_content')->render();

get Params

$extension->package('site')->extension('components')->name
('com_content')->getParams();
Reply all
Reply to author
Forward
0 new messages