Comments (8)
Thank you for this cogent and valuable analysis. I can't do much about it yet, but I will ask you more about it when the time comes. Leaving open until then. In the mean time, please feel free to expand on your comments, or to submit PRs for review (cannot promise I will merge but I would like very much to see your ideas in code).
from atlas.orm.
Just wanted to add that implementing support for automatic nested transactions would also be useful. In the past I have needed smaller transactions deeper in the domain and not worrying about auto-committing the transaction you are inside of is handy.
from atlas.orm.
@jblotus Noted. Are you talking about actual SAVEPOINT implementation (for databases that support such) or just incrementing/decrementing a counter of how many times beginTransction() gets called?
from atlas.orm.
A counter - doctrine dbal has a good example of this approach including caveats =]
http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/transactions.html#transaction-nesting
from atlas.orm.
@jblotus Gotcha. I wonder if that's better as an Aura.Sql ExtendedPdo addition.
from atlas.orm.
@regilero @jblotus With this issue in mind, and because of other problems I discovered with Mapper::persist() not honoring transactions over multiple connections, I have started the 2.x branch, which uses a table-level ConnectionManager class. It can auto-open transactions as a connection is retrieved from the manager, return "write" connections in place of "read" ones while tables are writing, and so on. Cf. the 2.x changelog and the ConnectionManager class ...
- https://github.com/atlasphp/Atlas.Orm/blob/2.x/CHANGELOG.md
- https://github.com/atlasphp/Atlas.Orm/blob/2.x/src/Table/ConnectionManager.php
... and let me know what you think.
from atlas.orm.
This looks fantastic :)
from atlas.orm.
Closing due to lack of feedback (other than from @djmattyg007 -- thanks!). Please comment here if you find a reason to reopen it.
from atlas.orm.
Related Issues (20)
- Cached Queries HOT 8
- The name of the static method 'new' in the Atlas class seems to generate a parse error in third party libraries like phpDocumentor HOT 14
- joinWith doesn't work when specifying direction
- On updates, 1 and true and not being treated as the same for bit/boolean columns and values HOT 1
- Cannot delete all records in a many-to-many HOT 4
- Wrong parameters for PDOException? HOT 1
- Updating Many to Many?
- Postgres: problem when using uuid type field HOT 3
- Question: how to use raw insert values in ORM HOT 3
- Support for read-only MySQL generated columns
- Help: how to use advanced ORM feature HOT 5
- Help: Only the first result in a select includes data from related records HOT 7
- [Help Required] Getting Atlas\Mapper\Exception when trying to fetch a record from SQLite HOT 3
- How to use PHP-DI PSR 11 and Repository HOT 1
- Does Atlas.Orm suffer of the problem of useless order by on some ORM prefetches ?
- Row name for Exception::rowNotMapped() and Exception::rowAlreadyMapped() HOT 1
- orderBy missing HOT 1
- Issue with character encoding HOT 12
- Relationships manyToOne NULL HOT 8
- Missing get PDO connection from Atlas ORM HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from atlas.orm.