Feature #28136

HTTP Semantics for Transactions and more

Added by Benjamin Eberlei about 4 years ago. Updated about 3 years ago.

Status:New Start date:2011-07-12
Priority:Should have Due date:
Assigned To:- % Done:

0%

Category:Persistence
Target version:-
PHP Version: Complexity:
Has patch:No

Description

Currently the Repositories are all flushed on every request no matter the type. It should default to only PUT, POST DELETE updating the repositories.

GET Requests should schedule Transactions manually in the controller.

Additionally transactions should be encapsulated in one action and not executed over many different actions. This is problematic because there is no way to stop a transaction. Transactions should be rolled back (no flushing) when an exception is thrown in the controller.


Related issues

related to TYPO3.Flow - Feature #27117: Bind routes to HTTP request methods Resolved 2011-05-29 2013-04-13
precedes TYPO3.Flow - Feature #28137: Do not use clone in PersistentObject ParamConverter Closed 2011-07-13 2011-07-13

Associated revisions

Revision 9a0e128a
Added by Karsten Dambekalns over 3 years ago

[FEATURE] Persist after every controller invocation

Wire persistAll() from afterControllerInvocation instead of the
finishedRuntimeRun signal.

This is useful because it wraps all changes done in one dispatch in
a transaction, thus enabling better rollback in case of errors.

Related: #28136
Releases: 1.1
Change-Id: If0020fdedbaf4779ff24d0e4248e2137cdf5bc67

Revision 72b91a1e
Added by Rens Admiraal over 3 years ago

[BUGFIX] Call PersistAll after every controller invocation

If0020fdedbaf4779ff24d0e4248e2137cdf5bc67 introduced a regression
which caused persistAll() to be uncalled.

Change-Id: I9f7ca92777005c3e2580c32ebd8540755a43210a
Related: #28136
Releases: 1.1

History

#1 Updated by Karsten Dambekalns almost 4 years ago

  • Project changed from TYPO3 Flow Base Distribution to TYPO3.Flow

#2 Updated by Karsten Dambekalns almost 4 years ago

  • Category set to Persistence

#3 Updated by Karsten Dambekalns over 3 years ago

  • Target version set to 1.1
  • Has patch set to No

Another point: action methods should be executed only of a matching request method comes in, e.g. a method declared for POST handling should only be callable by POST requests.

One more reason for this: http://googlewebmastercentral.blogspot.com/2011/11/get-post-and-safely-surfacing-more-of.html

#4 Updated by Karsten Dambekalns about 3 years ago

  • Target version deleted (1.1)

Also available in: Atom PDF