PackageManifest
class PackageManifest
Properties
| Filesystem | $files | The filesystem instance. |
|
| string | $basePath | The base path. |
|
| string | $vendorPath | The vendor path. |
|
| string|null | $manifestPath | The manifest path. |
|
| array|null | $manifest | The loaded manifest array (filtered by runtime ignore list). |
|
| protected array|null | $rawManifest | The raw manifest loaded from cache or built from installed.json. |
|
| static protected array<int, string> | $packagesToIgnore | Packages that should be ignored during discovery. |
Methods
Create a new package manifest instance.
Get all of the service provider class names for all packages.
Get all of the aliases for all packages.
Get all of the values for all packages for the given configuration name.
Get the cached version string for a package.
Determine if the given package is installed.
Determine if a package satisfies a version constraint.
Get the current package manifest.
Discover installed Hypervel package metadata.
Build the manifest and write it to disk.
Prepare a built or cached manifest before it is stored or used.
Format the given package name.
Format the given package name with the given vendor path.
Get the formatted package name from Composer metadata.
Get the Hypervel configuration from Composer metadata.
Get the package names ignored by root composer metadata.
Get a root Composer extra.hypervel value.
Get the package names that should be ignored during build.
Set packages that should be ignored during discovery.
Write the given manifest array to disk.
Flush all static state.
Details
at line 65
__construct(Filesystem $files, string $basePath, string|null $manifestPath)
Create a new package manifest instance.
at line 76
array
providers()
Get all of the service provider class names for all packages.
at line 84
array
aliases()
Get all of the aliases for all packages.
at line 92
array
config(string $key)
Get all of the values for all packages for the given configuration name.
at line 107
string|null
version(string $package)
Get the cached version string for a package.
Returns the version from the manifest cache, avoiding runtime Composer API calls. Useful for feature gating and compatibility checks in application and package code.
at line 117
bool
hasPackage(string $package)
Determine if the given package is installed.
at line 133
bool
satisfies(string $package, string $constraint)
Determine if a package satisfies a version constraint.
Uses Composer's semver constraint parser for full constraint support (e.g., "^2.0", ">=1.5 <3.0", "~4.1").
Requires composer/semver package. Add it to your project:
composer require composer/semver
at line 161
protected array
getManifest()
Get the current package manifest.
The raw manifest is cached from disk/build. The runtime ignore list (from ignorePackageDiscoveriesFrom) is applied on every call, so filtering works correctly even when the ignore list changes after the manifest was first loaded (e.g., in test suites).
at line 201
static array
discoverInstalledPackages(Filesystem $files, string $vendorPath, array $baseIgnore)
Discover installed Hypervel package metadata.
at line 276
void
build()
Build the manifest and write it to disk.
at line 296
protected array
prepareManifest(array $manifest)
Prepare a built or cached manifest before it is stored or used.
at line 304
protected string
format(string $package)
Format the given package name.
at line 312
static protected string
formatPackageName(string $package, string $vendorPath)
Format the given package name with the given vendor path.
at line 320
static protected string
packageName(array $package, string $location, string $vendorPath)
Get the formatted package name from Composer metadata.
at line 342
static protected array
hypervelExtra(array $package, string $location)
Get the Hypervel configuration from Composer metadata.
at line 364
static array
packagesToIgnoreFromComposer(Filesystem $files, string $basePath)
Get the package names ignored by root composer metadata.
at line 374
static mixed
rootHypervelExtra(Filesystem $files, string $basePath, string $key)
Get a root Composer extra.hypervel value.
at line 400
protected array
packagesToIgnore()
Get the package names that should be ignored during build.
Only includes project-level dont-discover from composer.json. Runtime ignores (from ignorePackageDiscoveriesFrom) are applied at read time in getManifest(), not at build time.
at line 416
static void
ignorePackageDiscoveriesFrom(array $packages)
Set packages that should be ignored during discovery.
Used by testbench to suppress package discovery at runtime without modifying the project's composer.json.
The list persists in a static property used during package discovery; runtime use has no effect on already-discovered providers.
at line 427
protected void
write(array $manifest)
Write the given manifest array to disk.
at line 442
static void
flushState()
Flush all static state.