php

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

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

View Source
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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL