diff --git a/README.md b/README.md index 0fbb202..84681df 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ You can also use the wildcard character `*` for matching: You can specify named parameters in routes which will be passed along to your callback function. Flight::route('/@name/@id', function($name, $id){ - echo "hello, {$name} - {$id}!" + echo "hello, {$name} - {$id}!"; }); You can also include regular expressions with your named parameters by using the `:` delimiter: @@ -255,6 +255,8 @@ are passed an array of the method parameters. All *after* filters are passed the the method being filtered. The arguments are passed by reference so your filter simply needs to modify the contents. +Here's an example the filtering process: + // Map a custom method Flight::map('hello', function($name){ return "Hello, {$name}!"; @@ -294,7 +296,7 @@ You can apply filters to any of these existing framework methods: etag lastModified -Core framework methods like `map` and `register` cannot be filtered because they are called +Core framework methods like `map` and `register` however cannot be filtered because they are called directly and not invoked dynamically. @@ -383,13 +385,14 @@ For completeness, you should also override Flight's default render method: ### Errors and Exceptions -All errors and exceptions are caught Flight and passed to the `error` method. The default behavior is to send an HTTP 500 -response with some the error information. You can override this for your own needs. +All errors and exceptions are caught by Flight and passed to the `error` method. +The default behavior is to send an HTTP `500 Internal Server Error` response with some error information. +You can override this behavior for your own needs. ### Not Found When a URL can't be found, Flight calls the `notFound` method. The default behavior is to -send an HTTP 404 response with a simple message. You can override this for your own needs. +send an HTTP `404 Not Found` response with a simple message. You can override this behavior for your own needs. ## Redirects @@ -399,6 +402,36 @@ You can redirect the current request by using the `redirect` method and passing Flight::redirect('/new/location'); +## HTTP Caching + +Flight provides built-in support for HTTP level caching. If the caching condition is met, +Flight will return an HTTP `304 Not Modified` response. The next time the client requests the same resource, +they will be prompted to use their locally cached version. + +### Last-Modified + +You can use the `lastModified` method and pass in a UNIX timestamp to set the date and time a page was last modified. +The client will continue to use their cache until the last modified value is changed. + + Flight::route('/news', function(){ + Flight::lastModified(1234567890); + echo 'This content will be cached.'; + }); + +### ETag + +ETag caching is similar to Last-Modified, except you can specify any id you want for the resource: + + Flight::route('/news', function(){ + Flight::etag('my-unique-id'); + echo 'This content will be cached.'; + }); + +Keep in mind that calling either `lastModified` or `etag` will both set and check the cache value. +If the cache value is the same between requests, Flight will immediately send the `304` response and stop +processing. + + ## Stopping You can stop the framework at any point by calling the `halt` method: