Skip to content

Commit 804d852

Browse files
committed
Prep for 4.0 release
1 parent 9747a08 commit 804d852

File tree

9 files changed

+21
-41
lines changed

9 files changed

+21
-41
lines changed

source/documentation/4.0/cfml-and-clojure.markdown

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
---
22
layout: page
33
title: "Using Clojure with CFML"
4-
date: 2016-09-14 15:00
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
# Clojure and CFML Sitting in a tree
1210
{:.no_toc}
1311

source/documentation/4.0/changes.markdown

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
The following changes are part of FW/1 4.0, DI/1 1.2.0, and cfmljure 1.1.0.
1210

1311
Summary

source/documentation/4.0/developing-applications.markdown

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
---
22
layout: page
33
title: "Developing Applications with FW/1"
4-
date: 2016-07-12 10:20
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
FW/1 is intended to allow you to quickly build applications with the minimum of overhead and interference from the framework itself. The convention-based approach means that you can quickly put together an outline of your site or application merely by creating folders and files in the `views` folder. As you are ready to start adding business logic to the application, you can add controllers and/or services and domain objects as needed to implement the validation and data processing.
1210

1311
* Table of Contents

source/documentation/4.0/index.markdown

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
---
22
layout: page
33
title: "Getting Started with FW/1"
4-
date: 2016-05-27 19:00
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
FW/1 was created in July 2009 as a reaction against complexity and bloat in other frameworks in the CFML community. FW/1 itself is a single file, and provides a simple, convention-based approach to MVC (Model-View-Controller) applications, as well as REST APIs. Whilst it has become more sophisticated over time, it has remained a single file, focused on getting out of your way and providing the intuitive plumbing you need. For historical background, you can read the [introductory blog post](http://framework-one.github.io/blog/2009/07/19/introducing-framework-one/) from July 2009.
1210

1311
As of release 3.1, FW/1 also includes DI/1 - a simple, convention-based Dependency Injection framework - and AOP/1 - a simple, convention-based Aspect-Oriented Programming framework. As of release 3.5, FW/1 lets you mix'n'match CFML and Clojure code. If those phrases don't mean anything to you, don't worry, you won't need to know anything about them to get started. For a full list of changes in this release, see the [Change Log](changes.html).

source/documentation/4.0/reference-manual.markdown

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
---
22
layout: page
33
title: "FW/1 Reference Manual"
4-
date: 2016-05-20 20:30
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
This page provides a description of all the APIs and components involved in a FW/1 application. Please also read the [Roadmap](roadmap.html) to see how things may change in the future.
1210

1311
* TOC
@@ -529,7 +527,7 @@ Override this in your `Application.cfc` to provide request-specific initializati
529527

530528
## public void function setupResponse( struct rc )
531529

532-
Override this in your `Application.cfc` to provide request-specific finalization. This is called after all views and layouts have been rendered or immediately before a redirect. You do not need to call `super.setupResponse()`.
530+
Override this in your `Application.cfc` to provide request-specific finalization. This is called after all views and layouts have been rendered or immediately before a redirect. You do not need to call `super.setupResponse()`.
533531

534532
## public void function setupSession()
535533

@@ -545,7 +543,7 @@ This is called when the framework trace is about to be rendered at the end of a
545543

546544
## public void function setupView( struct rc )
547545

548-
Override this in your `Application.cfc` to provide pre-rendering logic, e.g., putting globally available data into the request context so it is available to all views. You do not need to call `super.setupView()`.
546+
Override this in your `Application.cfc` to provide pre-rendering logic, e.g., putting globally available data into the request context so it is available to all views. You do not need to call `super.setupView()`.
549547

550548
## public void function setView( string action )
551549

source/documentation/4.0/roadmap.markdown

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
---
22
layout: page
33
title: "FW/1 Roadmap"
4-
date: 2016-01-05 23:00
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
Whilst you can read the [FW/1 issues list](https://github.com/framework-one/fw1/issues) to see what's on the cards for future releases, several people have asked that I document things at a higher level so they can get a better sense of what's coming.
1210

1311
5.x Lifecycle Restructuring

source/documentation/4.0/using-aop-one.markdown

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
---
22
layout: page
33
title: "Using AOP/1"
4-
date: 2015-10-27 10:00
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
AOP/1 is a simple Aspect Oriented Programming extension for [DI/1 (a.k.a Inject One)](using-di-one.html) which allows you to define interceptors for your beans.
1210

1311
These interceptors can run code before or after a method is called on a bean without the need for you to alter the code in your bean. This allows you to create generic services (such as a logger service) that is coded and configured to operate completely separate from your other services and beans. What this means is you no longer need to mix unrelated service code together by using dedicated interceptors.
@@ -26,12 +24,12 @@ Create an instance of the AOP/1 extended DI/1 bean factory and specify the folde
2624
So far nothing difficult since this is what we would typically see from [DI/1](using-di-one.html). Now, if we want to intercept method calls to an object, we need to declare the interceptors and the objects that should be intercepted.
2725

2826
var beanFactory = new framework.aop("/model");
29-
27+
3028
beanFactory.intercept("pdfService", "beforeInterceptor");
3129
beanFactory.intercept("pdfService", "afterInterceptor", "createDocument");
32-
30+
3331
var ps = beanFactory.getBean("pdfService");
34-
32+
3533
var document = ps.createDocument("http://seancorfield.github.io");
3634
var pages = ps.splitPages(document);
3735

@@ -57,7 +55,7 @@ Before interceptors will intercept method calls _before_ they are executed. The
5755
arguments.args.input = "before" & arguments.args.input;
5856
}
5957
}
60-
58+
6159
Because the interceptor is like any other bean handled by DI/1, dependencies can be intjected into the interceptor and used by the interceptor.
6260

