Skip to content

Update dependency boundwize/structarmed to ^0.19.0 - #562

Merged
arhimede merged 1 commit into
7.0from
renovate/boundwize-structarmed-0.x
Oct 8, 2026
Merged

arhimede merged 1 commit into
7.0from
renovate/boundwize-structarmed-0.x

Conversation

@renovate

@renovate renovate Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
boundwize/structarmed ^0.18.0 → ^0.19.0 age confidence

Release Notes

boundwize/structarmed (boundwize/structarmed)

v0.19.0: Released: StructArmed 0.19.0

Compare Source

ci build PHPStan

StructArmed 0.19.0 introduces configurable project base paths and a new architecture rule for restricting constant usage.

This release introduces:

  • --basepath and its -d alias for analysing projects from a separate working directory;
  • the new MayNotUseConstantRule for restricting constant usage within architecture layers;
  • additional DDD preset restrictions for STDIN, STDOUT, and STDERR;
  • dependency update and internal cleanup.

Configurable Project Base Path

StructArmed now supports specifying the project root through --basepath or its short alias -d.

This is useful when StructArmed is installed in a separate tools directory instead of the project's root directory.

For example:

composer.json
src/
tests/
tools/
└── structarmed/
    ├── composer.json
    ├── structarmed.php
    └── vendor/

From tools/structarmed, run:

vendor/bin/structarmed analyse --basepath=../../

Or use the shorter form:

vendor/bin/structarmed analyse -d ../../

The specified base path is used for resolving:

  • architecture layer paths;
  • scan paths;
  • the project's composer.json and PSR-4 mappings;
  • cache directories;
  • baseline paths.

Configuration discovery checks the current working directory first, followed by the specified base path. An explicit --config remains relative to the current working directory.

The option also works with cache clearing:

vendor/bin/structarmed --basepath=../../ --clear-cache

CLI options may be specified before or after the command.

This makes StructArmed easier to integrate into projects that keep development tools and their dependencies separate from the application.

New MayNotUseConstantRule

StructArmed introduces:

MayNotUseConstantRule

This rule prevents classes, traits, and enums in a specified architecture layer from using a forbidden constant.

For example:

use Boundwize\StructArmed\Rule\Rules\Usage\MayNotUseConstantRule;

->rule(
    'domain_no_php_eol',
    new MayNotUseConstantRule(
        layer: 'Domain',
        constant: 'PHP_EOL',
    ),
)

The rule supports global and namespaced constants:

new MayNotUseConstantRule(
    layer: 'Domain',
    constant: 'Vendor\\Config\\DEBUG',
)

Constant names are matched case-sensitively, while namespace names are matched case-insensitively.

The rule also handles PHP's runtime fallback behavior for unqualified constants inside namespaces.

DDD Preset Improvements

The DDD preset now prevents the Domain layer from directly using these constants:

  • STDIN
  • STDOUT
  • STDERR

These restrictions are enabled automatically through:

Preset::DDD()

This helps keep domain logic independent of direct console input and output.

Internal Improvements

  • Remove unused RuleViolationCollection::forLayer() and toJson() methods.
  • Update fidry/cpu-core-counter dependency to ^1.4.
  • Update the analysis cache format to accommodate constant usage information.
  • Temporarily exclude PHP 8.5 on macOS from CI due to runner setup issues.

What's Changed

  • Add MayNotUseConstantRule and DDD preset restrictions in #​495.
  • Add configurable project base paths using --basepath and -d in #​496.
  • Improve configuration discovery across working and project directories in #​496.
  • Remove unused RuleViolationCollection::forLayer() and toJson() methods in #​476.
  • Update fidry/cpu-core-counter to ^1.4 in #​490.

Full Changelog: boundwize/structarmed@0.18.11...0.19.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@codecov

codecov Bot commented Oct 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 63.80%. Comparing base (669bdaf) to head (af95b4c).

Additional details and impacted files
@@            Coverage Diff            @@
##                7.0     #562   +/-   ##
=========================================
  Coverage     63.80%   63.80%           
  Complexity      989      989           
=========================================
  Files           180      180           
  Lines          3404     3404           
=========================================
  Hits           2172     2172           
  Misses         1232     1232           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Qodana for PHP

It seems all right 👌

No new problems were found according to the checks applied

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Detected 109 dependencies

Third-party software list

This page lists the third-party software dependencies used in project

