Download the PHP package 3neti/x-affiliation without Composer

On this page you can find all versions of the php package 3neti/x-affiliation. 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 x-affiliation

x-affiliation

3neti/x-affiliation provides application-scoped membership and sponsorship lineage for the 3neti ecosystem. It is a graph and invariant package: it knows which canonical Accounts belong to a network, who directly sponsored whom, and which ancestor/descendant paths follow from those direct relationships.

It intentionally does not perform identity verification, issue Pay Codes, grant authority, calculate commissions, or move money.

Why this package exists

An onboarding invitation can explain why a relationship is permitted, but the resulting relationship usually outlives the invitation. Keeping durable affiliation state outside onboarding and provisioning provides clean ownership:

Package Responsibility
3neti/onboarding Verify identity and create or link the canonical Account
3neti/x-provisioning Freeze, approve, offer, accept, and activate the invitation authority
3neti/x-affiliation Enforce unique network membership and durable sponsorship lineage
3neti/x-change Orchestrate the user experience and package integrations
3neti/x-journal Receive append-only operational evidence through a host binding
3neti/x-commerce Apply separately approved commercial rules to affiliation facts

The package uses neutral terms such as sponsor, member, ancestor, and descendant. It does not model an MLM compensation system.

Core invariants

Within one network and relationship type:

  1. A canonical Account may have only one membership.
  2. A mobile identity may have only one membership.
  3. A member may have only one active direct sponsor.
  4. A member cannot sponsor itself.
  5. The active sponsorship graph cannot contain a cycle.
  6. The same authority reference is idempotent.
  7. A different invitation cannot silently re-enroll or reparent a member.
  8. Sponsorship corrections supersede history; they never delete it.
  9. Raw mobile numbers are never persisted by this package.
  10. Membership or ancestry grants no role, mandate, visibility, or payment.

Installation

The service provider is discovered automatically. Publishing is optional:

Configure a stable, dedicated secret:

Do not rotate this value casually. Existing mobile identity keys cannot be reproduced after a rotation without a governed re-key operation.

Application-instance network

A network represents a logical installation, not a server, container, domain, or deployment replica. The host must supply a stable installation identifier:

Calling the action again with the same scope returns the existing network.

Mobile identity keys

The host first verifies and normalizes a mobile to E.164 through its onboarding boundary. x-affiliation then derives a network-scoped opaque key:

Equivalent input formats must be normalized before reaching this package. It rejects non-E.164 values rather than guessing a country or numbering plan.

Enrolling an initial/root member

A sponsor must already be an active network member. Initial commissioning or an explicitly approved root enrollment may use:

This action is idempotent only for the same source reference. A new source that targets an existing Account or mobile is rejected.

Eligibility preflight

Preflight is safe and read-only:

Preflight improves experience but is not authoritative. Establishment repeats the checks under a transaction because state can change after preflight.

Establishing sponsorship

The host translates an activated provisioning offer into a typed authority:

The member, direct sponsorship, ancestry projection, and evidence event are written in one retriable transaction. Repeating the same authority returns the same sponsorship. A different authority for the same Account or mobile fails.

Reading lineage

depth = 1 is the direct sponsor/member relationship. depth = 2 is the sponsor's sponsor, and so forth. Paths are a rebuildable current-state projection; direct sponsorship records are authoritative.

Governed correction

Reparenting is never implicit. A host should require a separately approved provisioning profile before calling SupersedeSponsorship. The replacement records its authority, reason, effective time, and predecessor. Historical records remain intact.

Audit integration

Every lifecycle operation creates a package-local AffiliationEvent with canonical fact hashing. Bind AffiliationEventSinkContract in the host to project those facts into x-journal or another append-only evidence system:

The sink receives no raw mobile or opaque mobile identity key.

Documentation

Development

The package test suite uses SQLite for portability. Production constraints and transactions are designed for supported Laravel relational databases; hosts should additionally exercise concurrent enrollment on their production engine.


All versions of x-affiliation with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
illuminate/contracts Version ^12.0 || ^13.0
illuminate/database Version ^12.0 || ^13.0
illuminate/support Version ^12.0 || ^13.0
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 3neti/x-affiliation contains the following files

Loading the files please wait ...