Documentation
¶
Overview ¶
Package php provides dependency resolution for PHP Composer packages.
Overview ¶
This package implements deps.Language for PHP, supporting:
- Packagist registry resolution via packagist client
- composer.json manifest parsing
Registry Resolution ¶
Use [Language.Resolver] to fetch dependencies from Packagist:
resolver, _ := php.Language.Resolver()
g, _ := resolver.Resolve(ctx, "symfony/console", deps.Options{MaxDepth: 10})
Manifest Parsing ¶
Parse composer.json files:
parser, _ := php.Language.Manifest("composer", nil)
result, _ := parser.Parse("composer.json", deps.Options{})
Note: composer.json contains direct dependencies in "require". The resolver fetches transitive dependencies from Packagist.
packagist: github.com/stacktower-io/stacktower/pkg/integrations/packagist deps.Language: github.com/stacktower-io/stacktower/pkg/core/deps.Language
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Language = &deps.Language{ Name: "php", DefaultRegistry: "packagist", DefaultRuntimeVersion: "8.2", ManifestTypes: []string{"composer", "composer-lock"}, ManifestAliases: map[string]string{ "composer.json": "composer", "composer.lock": "composer-lock", }, NewResolver: newResolver, NewManifest: newManifest, ManifestParsers: manifestParsers, NormalizeName: func(name string) string { return strings.ToLower(strings.TrimSpace(name)) }, }
Language provides PHP dependency resolution via Packagist. Supports composer.json and composer.lock manifest files.
Functions ¶
This section is empty.
Types ¶
type ComposerJSON ¶
type ComposerJSON struct {
// contains filtered or unexported fields
}
ComposerJSON parses composer.json files. It extracts direct and dev dependencies and optionally resolves them via Packagist.
func (*ComposerJSON) IncludesTransitive ¶
func (c *ComposerJSON) IncludesTransitive() bool
func (*ComposerJSON) Parse ¶
func (c *ComposerJSON) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)
func (*ComposerJSON) Supports ¶
func (c *ComposerJSON) Supports(name string) bool
func (*ComposerJSON) Type ¶
func (c *ComposerJSON) Type() string
type ComposerLock ¶
type ComposerLock struct{}
ComposerLock parses composer.lock files. It provides a full transitive closure of the dependency graph without needing to contact a registry.
func (*ComposerLock) IncludesTransitive ¶
func (c *ComposerLock) IncludesTransitive() bool
func (*ComposerLock) Parse ¶
func (c *ComposerLock) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)
func (*ComposerLock) Supports ¶
func (c *ComposerLock) Supports(name string) bool
func (*ComposerLock) Type ¶
func (c *ComposerLock) Type() string
type ComposerMatcher ¶
type ComposerMatcher struct{}
ComposerMatcher implements constraint matching for Composer version constraints. Composer uses semver-like syntax with: - Exact: 1.0.0 - Range operators: >=, <=, >, <, != - Caret: ^1.2.3 (semver compatible) - Tilde: ~1.2.3 (next significant release) - Wildcard: 1.2.* - Hyphen: 1.0.0 - 2.0.0 - OR: || - AND: space or comma
func (ComposerMatcher) ParseConstraint ¶
func (ComposerMatcher) ParseConstraint(constraint string) pubgrub.Condition
ParseConstraint converts a Composer version constraint to a PubGrub Condition.
func (ComposerMatcher) ParseVersion ¶
func (ComposerMatcher) ParseVersion(version string) pubgrub.Version
ParseVersion converts a Composer version string to a PubGrub SemanticVersion.