承接 valkyrja/psalm 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

valkyrja/psalm

Composer 安装命令:

composer create-project valkyrja/psalm

包简介

Psalm for the Valkyrja Project.

README 文档

README

Valkyrja Psalm

Shared Psalm configuration for Valkyrja PHP projects — a reference configuration and reusable workflow that enforce consistent static analysis across consuming repositories.

PHP Version Require Latest Stable Version License CI Status Scrutinizer Coverage Status Psalm Shepherd Maintainability Rating

Usage

Place a psalm.xml in your CI directory pointing to the project source. Run via the root Composer scripts:

# Check only (no shepherd, no cache cleared)
composer psalm

# Check with no cache
composer psalm-no-cache

# Post results to Psalm Shepherd
composer psalm-shepherd

# Post results with stats to Psalm Shepherd
composer psalm-shepherd-with-stats

# Show type coverage stats
composer psalm-stats

# Update the baseline file
composer psalm-update-baseline

Configuration

The CI directory ships with a psalm.xml that serves as the reference configuration. Key settings:

Setting Value Effect
errorLevel 1 Strictest level — all issues reported
totallyTyped true Every expression must be typed
findUnusedBaselineEntry true Warns when a baseline suppression is no longer needed
findUnusedCode false Dead-code detection disabled
errorBaseline psalm-baseline.xml Known issues tracked in baseline; update with composer psalm-update-baseline

Scanned Paths

Path Included
src/ Yes
vendor/ No

Suppressed Issue Types

These issue types are suppressed globally via <issueHandlers>:

Issue Reason
PropertyNotSetInConstructor Properties initialised outside constructors are common in the framework
DeprecatedClass Suppressed temporarily while the Env class deprecation is in progress
ClassMustBeFinal Framework classes are intentionally left non-final for extensibility
RedundantPropertyInitializationCheck False positives triggered by ??= assignments
UnsafeInstantiation Child class constructor parameter matching is left to the developer

Notes

  • PSALM_ALLOW_XDEBUG=1 is set in CI as a workaround for a JIT interaction with the #[Override] attribute. See vimeo/psalm#11723.
  • An autoload.php is required in the CI directory to bootstrap the project autoloader before Psalm analyses the source.

Workflows

The _workflow-call.yml reusable workflow runs Psalm against the calling repository's source. It is designed to be called from other repositories via workflow_call.

Inputs

Input Type Default Description
paths string Required. YAML filter spec with two keys: ci (CI config files that trigger a base-branch fetch) and files (all files that trigger the check).
post-pr-comment boolean true Post a PR comment on failure and remove it on success. Disable when the calling workflow handles its own reporting.
composer-options string '' Extra flags passed to every composer install step (e.g. --ignore-platform-req=ext-openswoole).
php-version string '8.4' PHP version to use.
ci-directory string '.github/ci/psalm' Path to the CI directory containing composer.json and the tool config.
extensions string 'mbstring, intl' PHP extensions to install via shivammathur/setup-php.
additional-directory string '' Path to an additional Composer dependencies directory to install before running Psalm. Leave empty to skip.
run-script string 'psalm' Composer script to run (e.g. psalm, psalm-shepherd, psalm-shepherd-with-stats).

Usage

jobs:
  psalm:
    uses: valkyrjaio/ci-psalm-php/.github/workflows/_workflow-call.yml@26.x
    permissions:
      pull-requests: write
      contents: read
    with:
      php-version: '8.4'
      run-script: 'psalm-shepherd-with-stats'
      paths: |
        ci:
          - '.github/ci/psalm/**'
          - '.github/workflows/psalm.yml'
        files:
          - '.github/ci/psalm/**'
          - '.github/workflows/psalm.yml'
          - 'src/**/*.php'
          - 'composer.json'
    secrets: inherit

secrets: inherit is required to pass the VALKYRJA_GHA_APP_ID and VALKYRJA_GHA_PRIVATE_KEY org secrets used for PR comments.

Contributing

See CONTRIBUTING.md for the submission process and VOCABULARY.md for the terminology used across Valkyrja.

Security Issues

If you discover a security vulnerability, please follow our disclosure procedure.

License

Licensed under the MIT license. See LICENSE.md.

统计信息

  • 总下载量: 2.27k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-16

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固