CodeIgniter4/deptrac.yaml

279 lines
6.6 KiB
YAML
Raw Normal View History

2022-05-05 17:31:05 +09:00
# 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\\.*
2024-01-23 16:34:30 +09:00
- name: DataCaster
collectors:
- type: className
regex: ^Codeigniter\\DataCaster\\.*
- name: DataConverter
collectors:
- type: className
regex: ^Codeigniter\\DataConverter\\.*
2022-05-05 17:31:05 +09:00
- 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
2022-11-13 23:12:14 +07:00
Cache:
- I18n
2022-05-05 17:31:05 +09:00
Controller:
- HTTP
- Validation
2022-11-14 16:54:30 +08:00
Cookie:
- I18n
2022-05-05 17:31:05 +09:00
Database:
- Entity
- Events
2022-11-18 15:12:53 +08:00
- I18n
2024-01-23 16:34:30 +09:00
DataCaster:
- I18n
- URI
2024-02-12 13:49:29 +09:00
- Database
2024-01-23 16:34:30 +09:00
DataConverter:
- DataCaster
2022-05-05 17:31:05 +09:00
Email:
- I18n
2022-05-05 17:31:05 +09:00
- Events
Entity:
2024-01-23 16:34:30 +09:00
- DataCaster
2022-05-05 17:31:05 +09:00
- I18n
2022-11-16 15:30:44 +07:00
Files:
- I18n
2022-05-05 17:31:05 +09:00
Filters:
- HTTP
Honeypot:
- Filters
- HTTP
HTTP:
- Cookie
- Files
2022-11-16 15:30:44 +07:00
- I18n
2022-05-05 17:31:05 +09:00
- Security
- URI
Images:
- Files
2022-11-16 15:30:44 +07:00
- I18n
2022-05-05 17:31:05 +09:00
Model:
- Database
- DataConverter
2023-08-14 11:18:22 +09:00
- Entity
2022-05-05 17:31:05 +09:00
- I18n
- Pager
- Validation
Pager:
- URI
- View
Publisher:
- Files
- URI
RESTful:
- +API
- +Controller
Router:
- HTTP
Security:
- Cookie
2022-11-16 15:30:44 +07:00
- I18n
2022-05-05 17:31:05 +09:00
- Session
- HTTP
Session:
- Cookie
- HTTP
- Database
- I18n
2022-05-05 17:31:05 +09:00
Throttle:
- Cache
2022-11-16 15:30:44 +07:00
- I18n
2022-05-05 17:31:05 +09:00
Validation:
- HTTP
2024-02-01 19:57:57 +09:00
- Database
2022-05-05 17:31:05 +09:00
View:
- Cache
skip_violations:
# Individual class exemptions
CodeIgniter\Cache\ResponseCache:
- CodeIgniter\HTTP\CLIRequest
2023-11-22 09:48:48 +09:00
- CodeIgniter\HTTP\Header
- CodeIgniter\HTTP\IncomingRequest
- CodeIgniter\HTTP\ResponseInterface
2024-01-23 16:34:30 +09:00
CodeIgniter\DataCaster\DataCaster:
- CodeIgniter\Entity\Cast\CastInterface
- CodeIgniter\Entity\Exceptions\CastException
CodeIgniter\DataCaster\Exceptions\CastException:
- CodeIgniter\Entity\Exceptions\CastException
2023-11-30 16:50:29 +09:00
CodeIgniter\DataConverter\DataConverter:
- CodeIgniter\Entity\Entity
2022-05-05 17:31:05 +09:00
CodeIgniter\Entity\Cast\URICast:
- CodeIgniter\HTTP\URI
CodeIgniter\Log\Handlers\ChromeLoggerHandler:
- CodeIgniter\HTTP\ResponseInterface
2024-02-25 10:47:04 +09:00
CodeIgniter\Security\CheckPhpIni:
- CodeIgniter\View\Table
2022-05-05 17:31:05 +09:00
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