Talk in English - US at Longhorn PHP Conference 2023
Track Name:
Elm
View Slides: https://speakerdeck.com/morozov/longhorn-php-2023-database-abstractions-and-where-they-leak
Short URL: https://joind.in/talk/cc304
(QR-Code (opens in new window))
Doctrine DBAL is the most popular relational database abstraction library for PHP. Many developers prefer using a database abstraction since they usually provide a better developer experience than working directly with database drivers. However, despite the best effort of their designers, abstractions often make developers unhappy when it comes to using non-trivial database features. Per Joel Spolsky, "all non-trivial abstractions, to some degree, are leaky". As a quite complex one, Doctrine DBAL leaks in a variety of aspects: drivers, SQL dialects, and schema management specifics. In this talk, I will highlight the most notable inconsistencies of Doctrine DBAL APIs and provide recommendations on dealing with them.
Comments
Comments are closed.
Impressive details and examples.
loved the the detail of the presentation, as well as knowing the stats of where current tests are at.
I am currently diving into the code of DBAL itself and have ideas stirring around. and this presentation helped clarify a lot for me.
The examples helped a lot! It's easier to understand what is happening with your detailed visuals. Maybe adding a personal example of where you've seen/experienced database abstraction issues would be nice.
This was a great talk by the legendary Sergei Morozov. The technical examples about the problems that Doctrine DBAL has run into and resolved were interesting. I also liked the summary of its duality: DBAL is popular despite its flaws, but it is flawed because it is popular. I also liked the mention of the Tell, Don't Ask principle which should be considered for any integration project
I don't really use DBALs but it was neat hearing about the challenges of supporting a bunch of different solutions with disparate features. Like I'm sure OmniPay is plagued by the same issues, Flysystem, etc.
Interesting details about the challenges of building a DBAL and making an abstraction over different flavors of databases.
Thanks for your presentation and examples. I'll be sharing this with my team.