That's the approach Mach-II and Fusebox 5.5 have taken.
> Application Specific Mappings are a furphy and do not work as
> advertised in CF8. It appears that cfimport and "extends" do not
> adhere to application specific mappings as defined in Application.cfc
They can't possibly: per-app mappings are a *runtime* construct
attached to a notional CF application. <cfimport> and extends= are
*compile-time* constructs applied to a specific file. You cannot
possibly have the compile-time behavior of a file depend on run-time
settings in another file - how could you use the same file (.cfm/.cfc
and associated .class files) from multiple applications??
> Our last option is to re-engineer FarCry so that it operates under the
> webroot of your specific application.
This is the approach that *all* the other CF frameworks have taken.
They let you install them under webroot on shared hosts and outside
webroot with a mapping where you have control of the server. This
seems like the right approach for FarCry (and might finally make it
easy to install! :)
> farcry cf mapping on the server, and relying on /farcry being
> accessible from the webroot for all FarCry deployments. To accomplish
> this change we will have to make significant changes to the way in
> which the "webtop" is reached.
Well, that part is the biggest bear now with installing FarCry
(especially on shared hosts).
> They will include at least:
> - renaming /farcry web virtual to /webtop (or removing it entirely)
It should be optional. There should be a standard, supported way to
install the webtop under the webroot.
> - removing Application.cfm and replacing with Application.cfc (a
> template would be provided with appropriate blanks to fill in)
This could be optional (it's optional in both Mach-II and Fusebox 5.5).
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
The documentation for cfimport is pretty clear that it only supports
mappings set in CF Admin.
The extends= issue is more complicated as the per-app mapping works
for the first time the CFC is compiled but you can then change the
per-app mapping and it does not change the behavior of the CFC (for
obvious reasons - well, obvious if folks think about it! :)
Application.cfc settings are, by definition, runtime. They can never
affect compile-time behavior. With <cfimport> that's why, for example,
you need it on every page that uses a taglib. It's also why
<cfprocessingdirective> must be on each page. Neither of those can be
just in Application.cfm/.cfc.
The problem isn't the product's functionality or the documentation but
CFers misunderstanding of the compilation process :)