Skip to content

Comments

Update dependency azjezz/psl to v4#274

Merged
Ocramius merged 1 commit into1.26.xfrom
renovate/azjezz-psl-4.x
Feb 17, 2026
Merged

Update dependency azjezz/psl to v4#274
Ocramius merged 1 commit into1.26.xfrom
renovate/azjezz-psl-4.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 19, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
azjezz/psl ^3.0.2^4.2.1 age adoption passing confidence

Release Notes

azjezz/psl (azjezz/psl)

v4.2.1: Noise 4.2.1

Compare Source

What's Changed

Full Changelog: azjezz/psl@4.2.0...4.2.1

v4.2.0: Version 4.2.0

Compare Source

What's Changed

Full Changelog: azjezz/psl@4.1.0...4.2.0

v4.1.0: Noise 4.1.0

Compare Source

Psl Noise - 4.1.0

This release introduces two major new data structure components to the PHP Standard Library: Tree and Graph. These additions bring powerful hierarchical and relational data manipulation tools to PHP developers with PSL's signature type-safe API.

What's Changed

✨ New Features

🌳 Psl\Tree Component

A comprehensive tree data structure implementation for working with hierarchical data.

Features: Immutable tree nodes, functional operations (map, filter, reduce, fold), traversal algorithms (pre-order, post-order, level-order), search utilities, and conversion functions.

use Psl\Tree;

// Create and manipulate trees
$tree = Tree\tree('root', [
    Tree\leaf('child1'),
    Tree\tree('child2', [Tree\leaf('grandchild')]),
]);

// Functional operations
$doubled = Tree\map($tree, fn($x) => $x . '!');
$values = Tree\pre_order($tree); // ['root', 'child1', 'child2', 'grandchild']
$count = Tree\count($tree); // 4

// Build from database records
$tree = Tree\from_list(
    $records,
    fn($r) => $r['id'],
    fn($r) => $r['parent_id'],
    fn($r) => $r['name']
);

Use Cases: File systems, organizational hierarchies, DOM structures, category trees, menu systems.

Full Documentation


🕸️ Psl\Graph Component

A robust graph data structure implementation supporting both directed and undirected graphs with algorithms for analysis and pathfinding.

Features: Immutable graphs, weighted/unweighted edges, BFS/DFS traversal, shortest path (Dijkstra/BFS), topological sorting, cycle detection, flexible node types.

use Psl\Graph;

// Create and traverse graphs
$graph = Graph\directed();
$graph = Graph\add_edge($graph, 'A', 'B');
$graph = Graph\add_edge($graph, 'B', 'C');

$path = Graph\shortest_path($graph, 'A', 'C'); // ['A', 'B', 'C']
$sorted = Graph\topological_sort($graph); // ['A', 'B', 'C']

// Weighted graphs
$graph = Graph\add_edge($graph, 'NYC', 'Boston', 215);
$graph = Graph\add_edge($graph, 'NYC', 'Philadelphia', 95);
$graph = Graph\add_edge($graph, 'Philadelphia', 'Boston', 310);
$route = Graph\shortest_path($graph, 'NYC', 'Boston'); // ['NYC', 'Boston']

// Undirected graphs
$social = Graph\undirected();
$social = Graph\add_edge($social, 'Alice', 'Bob');

Use Cases: Dependency resolution, route finding, social networks, state machines, task scheduling.

Full Documentation


🔍 Reflection-Based Type Functions

New type functions for runtime validation of class members using PHP's reflection API:

  • Type\constant_name_of() - Validate constant names
  • Type\enum_case_of() - Validate enum case names
  • Type\method_name_of() - Validate method names (case-insensitive)
  • Type\property_name_of() - Validate property names

Each includes visibility-specific variants (public_*, protected_*, private_*).

use Psl\Type;

Type\method_name_of(MyClass::class)->assert('someMethod');
Type\property_name_of(MyClass::class)->assert('someProperty');
Type\public_constant_name_of(MyClass::class)->assert('SOME_CONSTANT');

Full Documentation


🛠️ Tooling Updates

  • Migration to just: Migrated from make to just for improved cross-platform compatibility and developer experience

⬆️ Dependency Updates

  • mago updated to 1.0.0-beta.32
  • actions/setup-just bumped from v2 to v3
  • Various development dependency updates

🤝 Contributors

@​veewee has been added to GitHub sponsors

Full Changelog: 4.0.1...4.1.0

v4.0.1: Noise 4.0.1

Compare Source

What's Changed

Full Changelog: azjezz/psl@4.0.0...4.0.1

v4.0.0

Compare Source

breaking changes
  • Psl\Result\wrap() no longer unwraps nested results - #​531 by @​azjezz
  • Psl\Collection\Map, Psl\Collection\MutableMap, Psl\Collection\Set, and Psl\Collection\MutableSet now have a more natural JSON serialization - #​512 by @​josh-rai
  • A large number of intersection interfaces in the Psl\IO and Psl\File namespaces have been removed to simplify the component's hierarchy - #​518 by @​azjezz
  • Psl\sequence() function has been removed - #​519 by @​azjezz
features
fixes, and improvements
other

Configuration

📅 Schedule: 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 is behind base branch, 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

Read more information about the use of Renovate Bot within Laminas.

@renovate renovate bot added the renovate label Sep 19, 2025
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch from 275c9a5 to d4c0eb7 Compare September 30, 2025 20:26
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from feab94b to 1ebee14 Compare October 13, 2025 05:44
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from 5f1328b to 5809b89 Compare October 27, 2025 06:15
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from 417f541 to 11cefb5 Compare November 3, 2025 06:13
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch from 11cefb5 to d5b1914 Compare November 10, 2025 04:52
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from d63eab0 to 8492ee1 Compare November 20, 2025 16:41
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from 209087a to 1c74574 Compare December 29, 2025 05:37
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch from 1c74574 to 34d4f67 Compare January 5, 2026 06:57
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch 2 times, most recently from 3d0e92e to e85d7b2 Compare January 26, 2026 05:39
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch 3 times, most recently from 2bf1766 to 356553d Compare February 9, 2026 05:16
@Ocramius Ocramius self-assigned this Feb 17, 2026
@Ocramius Ocramius added this to the 1.26.0 milestone Feb 17, 2026
| datasource | package    | from  | to    |
| ---------- | ---------- | ----- | ----- |
| packagist  | azjezz/psl | 3.3.0 | 4.2.1 |


Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@Ocramius Ocramius added Enhancement dependencies Pull requests that update a dependency file labels Feb 17, 2026
@renovate renovate bot force-pushed the renovate/azjezz-psl-4.x branch from 356553d to 2f4f474 Compare February 17, 2026 19:59
@Ocramius Ocramius merged commit 5c95880 into 1.26.x Feb 17, 2026
17 checks passed
@Ocramius Ocramius deleted the renovate/azjezz-psl-4.x branch February 17, 2026 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file Enhancement renovate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant