php / php/pecl-database-ibm_db2
Take references instead of symbol names for bind param
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 26
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
(Writing it in here instead of bugs.php primarily so we can get the feel for GH issues for PHP stuff.)
The fact this API takes a symbol name (which it goes off into the symbol table to frob) gives it really confusing semantics (when exactly is the bind applied? what happens when the scope of bind and exec are different?), especially when classes are involved, and I suspect it's the root cause of many bizarre hard to explain (let alone reproduce) issues we encounter. We've also been special-cased by opcache because of this.
What we should be doing is either change the old API (if it can be done w/o a BC break, or if a BC break is acceptable), or a new API that takes a reference instead. I suspect we need to alter the bind handling a little so it can work with both semantics.
I think this might be preferable since we can't get everyone to use ODBC/PDO_IBM and this would be a smaller change for users than switching to those.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the bind API and its symbol-table handling, including how binding and execution interact across scopes and classes. Review the existing API alongside the mentioned ODBC/PDO_IBM alternatives, then define whether the old API can change compatibly or a reference-based API is needed; done means the bind semantics and compatibility impact are documented and agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100