Download the PHP package kumwe/sequence without Composer

On this page you can find all versions of the php package kumwe/sequence. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package sequence

Kumwe Sequence

Packagist version CI

Portable numbering format, reset and scope values, and the allocator port. The host reserves the numbers; this package says what they mean.

Kumwe Sequence defines document numbering for the Kumwe family: the declaration an allocated-number field carries (NumberSequenceFormat, with its NumberSequenceReset and NumberSequenceScope vocabularies), the counter coordinates that declaration composes, the rendering of a reserved value into the number a person reads, and NumberSequenceAllocator, the storage-neutral port a host implements to reserve the next value inside its own transaction. The package ships no allocator implementation of any kind: the counter store, its locks, its deadlock retry and its database evidence all stay in the host that owns the store.

Responsibility and non-goals

This package owns:

It does not own, and will refuse:

Installation and supported platforms

PHP ^8.5 and nothing else: the runtime requirement is php alone, with no extension and no Composer dependency. While the package is pre-1.0 a consumer pins an exact version, as docs/releasing.md explains.

Canonical namespace

Kumwe\Sequence\ is the one canonical root, autoloaded PSR-4 from src/. Values live under Kumwe\Sequence\Value\, the port under Kumwe\Sequence\Contract\, the refusal under Kumwe\Sequence\Exception\. There is no alias, historical namespace or compatibility root.

Five-minute example

The service never sees a store. counter() names exactly one counter from the declaration, the record's organization and the instant; allocate() reserves its next value inside the transaction the caller already holds; render() turns that value into the printed number. A runnable version against an in-memory reference allocator is examples/allocate-and-render.php.

Dependency injection: no provider, by design

This is a value and port package. It exports three directly constructible values, one interface and one exception, and no runtime service with collaborators, so it ships no Laminas/Mezzio ConfigProvider, no factory and no alias: an empty provider would be ceremony, not integration. Values are built from a declaration with NumberSequenceFormat::fromConfiguration(); enums are used as cases; the refusal is thrown by an adapter. The host constructs its allocator adapter and binds it to the port identifier itself, as Kumwe App does in its composition root:

The adapter is request- or operation-supplied in the package standard's vocabulary: it is bound to one connection whose open transaction every allocation joins, and it must never be shared across threads or processes. resources/service-map/v1.json records the absence and its reason; docs/integration.md walks through the binding and what the host must prove.

Public surface

Symbol Kind Capability Lifetime
Kumwe\Sequence\Value\NumberSequenceFormat final readonly class sequence.format value, per declaration
Kumwe\Sequence\Value\NumberSequenceReset string-backed enum sequence.reset case
Kumwe\Sequence\Value\NumberSequenceScope string-backed enum sequence.scope case
Kumwe\Sequence\Contract\NumberSequenceAllocator interface sequence.allocation host-supplied per connection
Kumwe\Sequence\Exception\NumberSequenceUnavailable final exception sequence.allocation thrown per refusal

No factories, no aliases, no configuration keys, no defaults: there is nothing to configure. Every symbol and member is documented in docs/public-api.md and pinned in resources/public-api/v1.json, enum cases included; composer manifests refuses drift. Capabilities are recorded in resources/capabilities/v1.json.

Guarantees

Extension and replacement points

NumberSequenceAllocator is the extension point: a host implements it once per store technology. The three values and the exception are final; a new scope or reset case is a reviewed change to this package with a new version, never a subclass or a host-side copy. A consumer that needs an in-memory allocator for its own tests writes one against the port, as the example and the suite do.

Core contract and compatibility

Kumwe\App\BusinessDefinition\Domain\NumberSequenceFormat, NumberSequenceReset and NumberSequenceScope become Kumwe\Sequence\Value\NumberSequenceFormat, NumberSequenceReset and NumberSequenceScope, with the reserved-key refusal described below. Kumwe\App\BusinessRecord\Application\BusinessNumberSequenceAllocator becomes Kumwe\Sequence\Contract\NumberSequenceAllocator with the same signature and parameter names; its @throws moves from the App's BusinessRecordTemporarilyUnavailable to the package's NumberSequenceUnavailable, so the App's adapter raises the package refusal and the App's record service translates it into its own retryable exception at the port boundary. The Doctrine adapter, the kernel binding, the definition validator, the posting-period calendar and every database test stay in the App. The release record preserves exact historical source mappings and consumer qualification requirements. Review drift against current Core before replacing old types. The reserved organization key - is rejected as of 0.2.0 to keep organization and site-wide counters disjoint.

Testing and clean-consumer commands

The lane is described in docs/architecture.md; the archive and clean-consumer proof in docs/releasing.md.

Release, compatibility, security and license

Releases are on the record: the newest ## X.Y.Z heading in CHANGELOG.md is the release a merge to main publishes, as docs/releasing.md describes. Compatibility follows semantic versioning with exact consumer pins while pre-1.0. Security policy and scope are in Apache License, Version 2.0.


All versions of sequence with dependencies

PHP Build Version
Package Version
Requires php Version ^8.5
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package kumwe/sequence contains the following files

Loading the files please wait ...