Uploaded image for project: 'Couchbase PHP client library'
  1. Couchbase PHP client library
  2. PCBC-1004

Insert ABI version tag into PHP extension namespace

    XMLWordPrintable

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:

      1. Couchbase\Extension\ABI_4_2
        only major.minor, and strictly control backward compatiblity in the PHP scripts
      2. 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.
      3. 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

      Attachments

        Issue Links

          Activity

            People

              avsej Sergey Avseyev
              avsej Sergey Avseyev
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                PagerDuty