6361
component {
@@ -185,5 +183,3 @@ Stacks are executed in the following order.
185183
* **onError**
186184

187185
All the stacks will only execute if there is an interceptor of their type present. If the stack is emtpy, nothing is executed. The **onError** stack only executes if there is an error in the execution of the other stacks. The **before** and **after** stacks execute like a queue and will execute from start to finish regardless of changes to the arguments or result, skipping any interceptors that do not match the currently intercepted bean method. The **around** stack executes more like a chain. The chain execution can be stopped by not calling the `proceed()` method.
188-
189-

source/documentation/4.0/using-di-one.markdown

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
---
22
layout: page
33
title: "Using DI/1"
4-
date: 2016-04-07 11:30
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
11-
DI/1 - a.k.a Inject One - is a simple, convention-based Dependency Injection framework.
9+
DI/1 - a.k.a Inject One - is a simple, convention-based Dependency Injection framework.
1210

1311
DI/1 searches specified directories for CFCs and treats them as singletons or non-singletons (transients) based on naming conventions for the CFCs themselves, or the folders in which they are found. You can override the conventions by configuration if needed.
1412

@@ -57,18 +55,18 @@ If a CFC has a constructor (a method called `init()`), DI/1 will use the argumen
5755

5856
// usermanager - managers/user.cfc or usermanager.cfc
5957
component accessors=true {
60-
58+
6159
property roleService; // autowire services/role.cfc
62-
60+
6361
function setLoggingService( loggingService ) { // autorwire services/logging.cfc
6462
variables.logger = loggingService.getLogger( "user" );
6563
}
66-
64+
6765
function init( userdao ) { // autowire daos/user.cfc
6866
variables.userdao = userdao;
6967
return this;
7068
}
71-
69+
7270
}
7371

7472
When you get this `usermanager` bean from DI/1 -- either by calling `getBean( "usermanager" )` directly or autowired into another bean via `property usermanager;` (or a setter or constructor argument), it will already have `roleService`, `loggingService`, and `userDAO` autowired into it.

source/documentation/4.0/using-subsystems.markdown

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
---
22
layout: page
33
title: "Using Subsystems in FW/1"
4-
date: 2015-10-27 10:00
4+
date: 2016-09-16 20:00
55
comments: false
66
sharing: false
77
footer: true
88
---
9-
_This is documentation for the upcoming 4.0 release. For the current release, see [this documentation](/documentation/)._
10-
119
Subsystems give you a way of modularizing your FW/1 application as it grows. They also provide a way to incorporate other FW/1 applications directly into an existing one. Subsystems can be used to create modules that have no dependencies on the parent application or you can use subsystems to group common functionality together.
1210

1311
* TOC
@@ -107,7 +105,7 @@ Legacy subsystems do not have the `subsystems/` prefix.
107105

108106
Views
109107
---
110-
Subsystem views are located in `subsystems/module/views` (e.g., `subsystems/admin/views/login/default.cfm` and `subsystems/home/views/main/error.cfm`).
108+
Subsystem views are located in `subsystems/module/views` (e.g., `subsystems/admin/views/login/default.cfm` and `subsystems/home/views/main/error.cfm`).
111109

112110
Legacy subsystems do not have the `subsystems/` prefix.
113111

@@ -128,7 +126,7 @@ In addition to your top-level bean factory, you can have subsystem-specific bean
128126

129127
The following bean factory methods are available for subsystems:
130128

131-
* `setSubsystemBeanFactory( subsystem, beanFactory )` - sets up a subsystem specific bean factory
129+
* `setSubsystemBeanFactory( subsystem, beanFactory )` - sets up a subsystem specific bean factory
132130
* `hasSubsystemBeanFactory( subsystem )` - returns `true` if a subsystem specific bean factory exists for the named subsystem
133131
* `getBeanFactory()` - returns the bean factory for the current subsystem. Alternately, it can be used to retrieve the bean factory for another subsystem by passing the name of the subsystem (e.g., `getBeanFactory( subsystem )` ).
134132
* `getDefaultBeanFactory()` - returns the default bean factory that was passed to `setBeanFactory()` (at the top-level)

0 commit comments

Comments
 (0)