{"id":21228224,"url":"https://github.com/hexlet/phpstan-functional-programming","last_synced_at":"2025-07-10T15:30:51.377Z","repository":{"id":43137983,"uuid":"300445140","full_name":"Hexlet/phpstan-functional-programming","owner":"Hexlet","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-05T18:17:43.000Z","size":52,"stargazers_count":7,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-23T13:17:47.330Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hexlet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-01T22:54:51.000Z","updated_at":"2022-10-28T15:02:33.000Z","dependencies_parsed_at":"2022-08-30T02:21:02.983Z","dependency_job_id":null,"html_url":"https://github.com/Hexlet/phpstan-functional-programming","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexlet%2Fphpstan-functional-programming","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexlet%2Fphpstan-functional-programming/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexlet%2Fphpstan-functional-programming/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexlet%2Fphpstan-functional-programming/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hexlet","download_url":"https://codeload.github.com/Hexlet/phpstan-functional-programming/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225643081,"owners_count":17501325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T23:15:14.898Z","updated_at":"2024-11-20T23:15:15.727Z","avatar_url":"https://github.com/Hexlet.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# phpstan-functional-programming\n\n[![github action status](https://github.com/Hexlet/phpstan-functional-programming/workflows/PHP%20CI/badge.svg)](https://github.com/Hexlet/phpstan-functional-programming/actions)\n\n[PHPStan](https://phpstan.org) rules for functional programming\n\n## Install\n\nTo use this extension, require it in [Composer](https://getcomposer.org):\n\n```sh\n$ composer require --dev hexlet/phpstan-fp\n```\n\n## Usage\n\nAll of the rules provided (and used) by this library are included in [`extension.neon`](extension.neon).\n\nWhen you are using [phpstan/extension-installer](https://github.com/phpstan/extension-installer), `extension.neon` will be automatically included.\n\nOtherwise you need to include `extension.neon` in your `phpstan.neon`:\n\n```neon\nincludes:\n  - vendor/hexlet/phpstan-fp/extension.neon\n```\n\n## Rules\n\nThis package provides the following rules for use with *PHPStan*:\n\n* [`DisallowClassesRule`](docs/rules/DisallowClassesRule.md) - Forbid the use of `class`.\n* [`DisallowThrowRule`](docs/rules/DisallowThrowRule.md) - Forbid the use of `throw`.\n* [`DisallowUnusedExpressionRule`](docs/rules/DisallowUnusedExpressionRule.md) - Enforce that an expression gets used.\n* [`DisallowMutatingFunctionsRule`](docs/rules/DisallowMutatingFunctionsRule.md) - Forbid the use of mutating functions.\n* [`DisallowLoopsRule`](docs/rules/DisallowLoopsRule.md) - Forbid the use of loops.\n* [`DisallowMutationRule`](docs/rules/DisallowMutationRule.md) - Forbid the use of mutating operators.\n\n## Disabling rules\n\nIf you don't want to start using some of the available rules at once, you can.\n\n```neon\nparameters:\n\n  phpstanFunctionalProgramming:\n    disallowClasses: false\n    disallowLoops: false\n    disallowThrow: false\n    disallowUnusedExpression: false\n    disallowVariablesMutation: false\n    disallowMutatingFunctions: false\n```\n\n[![Hexlet Ltd. logo](https://raw.githubusercontent.com/Hexlet/assets/master/images/hexlet_logo128.png)](https://hexlet.io/?utm_source=github\u0026utm_medium=link\u0026utm_campaign=phpstan-functional-programming)\n\nThis repository is created and maintained by the team and the community of Hexlet, an educational project. [Read more about Hexlet](https://hexlet.io/?utm_source=github\u0026utm_medium=link\u0026utm_campaign=phpstan-functional-programming).\n\nSee most active contributors on [hexlet-friends](https://friends.hexlet.io/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexlet%2Fphpstan-functional-programming","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexlet%2Fphpstan-functional-programming","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexlet%2Fphpstan-functional-programming/lists"}