refactor: moved documents from docs to doc
This commit is contained in:
parent
f33d7ce33c
commit
f2f81f11df
56 changed files with 96 additions and 0 deletions
0
docs/.gitignore → doc/.gitignore
vendored
0
docs/.gitignore → doc/.gitignore
vendored
96
doc/reflection_implementation_strategy.md
Normal file
96
doc/reflection_implementation_strategy.md
Normal file
|
@ -0,0 +1,96 @@
|
|||
# Platform Reflection Implementation Strategy
|
||||
|
||||
## Overview
|
||||
This document outlines the implementation strategy for Platform Reflection, a cross-platform reflection system for Dart that serves as the foundation for our Laravel implementation.
|
||||
|
||||
## Core Requirements
|
||||
|
||||
### Cross-Platform Compatibility
|
||||
- Must run on all Dart targets (VM, Web, Flutter)
|
||||
- No dependency on dart:mirrors
|
||||
- Pure Dart implementation for maximum portability
|
||||
|
||||
### Runtime Capabilities Required for Laravel
|
||||
- Dynamic class instantiation with constructor resolution
|
||||
- Property get/set with proper type handling
|
||||
- Method invocation with parameter matching
|
||||
- Annotation/attribute support for Laravel decorators
|
||||
- Service container bindings support
|
||||
- Dependency injection resolution
|
||||
- Route reflection for controllers
|
||||
- Middleware reflection
|
||||
- Model reflection for ORM
|
||||
- Event/listener reflection
|
||||
- Policy/authorization reflection
|
||||
|
||||
## Reference Implementation Inspirations
|
||||
|
||||
### From Dart Mirrors (mirrors.cc/mirrors.dart)
|
||||
- Mirror hierarchy design for clean abstraction
|
||||
- Symbol resolution approach
|
||||
- Type information handling
|
||||
- Method and constructor parameter matching
|
||||
- Library and declaration organization
|
||||
|
||||
### From fake_reflection
|
||||
- Pure runtime reflection techniques
|
||||
- Dynamic instance creation patterns
|
||||
- Property access mechanisms
|
||||
- Method invocation strategies
|
||||
|
||||
## Missing Critical Features to Implement
|
||||
|
||||
### Core Reflection
|
||||
- Dynamic member lookup without hardcoding
|
||||
- Complete constructor resolution system
|
||||
- Proper method parameter matching
|
||||
- Type hierarchy reflection
|
||||
|
||||
### Laravel Support
|
||||
- Service container reflection
|
||||
- Controller action reflection
|
||||
- Model property/relationship reflection
|
||||
- Policy method reflection
|
||||
- Event handler reflection
|
||||
|
||||
### Type System
|
||||
- Generic type handling
|
||||
- Interface/mixin support
|
||||
- Inheritance chain resolution
|
||||
- Type alias support
|
||||
|
||||
### Member Access
|
||||
- Dynamic property access
|
||||
- Flexible method invocation
|
||||
- Static member support
|
||||
- Proper constructor resolution
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
### 1. Enhance Type System
|
||||
- Implement proper type hierarchy reflection
|
||||
- Add generic type support
|
||||
- Support interfaces and mixins
|
||||
- Handle type aliases
|
||||
|
||||
### 2. Improve Member Access
|
||||
- Implement dynamic property access
|
||||
- Add flexible method invocation
|
||||
- Support static members
|
||||
- Enhance constructor resolution
|
||||
|
||||
### 3. Add Laravel-Specific Features
|
||||
- Service container reflection support
|
||||
- Controller reflection capabilities
|
||||
- Model reflection support
|
||||
- Policy/authorization reflection
|
||||
- Event system reflection
|
||||
|
||||
### 4. Optimize Performance
|
||||
- Implement metadata caching
|
||||
- Optimize member lookup
|
||||
- Efficient type checking
|
||||
- Smart instance creation
|
||||
|
||||
## Conclusion
|
||||
This implementation strategy focuses on building a robust reflection system that can serve as the foundation for our Laravel implementation while maintaining cross-platform compatibility and avoiding dart:mirrors dependencies. The approach draws inspiration from established reflection implementations while addressing the specific needs of our platform.
|
Loading…
Reference in a new issue