Details
-
Improvement
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
None
-
0
Description
Right now all symbols are defined in "Couchbase\Extension" namespace.
https://github.com/couchbase/couchbase-php-client/blob/0559852c5a7ee8c1da15f28c6ddb25485e9a00af/src/php_couchbase.cxx#L4136-L4246
For future compatibility to allow loading multiple versions of couchbase extension at the same time, we have to insert some tag into the namespace, that will be used by Composer library to avoid future conflict.
Some of the variants for consideration:
- Couchbase\Extension\ABI_4_2
only major.minor, and strictly control backward compatiblity in the PHP scripts - Couchbase\Extension\ABI_4_2_1
does not allow PHP scripts to "drift" at all and ensures that PHP scripts are always in sync with the extension. This version might be hard for users who cannot easily upgrade extension along with Composer package. - Couchbase_ABI_4_2\Extension
the same as above, but does not use the common namespace, even more future proof for poitential 5.x releases, where we will not cause any conflicts