230 likes | 248 Views
Discover the core concepts of Fusebox 3.0 with real-life examples using the "Colours App." Explore the essential files, map structures, fusebox components, and documentation. Learn about nested settings, layout configurations, and the Fusebox philosophy. Dive deep into the architecture and programming techniques of FB3. Master the building blocks of fuses and understand the Fusebox community resources. Enhance your web development skills with Fusebox 3.0!
E N D
Fusebox 3.0 groffman@metarail.com With thanks to David Laing, Hal Helms, Nat Papovich, and others
Agenda • Quick revision of core fusebox concepts • Fusebox 3 (FB3) by example – The colours app • The core files – fbx_fusebox30_*.cfm • The map – fbx_Circuits.cfm • The fusebox – fbx_Switch.cfm • The building blocks - fuses • The documentation – FusedoX • Nested settings – fbx_Settings.cfm • Nested layout – fbx_Layout.cfm
The Fusebox Philosophy There are two ways of constructing a software design: • One way is to make it so simple that there are obviously no deficiencies, • and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. C.A.R. Hoare
Point-to-Point Routing New York Tampa
Hub-and-Spoke System Chicago Seattle New York Atlanta Los Angeles Tampa
Fusebox Architecture Fuseactions Circuits Fuses
Fusebox 3 • Consolidation of ideas of FB2 • Standardised frozen core files • Polished methods for most web apps • Fusebox Conference #1, 20th Oct 2001 • Whitepaper (Conference in a box – www.halhelms.com) • Newbies guide. • The Fusebox structure
FB3 core files : fbx_fusebox30_*.cfm • The application server for the fusebox framework • Handles • Environment variables • Nesting • Layout • Different versions for different platforms. • Standard, static – maintained by FBSteer. • 2 modes : Fusebox.suppressErrors = true/false
The core support files • Application.cfm : • index.cfm : • fbx_savecontent.cfm • sesConverter.cfm • Prevents accessing fuses directly • Decides which fusebox core to include • Sets default fuseaction • Emulates CF5 SaveContent • index.cfm/fuseaction/cart.add/ID/653.htm
The map file : fbx_Circuits.cfm • Provides a map to the location of • each circuit • Each circuit has a unique name • index.cfm?fuseaction=circuitName.fuseAction • Fusebox.Circuit • Fusebox.Circuits.<circuitname>
The fusebox : fbx_Switch.cfm • Just the <cfswitch> from FB2’s index.cfm • Every circuit has one • Switches on Fusebox.fuseaction • Includes fuses to perform particular action
The building blocks : Fuses • Official • dsp_ : HTML display – coded by HTML coder • act_ : CFML logic – coded by CF coder • qry_ : DB interaction – coded by DBA (QuerySims) • Unofficial • url_ : sometimes used for conditional redirections • lay_ : prefix for layout files.
The Documentation : FusedoX • Officially adopted the XML Fusedocs spec • Explains the “what” of the fuse • What it does (<responsibilities></responsibilities) • What it needs (<in></in>) • What it produces (<out></out>) • CF Studio VTML & help from www.fusebox.org
Circuit level settings : fbx_Settings.cfm • FB3 core traverses down nested tree, executing fbx_Settings.cfm as it goes • Switch settings based on isHomeCircuit • Good place for security logic, breadcrumbs etc
Nested Layout : fbx_Layout.cfm • FB3 core traverses up the tree, wrapping each fbx_Layout.cfm around Fusebox.layout as it goes • fbx_Layout.cfm a kind of switch, which can include different layouts in different circumstances (ie, suppressLayout)
Referencing files • Fuses in same directory – just <cfinclude template=“dsp_helloWorld.cfm”> • Fuses in other circuits – <cfinclude template=“#Fusebox.rootPath#/circuitname/act_aFuse.cfm”> • fuseactions of other circuits <cfmodule template=“#Fusebox.rootPath#index.cfm” fuseaction=“circuit2.doStuff” suppressLayout=“true”> • HTML includes – all relative to home circuit – <img src=“#Fusebox.currentPath#/images/monkey.jpg”>
Limitations of FB3 • Does not support <CFFLUSH> • Does not support <CFCONTENT>
Summary • Quick revision of core fusebox concepts • Fusebox 3 (FB3) by example – The colours app • The core files – fbx_fusebox30_*.cfm • The map – fbx_Circuits.cfm • The fusebox – fbx_Switch.cfm • The building blocks - fuses • The documentation – FusedoX • Nested settings – fbx_Settings.cfm • Nested layout – fbx_Layout.cfm
The Fusebox Community Websites • www.fusebox.org • www.bombasbee.com • www.meta-magic.com/cgi-bin/fusewiki Mailing lists • fusebox-subscribe@topica.com • fbcommunity@topica.com • SteerFB-subscribe@topica.com • PHP-fusebox@yahoogroups.com • fusebox_asp-subscribe@topica.com