Hi folks,

I'd like to hear your opinions on the changes I made to my branch
(david_view-improvements). The name is actually misleading; I added many,
many more enhancements than just to the View.

I'll give you an overview over what is new:

1) Changed View so decorate() and getSlots() is public; removed references
usage from decorate(); getSlots() does not return by reference anymore;
added clearDecorator() and clearSlots() methods; added setSlots() methods.
This was done so you have more control from inside a ExecutionFilter (which
has been pluggable for some time now).
http://trac.agavi.org/trac.cgi/changeset/208

2) All config handlers now throw a UnreadableException if a config file
could not be found or read. http://trac.agavi.org/trac.cgi/changeset/264

3) Added support for multiple credentials in Action::getCredential(). You
can now require one or more credentials, and you can supply a list of
credentials of which the user needs to have at least one. You can also mix
these, so users always have to have "foo" rights plus either (or both) of
"bar" or "baz". Also, comparisons are done in strict mode so no type-casting
is done, this prevents certain problems to occur when types are cast by PHP.
http://trac.agavi.org/trac.cgi/changeset/280 and
http://trac.agavi.org/trac.cgi/changeset/285

4) Support for custom code template directories. Sweet for people who don't
want to backup their code_templates dir when updating Agavi, or for everyone
who has Agavi sitting in a central location and needs per-project templates.
http://trac.agavi.org/trac.cgi/changeset/283

5) Templates can have templates, too, now (isn't that funny...).
http://trac.agavi.org/trac.cgi/changeset/283

6) New Action and View class naming possibilities. If you have
modules/Default/Yellow/Sub/MarineAction.class.php, the class can be either
of "MarineAction", "Default_MarineAction", "Yellow_Sub_MarineAction" and
"Default_Yellow_Sub_MarineAction".
http://trac.agavi.org/trac.cgi/changeset/283

7) The "agavi" helper script now support usage of sub-actions, too. Use
Foo.Baz.Baz, Foo/Bar/Baz or Foo\Bar\Baz as name.

8) AdoDBDatabase added (contributed by Steven Weiss).
http://trac.agavi.org/trac.cgi/changeset/284

9) AG_WEBAPP_DIR and AG_APP_DIR are now auto-determined.
http://trac.agavi.org/trac.cgi/changeset/286

10) AG_CHECK_CONFIGS (defaults to true) directive allows to disable config
checks altogether, so cached versions are always used without checks if they
exist or the non-compiled version is newer. If disabled, this can improve
performance a bit.

So... yeah. Let's hear your opinions ;) I'm especially interested in what
Bob and Mike have to say.

Oh... some more things:
a) Point 9 still requires that we specify the path to agavi.php in
index.php, so it's not much of a difference that people needn't supply it in
config.php anymore. You either define it in config.php and use the path in
index.php, or you only supply the path in index.php and thus let it
auto-determine in agavi.php, or you define it in config.php and use the
constant in index.php. Maybe we should take one approach. Ideas? We
discussed this once,
http://www.mail-archive.com/[email protected]/msg00145.html

b) Number 10 might have a bad name. Specifically, it could be confusing that
you actually have to set the constant to false to make it work, since with
true, the checks will still be performed. Maybe we need a better name here
that will disable the checks when set to true. Ideas? See also
http://www.mail-archive.com/[email protected]/msg00141.html

c) I'm wondering whether or not I should add more of these
if(!defined('...')) checks to agavi.php. I expect the performance impact to
be less than minimal, and we could make setting all the stuff (AG_DEBUG,
AG_ERROR_REPORTING, AG_CHECK_CONFIGS, AG_CACHE_DIR) optional in config.php.
Only the definition of AG_WEBAPP_DIR would need to be there, but it now
happens automatically (see points 9 and a). Combining a) and c) gives the
idea of only making AG_WEBAPP_DIR and AG_APP_DIR mandatory in config.php and
changing index.php so it uses AG_APP_DIR and "guesses" the config.php
location to ../webapp/config.php by default. Just a thought though. We can't
solve this one perfectly, unfortunately.

I'd appreciate quick feedback, since 0.10 is really overdue and Veikko also
has a branch to merge if I'm not mistaken.

- David


_______________________________________________
agavi-dev mailing list
[email protected]
http://labworkz.com/cgi-bin/mailman/listinfo/agavi-dev

Reply via email to