Thanks to visit codestin.com
Credit goes to psalm.dev
Psalm
Get started
Documentation
Paid support
Plugins
Blog
GitHub
<?php // These are all in OCP interface ITaskType { } /** * @psalm-template T of ITaskType */ interface IProvider { } /** * @psalm-template T of ITaskType */ class Task { } /** * @param IProvider<ITaskType> $provider */ function registerProvider(IProvider $provider): void { var_export($provider); } // --- // custom app code // --- class MyTaskType implements ITaskType { } /** * @template-implements IProvider<MyTaskType> */ class MyProvider implements IProvider { } registerProvider(new MyProvider);
Snippet created on November 30 2023 at 10:01 UTC
Settings
Get link