CodeIgniter4/deptrac.yaml
2024-02-27 11:26:57 +09:00

279 lines
6.6 KiB
YAML

# Defines the layers for each framework
# component and their allowed interactions.
# The following components are exempt
# due to their global nature:
# - CLI & Commands
# - Config
# - Debug
# - Exception
# - Service
# - Validation\FormatRules
parameters:
paths:
- ./app
- ./system
exclude_files:
- '#.*test.*#i'
layers:
- name: API
collectors:
- type: className
regex: ^Codeigniter\\API\\.*
- name: Cache
collectors:
- type: className
regex: ^Codeigniter\\Cache\\.*
- name: Controller
collectors:
- type: className
regex: ^CodeIgniter\\Controller$
- name: Cookie
collectors:
- type: className
regex: ^Codeigniter\\Cookie\\.*
- name: Database
collectors:
- type: className
regex: ^Codeigniter\\Database\\.*
- name: DataCaster
collectors:
- type: className
regex: ^Codeigniter\\DataCaster\\.*
- name: DataConverter
collectors:
- type: className
regex: ^Codeigniter\\DataConverter\\.*
- name: Email
collectors:
- type: className
regex: ^Codeigniter\\Email\\.*
- name: Encryption
collectors:
- type: className
regex: ^Codeigniter\\Encryption\\.*
- name: Entity
collectors:
- type: className
regex: ^Codeigniter\\Entity\\.*
- name: Events
collectors:
- type: className
regex: ^Codeigniter\\Events\\.*
- name: Files
collectors:
- type: className
regex: ^Codeigniter\\Files\\.*
- name: Filters
collectors:
- type: bool
must:
- type: className
regex: ^Codeigniter\\Filters\\Filter.*
- name: Format
collectors:
- type: className
regex: ^Codeigniter\\Format\\.*
- name: Honeypot
collectors:
- type: className
regex: ^Codeigniter\\.*Honeypot.* # includes the Filter
- name: HTTP
collectors:
- type: bool
must:
- type: className
regex: ^Codeigniter\\HTTP\\.*
must_not:
- type: className
regex: (Exception|URI)
- name: I18n
collectors:
- type: className
regex: ^Codeigniter\\I18n\\.*
- name: Images
collectors:
- type: className
regex: ^Codeigniter\\Images\\.*
- name: Language
collectors:
- type: className
regex: ^Codeigniter\\Language\\.*
- name: Log
collectors:
- type: className
regex: ^Codeigniter\\Log\\.*
- name: Model
collectors:
- type: className
regex: ^Codeigniter\\.*Model$
- name: Modules
collectors:
- type: className
regex: ^Codeigniter\\Modules\\.*
- name: Pager
collectors:
- type: className
regex: ^Codeigniter\\Pager\\.*
- name: Publisher
collectors:
- type: className
regex: ^Codeigniter\\Publisher\\.*
- name: RESTful
collectors:
- type: className
regex: ^Codeigniter\\RESTful\\.*
- name: Router
collectors:
- type: className
regex: ^Codeigniter\\Router\\.*
- name: Security
collectors:
- type: className
regex: ^Codeigniter\\Security\\.*
- name: Session
collectors:
- type: className
regex: ^Codeigniter\\Session\\.*
- name: Throttle
collectors:
- type: className
regex: ^Codeigniter\\Throttle\\.*
- name: Typography
collectors:
- type: className
regex: ^Codeigniter\\Typography\\.*
- name: URI
collectors:
- type: className
regex: ^CodeIgniter\\HTTP\\URI$
- name: Validation
collectors:
- type: bool
must:
- type: className
regex: ^Codeigniter\\Validation\\.*
must_not:
- type: className
regex: ^Codeigniter\\Validation\\FormatRules$
- name: View
collectors:
- type: className
regex: ^Codeigniter\\View\\.*
ruleset:
API:
- Format
- HTTP
Cache:
- I18n
Controller:
- HTTP
- Validation
Cookie:
- I18n
Database:
- Entity
- Events
- I18n
DataCaster:
- I18n
- URI
- Database
DataConverter:
- DataCaster
Email:
- I18n
- Events
Entity:
- DataCaster
- I18n
Files:
- I18n
Filters:
- HTTP
Honeypot:
- Filters
- HTTP
HTTP:
- Cookie
- Files
- I18n
- Security
- URI
Images:
- Files
- I18n
Model:
- Database
- DataConverter
- Entity
- I18n
- Pager
- Validation
Pager:
- URI
- View
Publisher:
- Files
- URI
RESTful:
- +API
- +Controller
Router:
- HTTP
Security:
- Cookie
- I18n
- Session
- HTTP
Session:
- Cookie
- HTTP
- Database
- I18n
Throttle:
- Cache
- I18n
Validation:
- HTTP
- Database
View:
- Cache
skip_violations:
# Individual class exemptions
CodeIgniter\Cache\ResponseCache:
- CodeIgniter\HTTP\CLIRequest
- CodeIgniter\HTTP\Header
- CodeIgniter\HTTP\IncomingRequest
- CodeIgniter\HTTP\ResponseInterface
CodeIgniter\DataCaster\DataCaster:
- CodeIgniter\Entity\Cast\CastInterface
- CodeIgniter\Entity\Exceptions\CastException
CodeIgniter\DataCaster\Exceptions\CastException:
- CodeIgniter\Entity\Exceptions\CastException
CodeIgniter\DataConverter\DataConverter:
- CodeIgniter\Entity\Entity
CodeIgniter\Entity\Cast\URICast:
- CodeIgniter\HTTP\URI
CodeIgniter\Log\Handlers\ChromeLoggerHandler:
- CodeIgniter\HTTP\ResponseInterface
CodeIgniter\Security\CheckPhpIni:
- CodeIgniter\View\Table
CodeIgniter\View\Table:
- CodeIgniter\Database\BaseResult
CodeIgniter\View\Plugins:
- CodeIgniter\HTTP\URI
# BC changes that should be fixed
CodeIgniter\HTTP\ResponseTrait:
- CodeIgniter\Pager\PagerInterface
CodeIgniter\HTTP\ResponseInterface:
- CodeIgniter\Pager\PagerInterface
CodeIgniter\HTTP\Response:
- CodeIgniter\Pager\PagerInterface
CodeIgniter\HTTP\RedirectResponse:
- CodeIgniter\Pager\PagerInterface
CodeIgniter\HTTP\DownloadResponse:
- CodeIgniter\Pager\PagerInterface
CodeIgniter\Validation\Validation:
- CodeIgniter\View\RendererInterface