Dependency Version Licenses
brick/math 1.0.0 MIT
brick/varexporter 0.7.0 MIT
defuse/php-encryption v2.4.0 MIT
doctrine/collections 3.1.0 MIT
doctrine/common 3.5.0 MIT
doctrine/data-fixtures 2.2.1 MIT
doctrine/dbal 4.5.0 MIT
doctrine/deprecations 1.1.6 MIT
doctrine/event-manager 2.1.1 MIT
doctrine/inflector 2.1.0 MIT
doctrine/instantiator 2.1.0 MIT
doctrine/lexer 3.0.3 MIT
doctrine/migrations 3.9.8 MIT
doctrine/orm 3.7.4 MIT
doctrine/persistence 4.2.0 MIT
dotkernel/dot-cache 4.4.0 MIT
dotkernel/dot-cli 3.11.1 MIT
dotkernel/dot-data-fixtures 1.5.0 MIT
dotkernel/dot-dependency-injection 1.4.1 MIT
dotkernel/dot-errorhandler 4.0.2 MIT
dotkernel/dot-event 4.4.0 MIT
dotkernel/dot-log 4.0.6 MIT
dotkernel/dot-mail 5.4.3 MIT
dotkernel/dot-response-header 3.6.0 MIT
dotkernel/dot-router 1.1.0 MIT
egulias/email-validator 4.0.4 MIT
fig/http-message-util 1.1.5 MIT
laminas/laminas-authentication 2.19.0 BSD-3-Clause
laminas/laminas-cli 1.15.0 BSD-3-Clause
laminas/laminas-component-installer 3.8.0 BSD-3-Clause
laminas/laminas-config-aggregator 1.20.0 BSD-3-Clause
laminas/laminas-diactoros 3.8.0 BSD-3-Clause
laminas/laminas-escaper 2.18.0 BSD-3-Clause
laminas/laminas-eventmanager 3.15.0 BSD-3-Clause
laminas/laminas-filter 2.42.0 BSD-3-Clause
laminas/laminas-httphandlerrunner 2.14.0 BSD-3-Clause
laminas/laminas-hydrator 4.19.0 BSD-3-Clause
laminas/laminas-inputfilter 2.35.0 BSD-3-Clause
laminas/laminas-permissions-acl 2.18.0 BSD-3-Clause
laminas/laminas-permissions-rbac 3.8.0 BSD-3-Clause
laminas/laminas-servicemanager 3.24.0 BSD-3-Clause
laminas/laminas-stdlib 3.21.0 BSD-3-Clause
laminas/laminas-stratigility 4.3.1 BSD-3-Clause
laminas/laminas-validator 2.65.0 BSD-3-Clause
lcobucci/jwt 5.6.0 BSD-3-Clause
league/event 3.0.3 MIT
league/oauth2-server 9.4.1 MIT
league/uri-interfaces 7.8.1 MIT
league/uri 7.8.1 MIT
mezzio/mezzio-authentication-oauth2 3.1.0 BSD-3-Clause
mezzio/mezzio-authentication 1.13.0 BSD-3-Clause
mezzio/mezzio-authorization-acl 1.13.0 BSD-3-Clause
mezzio/mezzio-authorization-rbac 1.10.0 BSD-3-Clause
mezzio/mezzio-authorization 1.11.0 BSD-3-Clause
mezzio/mezzio-cors 1.16.0 BSD-3-Clause
mezzio/mezzio-fastroute 3.14.0 BSD-3-Clause
mezzio/mezzio-hal 2.13.0 BSD-3-Clause
mezzio/mezzio-helpers 5.20.0 BSD-3-Clause
mezzio/mezzio-problem-details 1.19.0 BSD-3-Clause
mezzio/mezzio-router 3.20.0 BSD-3-Clause
mezzio/mezzio-template 3.0.0 BSD-3-Clause
mezzio/mezzio 3.28.1 BSD-3-Clause
nikic/fast-route 1.3.1 BSD-3-Clause
nikic/php-parser v5.9.0 BSD-3-Clause
paragonie/random_compat v9.99.100 MIT
phpstan/phpdoc-parser 2.3.6 MIT
psr/cache 3.0.0 MIT
psr/clock 1.0.0 MIT
psr/container 1.1.2 MIT
psr/event-dispatcher 1.0.0 MIT
psr/http-client 1.0.3 MIT
psr/http-factory 1.1.0 MIT
psr/http-message 2.0 MIT
psr/http-server-handler 1.0.2 MIT
psr/http-server-middleware 1.0.2 MIT
psr/link 1.1.1 MIT
psr/log 3.0.2 MIT
radebatz/type-info-extras 1.0.9 MIT
ramsey/collection 2.1.1 MIT
ramsey/uuid-doctrine 2.1.0 MIT
ramsey/uuid 4.9.4 MIT
roave/psr-container-doctrine 6.2.0 BSD-2-Clause
spatie/array-to-xml 3.4.4 MIT
symfony/cache-contracts v3.7.1 MIT
symfony/cache v7.4.20 MIT
symfony/console v7.4.20 MIT
symfony/deprecation-contracts v3.7.1 MIT
symfony/event-dispatcher-contracts v3.7.1 MIT
symfony/event-dispatcher v8.1.5 MIT
symfony/filesystem v7.4.18 MIT
symfony/finder v8.1.8 MIT
symfony/mailer v7.4.19 MIT
symfony/mime v8.1.7 MIT
symfony/polyfill-ctype v1.37.0 MIT
symfony/polyfill-intl-grapheme v1.43.0 MIT
symfony/polyfill-intl-idn v1.43.0 MIT
symfony/polyfill-intl-normalizer v1.43.0 MIT
symfony/polyfill-mbstring v1.43.0 MIT
symfony/polyfill-php86 v1.43.0 MIT
symfony/service-contracts v3.7.3 MIT
symfony/stopwatch v8.1.0 MIT
symfony/string v8.1.7 MIT
symfony/type-info v8.1.8 MIT
symfony/var-exporter v7.4.18 MIT
symfony/yaml v8.1.8 MIT
webimpress/safe-writer 2.2.0 BSD-2-Clause
webmozart/assert 2.5.0 MIT
willdurand/negotiation 3.1.0 MIT
zircote/swagger-php 6.12.0 Apache-2.0
Contact Qodana team

Contact us at qodana-support@jetbrains.com

@arhimede
arhimede merged commit 5ac9a06 into 7.0 Oct 8, 2026
40 checks passed
@renovate
renovate Bot deleted the renovate/boundwize-structarmed-0.x branch October 8, 2026 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant