I know Xaraya is considered a framework now, but I think the
core is
still a little too hard wired to be a competitive framework
or for
BlockLayout to be a competitive, standalone templating
engine. I realize
work on 2.0 is well under way and I also realize there
aren't as many
heads around as there once were so things don't move as fast
as they
used to. Keeping that in mind, I have a few things I would
like to bring
up (perhaps for post-2.0?).
I use Xaraya as a framework for a project I've been working
on for a
couple of years now. The project is a CMS of sorts, which
goes outside
the realm of a normal xaraya installation (it's hard to
explain exactly
without saying too much right now). The problem with using
Xaraya in
this way is there is a lot of stuff in there that doesn't
get used, but
one doesn't really want to take it out because it will have
to be done
for any future upgrades. I don't like hacking a fix, I'd
rather just
help make permanent changes.
What I am envisioning would be a lot easier to maintain,
once it is
finished, but a lot of work would have to be done to get
there. If the
project even decides to go with this overall idea, it may
not even end
up looking like what I am picturing, which would still be
fine by me.
I'm not giving any guidelines here, just an idea.
some ideas below
-----------------------------------------------------------
Xaraya as a Framework, imagined by your's truly, could
consist of a
central file system and would support a purely modular
environment. To
be a competitive framework, Xaraya should allow all users,
sessions,
data, permissions, templating, caching, etc to be handled
from modules
and not the core. The core, IMHO, is way to heavy. The core
should be
open to whatever a developer needs, instead of a developer
only using
what the core allows. An example of this is database
handling. Xaraya
should not care what database it uses or how many. It should
be open
enough to store/retrieve roles data tables in one database
and dynamic
data in another (even on separate servers if needed). It
should also do
so without having to change any thing in the core.
Furthermore, Xaraya
should not care what type of database it is using, even if
it is using
more than one. If so desired, data should even be able to be
stored in a
flat file system.
Instead of using ADODB, Creole, or whatever abstraction
layer, Xaraya
should depend on a module or modules for data storage and
retrieval.
This would allow developers to add database support for
whatever
database they need to use, without ever changing the core.
It would also
be a performance gain, as I have noticed a rather
significant
performance gain by not using ADODB for queries within my
modules (and
99% of the time that is when using multiple databases on
different
servers). One way to accomplish this would be to have a
xardb module,
which could have APIs for specific database types or
configuration
options to specify a module to use for particular database
types.
Xaraya already loads modules inside of modules, themes for
example is a
module that determines the layout and xaraya loads the
requested module
within it (kind of at least). The themes module could be
BlockLayout
itself, which handles the templating. This would give
developers the
ability to use BlockLayout in other projects and compete
against
template engines like Smarty (which I call a different
name).
There is, of course, a lot more to be discussed than what
I've said so
far. Where I am going with this, though, is a tiny core that
relies
entirely on a few global APIs, configuration files, and
modules, instead
of the includes, modules, and xaradodb folders.
------------------------------------------------------------
----------
I hope no one took offense to my observations or ideas, I'm
not trying
to be critical at all with any of this. Xaraya is awesome
and I have no
where else to go I simply
think if Xaraya was made into a more pure
framework, then it would be easier to maintain the core and
to cater to
developers who aren't looking for a shrink wrapped, like it
or not CMS.
Beyond that, I think the performance differences between the
current
core and a purer framework core could be astonishing.
I know this is all A LOT easier said than done. Once I am
able to bring
in more developers to help with my project, I will
(basically) be paying
people to work on such a Xaraya framework (if all goes well
this next
year). I will be needing something like what I've discussed
here, so I
am willing to help get Xaraya to that point.
If no one thinks this is right for Xaraya, I won't be
disappointed, but
I would like to keep it in the Xaraya family once I am able
to put it
together. If you read this far, thanks for your time and
feel free to
comment in any way.
~David Dyess
_______________________________________________
Xaraya_devel mailing list
Xaraya_devel xaraya.com
http:
//xaraya.com/mailman/listinfo/xaraya_devel
|
David Dyess II wrote:
> -- snip --
I can't really add more to that: yes.
As we move to PHP5, I think this kind of approach is likely
to get easier.
Certainly loading up classes and files could be centralised
first, in a generic
way, and that would be a first step.
If BL could actually be turned into a standalone product,
then I think we would
learn a lot about modularisation doing that. I know some
people already do use
Block Layout in other frameworks, but there is not much
coming back to the
project in this area.
For me, making the core more modular on a finer scale, would
change the whole
idea of what a module is. A module is fiddly to put together
at the moment, and
tends to wrap a lot of different things into one unit:
permissions, blocks, user
screens, admin screens, templates, transforms and other
hooks etc. When we are
able to create a single block or transform as a module, and
install it as a
single unit, then I think we will be there.
Keep all those ideas floating, and we'll come around to
them, I'm sure.
-- Jason
_______________________________________________
Xaraya_devel mailing list
Xaraya_devel xaraya.com
http:
//xaraya.com/mailman/listinfo/xaraya_devel
|