alexsvorada / phpstan-espocrm
PHPStan rules for EspoCRM development
Installs: 104
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:phpstan-extension
Requires
- php: ^8.1
- phpstan/phpstan: ^2.1
This package is not auto-updated.
Last update: 2025-10-01 19:50:46 UTC
README
PHPStan extension providing custom rules for EspoCRM development to enforce coding standards and best practices.
Table of Contents
Requirements
Installation
1. Install via Composer
composer require --dev alexsvorada/phpstan-espocrm
2. Add to your phpstan.neon
includes: - vendor/alexsvorada/phpstan-espocrm/extension.neon
Rules
This extension provides the following PHPStan rules for EspoCRM:
Entity Rules
- DefineEntityTypeConstantRule: Ensures entities define the
ENTITY_TYPE
constant - DefineTemplateTypeConstantRule: Ensures entities define template type constants when needed
- NoEntityManagerInEntityRule: Prevents direct EntityManager usage in entity classes
Service Rules
- CallParentConstructorRule: Ensures parent constructor is called in service classes
- ServiceMustExtendRecordRule: Ensures services extend the appropriate Record class
Hook Rules
- NoSameEntitySaveRule: Prevents saving the same entity within hooks to avoid infinite loops
- SaveRestrictedEntityFieldsRule: Prevents saving restricted entity fields in hooks
- RequireOrderPropertyRule: Ensures hooks define the required
$order
property
Controller Rules
- OnlyOverrideParentMethodsRule: Ensures controllers only override parent methods, not create arbitrary ones
Usage
After installation, run PHPStan as usual:
vendor/bin/phpstan analyse
The rules will automatically be applied to your EspoCRM codebase, helping maintain code quality and prevent common issues.
Development
This extension follows EspoCRM coding standards and provides rules to enforce best practices in EspoCRM module development.