]>
src.bluestatic.org Git - hoplite.git/log
Robert Sesek [Sun, 19 Nov 2017 05:00:08 +0000 (00:00 -0500)]
Add an interceptor for CORS OPTIONS preflighting.
Robert Sesek [Sun, 19 Nov 2017 02:51:56 +0000 (21:51 -0500)]
RestAction: Support OPTIONS and fix old StopWithCode.
Robert Sesek [Sat, 18 Nov 2017 21:46:07 +0000 (16:46 -0500)]
Remove trailing <? in template expansion.
Robert Sesek [Sat, 18 Nov 2017 21:45:49 +0000 (16:45 -0500)]
The FileCacheBackend should cache with template basename.
Robert Sesek [Sun, 31 May 2015 21:26:17 +0000 (17:26 -0400)]
NotFoundInterceptor needs to permit a NULL Action.
Robert Sesek [Sun, 31 May 2015 21:20:55 +0000 (17:20 -0400)]
Restore FrontController::InvokeAction().
Robert Sesek [Sun, 31 May 2015 21:20:28 +0000 (17:20 -0400)]
Fix views\Template accessing RootController rather than FrontController.
Robert Sesek [Sun, 31 May 2015 20:23:31 +0000 (16:23 -0400)]
Introduce FrontController as the replacement for RootController.
The FrontController has no delegate, but instead uses Interceptors to allow
middleware to further process the request or to interrupt control flow.
One integral change is that if no Action is found for the Request in the UrlMap,
then no action will be taken by the FrontController. Instead, a
NotFoundInterceptor should be used to send a HTTP 404 response in this event.
Robert Sesek [Wed, 27 May 2015 04:22:54 +0000 (00:22 -0400)]
Add Request::Filter and ::FilterArray.
Robert Sesek [Tue, 26 May 2015 02:24:31 +0000 (22:24 -0400)]
Use filter_var() over base/filter.php, which is going away soon.
Robert Sesek [Mon, 25 May 2015 21:44:48 +0000 (17:44 -0400)]
Cache templates with the full template path rather than just the name.
This allows multiple TemplateLoaders to operate on different template_paths
but with the same template_cache.
Robert Sesek [Mon, 25 May 2015 21:12:52 +0000 (17:12 -0400)]
The default behavior for RestAction should be to error METHOD_NOT_ALLOWED.
Robert Sesek [Mon, 31 Mar 2014 13:18:30 +0000 (09:18 -0400)]
In views\Template, do not use base/filter.php wrappers where it's not necessary.
Robert Sesek [Mon, 31 Mar 2014 13:16:26 +0000 (09:16 -0400)]
Check for the presence of a RootControllerDelegate before calling it.
Robert Sesek [Mon, 31 Mar 2014 04:16:15 +0000 (00:16 -0400)]
Do not call RootControllerDelegate through WeakInterface.
This adds too much indirection in critical codepaths.
Robert Sesek [Mon, 31 Mar 2014 00:55:15 +0000 (20:55 -0400)]
Add RootController::StopWithRedirect() as a redirect shortcut.
Robert Sesek [Tue, 30 Jul 2013 03:21:29 +0000 (23:21 -0400)]
Simplify WeakInterface by replacing the MethodImp with a hash.
Robert Sesek [Sat, 8 Jun 2013 03:41:55 +0000 (23:41 -0400)]
Implement a noop views\FileCacheBackend::GetMultipleTemplates().
Robert Sesek [Tue, 4 Jun 2013 06:29:41 +0000 (02:29 -0400)]
Implement template PreCache-ing in the TemplateLoader.
FileCacheBackend still needs to implement it, and tests need to be written.
Robert Sesek [Tue, 4 Jun 2013 05:19:52 +0000 (01:19 -0400)]
Escape the callstack function args in ProfilingPDO::ConstructHTMLDebugBlock().
Robert Sesek [Tue, 4 Jun 2013 05:11:25 +0000 (01:11 -0400)]
Throw an exception if the template file does not exist.
Robert Sesek [Tue, 4 Jun 2013 05:00:52 +0000 (01:00 -0400)]
Testing the return value of PDOStatement::Execute does not appear to work on MySQL.
Robert Sesek [Tue, 4 Jun 2013 04:45:28 +0000 (00:45 -0400)]
Pass a variable that is actually defined to MarkTemplateRendered in Template::Render.
Robert Sesek [Tue, 4 Jun 2013 01:54:00 +0000 (21:54 -0400)]
Write a CacheBackend implementation for PDO.
Robert Sesek [Tue, 4 Jun 2013 01:02:47 +0000 (21:02 -0400)]
Refactor builtin functions into a TemplateBuiltins class.
Also write some poor tests.
Robert Sesek [Sun, 2 Jun 2013 21:02:22 +0000 (17:02 -0400)]
Write the initial builtin Template macro functions implementation.
Robert Sesek [Sat, 1 Jun 2013 18:03:19 +0000 (14:03 -0400)]
Rewrite the template system to have user-customizable open and close tags.
This requires a change in the grammar to normalize it. Rather than having {% %}
print an expression, it now evaluates a statement. To print, use {%= %} instead.
{!% %} has been removed.
Robert Sesek [Sat, 1 Jun 2013 17:37:43 +0000 (13:37 -0400)]
Print comparison failure expected and actual values.
Robert Sesek [Wed, 29 May 2013 02:45:22 +0000 (22:45 -0400)]
Split TemplateLoader's cache business into another interface and class.
This creates the CacheBackend interface, which will allow for a database cache,
and one concrete implementation FileCacheBackend. This implementation implements
the existing TemplateLoader cache behavior.
Robert Sesek [Wed, 29 May 2013 01:14:20 +0000 (21:14 -0400)]
Make use of Template names for usage profiling.
Robert Sesek [Tue, 28 May 2013 13:44:45 +0000 (09:44 -0400)]
Add base/profiling.php and data/profiling_pdo.php.
Robert Sesek [Tue, 28 May 2013 13:40:59 +0000 (09:40 -0400)]
Add a CHANGES file.
Robert Sesek [Sun, 19 May 2013 20:57:32 +0000 (16:57 -0400)]
Make OutputFilter::_EncodeXML protected so that the test can access it.
Robert Sesek [Sun, 19 May 2013 20:55:52 +0000 (16:55 -0400)]
Add http\Input class to provide an input sanitization system.
Robert Sesek [Sun, 14 Oct 2012 16:16:54 +0000 (12:16 -0400)]
Change OutputFilter to use a delegate instead of subclassing to override behavior.
Robert Sesek [Sun, 23 Oct 2011 18:47:21 +0000 (14:47 -0400)]
Implement hoplite\filter\RawString
Robert Sesek [Thu, 20 Oct 2011 00:54:50 +0000 (20:54 -0400)]
Add a getter for the RootController delegate
Robert Sesek [Sat, 8 Oct 2011 14:57:37 +0000 (10:57 -0400)]
Add RootController::StopWithCode()
Robert Sesek [Sat, 8 Oct 2011 04:55:19 +0000 (00:55 -0400)]
Refactor the response type guessing in OutputFilter into a method
Robert Sesek [Mon, 22 Aug 2011 04:51:06 +0000 (00:51 -0400)]
Fix MakeUrl() for when calling it at the root page.
Robert Sesek [Sun, 21 Aug 2011 04:29:09 +0000 (00:29 -0400)]
Use JSON_NUMERIC_CHECK for json_encode()
Robert Sesek [Sun, 14 Aug 2011 17:58:03 +0000 (13:58 -0400)]
Add hoplite\views\MakeURL() in a kind of hacky way.
Robert Sesek [Sun, 14 Aug 2011 17:45:48 +0000 (13:45 -0400)]
Add hoplite\views\Inject()
Robert Sesek [Sun, 14 Aug 2011 17:00:18 +0000 (13:00 -0400)]
Extract PUT data as POST params
Robert Sesek [Sun, 14 Aug 2011 16:01:54 +0000 (12:01 -0400)]
Add RootController::MakeURL()
Robert Sesek [Sun, 14 Aug 2011 14:53:16 +0000 (10:53 -0400)]
* Make Controller have an abstract _SelectModel method.
* Merge the request data for the model in FilterRequest()
Robert Sesek [Mon, 8 Aug 2011 02:47:20 +0000 (22:47 -0400)]
Make RootControllerDelegate::OnInitialRequest also send the response
Robert Sesek [Mon, 8 Aug 2011 02:21:36 +0000 (22:21 -0400)]
Missing a set of ()
Robert Sesek [Mon, 8 Aug 2011 02:19:03 +0000 (22:19 -0400)]
Add functionality to OutputFilter for rendering templates
Robert Sesek [Mon, 8 Aug 2011 02:18:15 +0000 (22:18 -0400)]
template_loader.php needs to include template.php
Robert Sesek [Mon, 8 Aug 2011 02:17:56 +0000 (22:17 -0400)]
Allow an array of variables to be passed to Template::Render()
Robert Sesek [Sun, 7 Aug 2011 07:15:15 +0000 (03:15 -0400)]
Merge form/request data in the Controller
Robert Sesek [Sun, 7 Aug 2011 07:02:39 +0000 (03:02 -0400)]
Check the right header for X-Requested-With
Robert Sesek [Sun, 7 Aug 2011 07:02:09 +0000 (03:02 -0400)]
* Catch PDOException in Controller
* Switch to setting the exception as the body rather than a data
Robert Sesek [Sun, 7 Aug 2011 05:56:22 +0000 (01:56 -0400)]
Make sure $rule_frag has length before indexing it.
Robert Sesek [Sat, 6 Aug 2011 22:39:00 +0000 (18:39 -0400)]
Don't return in FilterOutput() if there's a body already.
Robert Sesek [Sat, 6 Aug 2011 22:28:49 +0000 (18:28 -0400)]
Introduce a file loader to the UrlMap.
Robert Sesek [Sat, 6 Aug 2011 22:15:37 +0000 (18:15 -0400)]
Special case the empty rule.
Robert Sesek [Sat, 6 Aug 2011 22:09:31 +0000 (18:09 -0400)]
Only check the Request#data[format] key if it is set
Robert Sesek [Sat, 6 Aug 2011 22:09:05 +0000 (18:09 -0400)]
Send the HTTP status code in the response
Robert Sesek [Sat, 6 Aug 2011 21:57:50 +0000 (17:57 -0400)]
Assume an empty PATH_INFO is the root URL.
Robert Sesek [Sat, 6 Aug 2011 21:34:45 +0000 (17:34 -0400)]
Fix more bugs in TemplateLoader and a singleton helper
Robert Sesek [Sat, 6 Aug 2011 21:28:26 +0000 (17:28 -0400)]
.gitignore broke the test!
Robert Sesek [Sat, 6 Aug 2011 21:02:31 +0000 (17:02 -0400)]
Get TemplateLoader working and update the tests
Robert Sesek [Sat, 6 Aug 2011 20:35:15 +0000 (16:35 -0400)]
Change Template::Render to return the result, rather than print it.
Robert Sesek [Sat, 6 Aug 2011 20:31:33 +0000 (16:31 -0400)]
Add RootControllerDelegate
Robert Sesek [Sat, 6 Aug 2011 19:22:54 +0000 (15:22 -0400)]
Set null_allowed to TRUE by default.
Robert Sesek [Sat, 6 Aug 2011 19:18:04 +0000 (15:18 -0400)]
More optimizations by caching the value of IsRequired()
Robert Sesek [Sat, 6 Aug 2011 19:17:26 +0000 (15:17 -0400)]
Speed up WeakInterface by 2x by caching the object reflector.
Robert Sesek [Sat, 6 Aug 2011 19:14:57 +0000 (15:14 -0400)]
Create WeakInterface
Robert Sesek [Sat, 6 Aug 2011 18:02:51 +0000 (14:02 -0400)]
Implement OutputFilter::_CreateBodyForResponse()
Robert Sesek [Sat, 6 Aug 2011 17:28:28 +0000 (13:28 -0400)]
Add OutputFilter::_EncodeXML and create a test
Robert Sesek [Sat, 6 Aug 2011 16:10:06 +0000 (12:10 -0400)]
Naïve implementation of RootController::LookupAction
Robert Sesek [Fri, 5 Aug 2011 04:06:18 +0000 (00:06 -0400)]
* Add RestAdapaterTest
* Refactor common HTTP test fixtures out into a new file
Robert Sesek [Fri, 5 Aug 2011 01:21:41 +0000 (21:21 -0400)]
All tests pass again
Robert Sesek [Fri, 5 Aug 2011 00:07:29 +0000 (20:07 -0400)]
Add http\RestAdapter
Robert Sesek [Sat, 30 Jul 2011 21:56:37 +0000 (17:56 -0400)]
Make http\RestController's Do methods public
Robert Sesek [Sat, 30 Jul 2011 21:47:14 +0000 (17:47 -0400)]
Add data\Controller
Robert Sesek [Sat, 30 Jul 2011 16:33:26 +0000 (12:33 -0400)]
Add data\Model from phalanx
Robert Sesek [Sat, 30 Jul 2011 16:16:51 +0000 (12:16 -0400)]
Add base\Struct from phalanx
Robert Sesek [Sat, 30 Jul 2011 16:08:09 +0000 (12:08 -0400)]
Fix a bug in TemplateLoader
Robert Sesek [Wed, 27 Jul 2011 13:51:25 +0000 (09:51 -0400)]
Add WIP TemplateLoader
Robert Sesek [Tue, 26 Jul 2011 13:05:10 +0000 (09:05 -0400)]
* Get the correct column number in parsing exceptions
* Throw an exception when nesting two macros
Robert Sesek [Tue, 26 Jul 2011 12:54:38 +0000 (08:54 -0400)]
Add basic template parser and test
Robert Sesek [Wed, 22 Jun 2011 02:03:05 +0000 (22:03 -0400)]
Implement UrlMap::LookupAction()
Robert Sesek [Sat, 18 Jun 2011 19:25:17 +0000 (15:25 -0400)]
Update RootController and test so that a Request is passed to UrlMap::Evaluate()
Robert Sesek [Sat, 18 Jun 2011 19:20:12 +0000 (15:20 -0400)]
Implement UrlMap::Evaluate() with all its tests passing.
Robert Sesek [Sat, 18 Jun 2011 19:06:45 +0000 (15:06 -0400)]
Don't print OK if a test fails
Robert Sesek [Sat, 18 Jun 2011 18:19:20 +0000 (14:19 -0400)]
* Add a set of failing tests for UrlMap -- TDD!
* Document how strict pattern matching works (versus prefix)
Robert Sesek [Sun, 12 Jun 2011 15:30:20 +0000 (11:30 -0400)]
Add ActionControllerTest
Robert Sesek [Sun, 12 Jun 2011 14:45:34 +0000 (10:45 -0400)]
Add a test for RestAction
Robert Sesek [Sun, 12 Jun 2011 14:30:22 +0000 (10:30 -0400)]
* Write a unittest for RootControler
* Fix a bunch of syntax errors
Robert Sesek [Sun, 12 Jun 2011 00:17:55 +0000 (20:17 -0400)]
Add unit testing infrastructure, again straignt from phalanx
Robert Sesek [Sun, 12 Jun 2011 00:12:13 +0000 (20:12 -0400)]
Add functions.php, copied from phalanx
Robert Sesek [Sun, 12 Jun 2011 00:07:42 +0000 (20:07 -0400)]
Stub out the OutputFilter
Robert Sesek [Sat, 11 Jun 2011 20:54:23 +0000 (16:54 -0400)]
Stub out UrlMap
Robert Sesek [Sat, 11 Jun 2011 18:37:37 +0000 (14:37 -0400)]
* Add ActionController
* Split out ResponseCode into its own file
Robert Sesek [Sat, 11 Jun 2011 18:08:26 +0000 (14:08 -0400)]
Whitespace nits in the README
Robert Sesek [Sat, 11 Jun 2011 14:47:15 +0000 (10:47 -0400)]
Add the Request and Response objects copied from phalanx
Robert Sesek [Sat, 11 Jun 2011 06:31:01 +0000 (02:31 -0400)]
Start stubbing out the design doc interfaces