add: adding new project docs
This commit is contained in:
parent
0f4935cea1
commit
fbf5c44dd5
4 changed files with 657 additions and 0 deletions
51
docs/assets/diagrams/README.md
Normal file
51
docs/assets/diagrams/README.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
# Architecture Diagrams
|
||||
|
||||
This directory contains Mermaid diagrams illustrating the platform's architecture and component relationships.
|
||||
|
||||
## Available Diagrams
|
||||
|
||||
1. **Package Architecture**
|
||||
- Shows all platform packages
|
||||
- Illustrates package dependencies
|
||||
- Highlights core, contracts, and infrastructure layers
|
||||
|
||||
2. **Request Lifecycle**
|
||||
- Details HTTP request flow
|
||||
- Shows middleware pipeline
|
||||
- Illustrates dependency injection points
|
||||
|
||||
3. **Service Container Flow**
|
||||
- Shows dependency injection process
|
||||
- Illustrates service provider lifecycle
|
||||
- Details service resolution
|
||||
|
||||
4. **Event System**
|
||||
- Shows event dispatching
|
||||
- Illustrates listener handling
|
||||
- Details queue integration
|
||||
|
||||
5. **Database Layer**
|
||||
- Shows model relationships
|
||||
- Illustrates query building
|
||||
- Details migration system
|
||||
|
||||
6. **Package Dependencies**
|
||||
- Complete dependency graph
|
||||
- Core package relationships
|
||||
- Infrastructure dependencies
|
||||
|
||||
## Usage
|
||||
|
||||
These diagrams are written in Mermaid markdown syntax and can be:
|
||||
1. Viewed directly in GitHub
|
||||
2. Rendered using Mermaid CLI
|
||||
3. Integrated into documentation
|
||||
|
||||
## Updating
|
||||
|
||||
When making architectural changes:
|
||||
1. Update relevant diagrams
|
||||
2. Ensure accuracy
|
||||
3. Keep consistent with implementation
|
||||
|
||||
See [architecture.md](architecture.md) for the actual diagrams.
|
190
docs/assets/diagrams/architecture.md
Normal file
190
docs/assets/diagrams/architecture.md
Normal file
|
@ -0,0 +1,190 @@
|
|||
# Platform Architecture Diagrams
|
||||
|
||||
## Package Architecture
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph Core ["Core Framework"]
|
||||
Container[illuminate/container]
|
||||
Support[illuminate/support]
|
||||
Foundation[illuminate/foundation]
|
||||
Http[illuminate/http]
|
||||
Routing[illuminate/routing]
|
||||
Database[illuminate/database]
|
||||
end
|
||||
|
||||
subgraph Contracts ["Contracts Layer"]
|
||||
ContainerContract[container_contract]
|
||||
EventContract[event_contract]
|
||||
HttpContract[http_contract]
|
||||
RouteContract[route_contract]
|
||||
QueueContract[queue_contract]
|
||||
PipelineContract[pipeline_contract]
|
||||
end
|
||||
|
||||
subgraph Infrastructure ["Infrastructure"]
|
||||
Events[events]
|
||||
Queue[queue]
|
||||
Pipeline[pipeline]
|
||||
Bus[bus]
|
||||
Process[process]
|
||||
Model[model]
|
||||
end
|
||||
|
||||
%% Contract Dependencies
|
||||
Container --> ContainerContract
|
||||
Events --> EventContract
|
||||
Http --> HttpContract
|
||||
Routing --> RouteContract
|
||||
Queue --> QueueContract
|
||||
Pipeline --> PipelineContract
|
||||
|
||||
%% Core Dependencies
|
||||
Foundation --> Container
|
||||
Http --> Container
|
||||
Routing --> Http
|
||||
Database --> Container
|
||||
|
||||
%% Infrastructure Dependencies
|
||||
Events --> Container
|
||||
Queue --> Container
|
||||
Pipeline --> Container
|
||||
Bus --> Events
|
||||
Process --> Container
|
||||
Model --> Database
|
||||
```
|
||||
|
||||
## Request Lifecycle
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Client
|
||||
participant Server
|
||||
participant Http
|
||||
participant Router
|
||||
participant Pipeline
|
||||
participant Controller
|
||||
participant Container
|
||||
|
||||
Client->>Server: HTTP Request
|
||||
Server->>Http: Handle Request
|
||||
Http->>Router: Route Request
|
||||
Router->>Pipeline: Process Middleware
|
||||
Pipeline->>Container: Resolve Dependencies
|
||||
Container->>Controller: Inject Dependencies
|
||||
Controller->>Client: Return Response
|
||||
```
|
||||
|
||||
## Service Container Flow
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph Container ["Container"]
|
||||
Bind[Bind Service]
|
||||
Resolve[Resolve Service]
|
||||
Make[Make Instance]
|
||||
end
|
||||
|
||||
subgraph Provider ["Service Provider"]
|
||||
Register[Register Services]
|
||||
Boot[Boot Services]
|
||||
end
|
||||
|
||||
subgraph Application ["Application"]
|
||||
Request[Handle Request]
|
||||
Response[Return Response]
|
||||
end
|
||||
|
||||
Register --> Bind
|
||||
Request --> Resolve
|
||||
Resolve --> Make
|
||||
Make --> Response
|
||||
Boot --> Request
|
||||
```
|
||||
|
||||
## Event System
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph Events ["Event System"]
|
||||
Dispatcher[Event Dispatcher]
|
||||
Listener[Event Listener]
|
||||
Queue[Queue Listener]
|
||||
end
|
||||
|
||||
subgraph Application ["Application"]
|
||||
Event[Fire Event]
|
||||
Handler[Handle Event]
|
||||
end
|
||||
|
||||
Event --> Dispatcher
|
||||
Dispatcher --> Listener
|
||||
Dispatcher --> Queue
|
||||
Listener --> Handler
|
||||
Queue --> Handler
|
||||
```
|
||||
|
||||
## Database Layer
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph Models ["Model Layer"]
|
||||
Model[Eloquent Model]
|
||||
Relation[Model Relations]
|
||||
Observer[Model Observer]
|
||||
end
|
||||
|
||||
subgraph Database ["Database"]
|
||||
Query[Query Builder]
|
||||
Schema[Schema Builder]
|
||||
Migration[Migrations]
|
||||
end
|
||||
|
||||
subgraph Events ["Events"]
|
||||
Created[Created Event]
|
||||
Updated[Updated Event]
|
||||
Deleted[Deleted Event]
|
||||
end
|
||||
|
||||
Model --> Query
|
||||
Model --> Relation
|
||||
Model --> Observer
|
||||
Observer --> Created
|
||||
Observer --> Updated
|
||||
Observer --> Deleted
|
||||
Query --> Schema
|
||||
Schema --> Migration
|
||||
```
|
||||
|
||||
## Package Dependencies
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph Core ["Core Packages"]
|
||||
Container[container]
|
||||
Support[support]
|
||||
Foundation[foundation]
|
||||
end
|
||||
|
||||
subgraph Features ["Feature Packages"]
|
||||
Http[http]
|
||||
Routing[routing]
|
||||
Database[database]
|
||||
Cache[cache]
|
||||
end
|
||||
|
||||
subgraph Infrastructure ["Infrastructure"]
|
||||
Events[events]
|
||||
Queue[queue]
|
||||
Pipeline[pipeline]
|
||||
end
|
||||
|
||||
%% Core Dependencies
|
||||
Support --> Container
|
||||
Foundation --> Container
|
||||
Foundation --> Support
|
||||
|
||||
%% Feature Dependencies
|
||||
Http --> Foundation
|
||||
Routing --> Http
|
||||
Database --> Foundation
|
||||
Cache --> Foundation
|
||||
|
||||
%% Infrastructure Dependencies
|
||||
Events --> Container
|
||||
Queue --> Events
|
||||
Pipeline --> Container
|
202
docs/implementation_plan.md
Normal file
202
docs/implementation_plan.md
Normal file
|
@ -0,0 +1,202 @@
|
|||
# Laravel Platform Implementation Plan
|
||||
|
||||
This document outlines our plan to implement a Laravel-compatible platform in Dart, using Lucifer as a base and following the IDD-AI methodology with AI assistance.
|
||||
|
||||
## Overview
|
||||
|
||||
### Goals
|
||||
1. 100% Laravel API compatibility
|
||||
2. Clean, maintainable Dart implementation
|
||||
3. Package independence
|
||||
4. Excellent developer experience
|
||||
|
||||
### Strategy
|
||||
1. Use Lucifer as minimal foundation
|
||||
2. Break into illuminate/* packages
|
||||
3. Follow Laravel's architecture
|
||||
4. Leverage AI assistance
|
||||
5. Follow IDD-AI methodology
|
||||
|
||||
## Implementation Phases
|
||||
|
||||
### Phase 1: Foundation
|
||||
Starting with Lucifer's base:
|
||||
|
||||
1. Container (Complete)
|
||||
- [x] Our implementation done
|
||||
- [x] Laravel API compatible
|
||||
- [x] Tests complete
|
||||
|
||||
2. Support Package (Next)
|
||||
```dart
|
||||
// Example of Laravel compatibility
|
||||
// Laravel: Str::slug('Laravel Framework')
|
||||
// Dart: Str.slug('Laravel Framework')
|
||||
```
|
||||
AI Tasks:
|
||||
- `/ai analyze-laravel Support`
|
||||
- `/ai suggest-implementation Support`
|
||||
- `/ai generate-tests Support`
|
||||
|
||||
3. Foundation Package
|
||||
```dart
|
||||
// Example of service provider registration
|
||||
// Laravel: $app->register(CacheServiceProvider::class)
|
||||
// Dart: app.register(CacheServiceProvider())
|
||||
```
|
||||
AI Tasks:
|
||||
- `/ai analyze-laravel Foundation`
|
||||
- `/ai suggest-architecture Foundation`
|
||||
- `/ai generate-contracts Foundation`
|
||||
|
||||
### Phase 2: HTTP Layer
|
||||
|
||||
1. HTTP Package
|
||||
```dart
|
||||
// Example of request handling
|
||||
// Laravel: $request->input('name')
|
||||
// Dart: request.input('name')
|
||||
```
|
||||
AI Tasks:
|
||||
- `/ai analyze-laravel Http`
|
||||
- `/ai suggest-implementation Request`
|
||||
- `/ai generate-tests Http`
|
||||
|
||||
2. Routing Package
|
||||
```dart
|
||||
// Example of route definition
|
||||
// Laravel: Route::get('/users', [UserController::class, 'index'])
|
||||
// Dart: Route.get('/users', UserController.index)
|
||||
```
|
||||
AI Tasks:
|
||||
- `/ai analyze-laravel Routing`
|
||||
- `/ai suggest-implementation Router`
|
||||
- `/ai check-compatibility Routing`
|
||||
|
||||
### Phase 3: Database Layer
|
||||
|
||||
1. Database Package
|
||||
```dart
|
||||
// Example of query builder
|
||||
// Laravel: DB::table('users')->where('active', true)->get()
|
||||
// Dart: DB.table('users').where('active', true).get()
|
||||
```
|
||||
AI Tasks:
|
||||
- `/ai analyze-laravel Database`
|
||||
- `/ai suggest-implementation QueryBuilder`
|
||||
- `/ai generate-tests Database`
|
||||
|
||||
2. Model Package
|
||||
```dart
|
||||
// Example of model definition
|
||||
// Laravel: class User extends Model
|
||||
// Dart: class User extends Model
|
||||
```
|
||||
AI Tasks:
|
||||
- `/ai analyze-laravel Model`
|
||||
- `/ai suggest-implementation Model`
|
||||
- `/ai check-compatibility Model`
|
||||
|
||||
## Development Process
|
||||
|
||||
For each package:
|
||||
|
||||
1. Research Phase
|
||||
```bash
|
||||
# Analyze Laravel implementation
|
||||
/ai analyze-laravel [package]
|
||||
|
||||
# Get architecture suggestions
|
||||
/ai suggest-architecture [package]
|
||||
```
|
||||
|
||||
2. Implementation Phase
|
||||
```bash
|
||||
# Generate package structure
|
||||
/ai generate-structure [package]
|
||||
|
||||
# Get implementation guidance
|
||||
/ai suggest-implementation [package]
|
||||
```
|
||||
|
||||
3. Testing Phase
|
||||
```bash
|
||||
# Generate tests
|
||||
/ai generate-tests [package]
|
||||
|
||||
# Verify Laravel compatibility
|
||||
/ai verify-behavior [package]
|
||||
```
|
||||
|
||||
4. Documentation Phase
|
||||
```bash
|
||||
# Generate docs
|
||||
/ai generate-docs [package]
|
||||
|
||||
# Create examples
|
||||
/ai create-examples [package]
|
||||
```
|
||||
|
||||
## Package Dependencies
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Container] --> B[Support]
|
||||
B --> C[Foundation]
|
||||
C --> D[Http]
|
||||
C --> E[Routing]
|
||||
C --> F[Database]
|
||||
F --> G[Model]
|
||||
```
|
||||
|
||||
## Quality Assurance
|
||||
|
||||
1. API Compatibility
|
||||
```bash
|
||||
# Check API compatibility
|
||||
/ai check-compatibility [package]
|
||||
|
||||
# Verify behavior
|
||||
/ai verify-behavior [package]
|
||||
```
|
||||
|
||||
2. Testing
|
||||
```bash
|
||||
# Generate comprehensive tests
|
||||
/ai generate-tests [package] --comprehensive
|
||||
|
||||
# Check test coverage
|
||||
/ai analyze-coverage [package]
|
||||
```
|
||||
|
||||
3. Documentation
|
||||
```bash
|
||||
# Generate package docs
|
||||
/ai generate-docs [package]
|
||||
|
||||
# Create migration guide
|
||||
/ai generate-migration-guide [package]
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Begin with Support package:
|
||||
- [ ] Analyze Laravel's Support package
|
||||
- [ ] Create package structure
|
||||
- [ ] Implement core functionality
|
||||
- [ ] Add tests and documentation
|
||||
|
||||
2. Move to Foundation:
|
||||
- [ ] Design service provider system
|
||||
- [ ] Implement application class
|
||||
- [ ] Set up bootstrapping
|
||||
|
||||
3. Continue with HTTP/Routing:
|
||||
- [ ] Design HTTP abstractions
|
||||
- [ ] Implement routing system
|
||||
- [ ] Add middleware support
|
||||
|
||||
## Related Documents
|
||||
- [IDD-AI Specification](idd_ai_specification.md)
|
||||
- [AI Assistance Guide](ai_assistance_guide.md)
|
||||
- [AI Workflow](ai_workflow.md)
|
214
docs/project_map.md
Normal file
214
docs/project_map.md
Normal file
|
@ -0,0 +1,214 @@
|
|||
# Platform Project Map
|
||||
|
||||
## Package Structure
|
||||
|
||||
### Core Packages
|
||||
```
|
||||
packages/
|
||||
illuminate/ # Laravel-compatible implementations
|
||||
container/ # ✓ Complete
|
||||
support/ # In Progress
|
||||
http/ # Planned
|
||||
routing/ # Planned
|
||||
...
|
||||
|
||||
contracts/ # ✓ Complete
|
||||
lib/src/
|
||||
container/ # Container contracts
|
||||
events/ # Event dispatcher contracts
|
||||
http/ # HTTP contracts
|
||||
pipeline/ # Pipeline contracts
|
||||
queue/ # Queue contracts
|
||||
...
|
||||
|
||||
core/ # Core functionality
|
||||
lib/src/
|
||||
core/ # Core components
|
||||
http/ # HTTP implementation
|
||||
http2/ # HTTP/2 support
|
||||
```
|
||||
|
||||
### Infrastructure Packages
|
||||
```
|
||||
packages/
|
||||
bus/ # Command/Event bus
|
||||
events/ # Event system
|
||||
model/ # Data models
|
||||
pipeline/ # Pipeline processing
|
||||
process/ # Process management
|
||||
queue/ # Queue system
|
||||
route/ # Routing system
|
||||
support/ # Support utilities
|
||||
testing/ # Testing utilities
|
||||
```
|
||||
|
||||
## Package Dependencies
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[contracts] --> B[container]
|
||||
A --> C[events]
|
||||
A --> D[pipeline]
|
||||
A --> E[queue]
|
||||
A --> F[http]
|
||||
B --> G[core]
|
||||
C --> G
|
||||
D --> G
|
||||
E --> G
|
||||
```
|
||||
|
||||
## Implementation Status
|
||||
|
||||
### Core Framework
|
||||
1. Container Package ✓
|
||||
- [x] Basic container
|
||||
- [x] Service providers
|
||||
- [x] Auto-wiring
|
||||
- [x] Contextual binding
|
||||
- [x] Method injection
|
||||
|
||||
2. Contracts Package ✓
|
||||
- [x] Container contracts
|
||||
- [x] Event contracts
|
||||
- [x] HTTP contracts
|
||||
- [x] Pipeline contracts
|
||||
- [x] Queue contracts
|
||||
|
||||
3. Core Package
|
||||
- [x] Base application
|
||||
- [x] HTTP kernel
|
||||
- [x] Service providers
|
||||
- [ ] Configuration
|
||||
- [ ] Environment handling
|
||||
|
||||
### Infrastructure
|
||||
1. Events Package
|
||||
- [x] Event dispatcher
|
||||
- [x] Event subscribers
|
||||
- [ ] Event broadcasting
|
||||
- [ ] Queued events
|
||||
|
||||
2. Pipeline Package
|
||||
- [x] Pipeline processing
|
||||
- [x] Middleware support
|
||||
- [ ] Pipeline stages
|
||||
- [ ] Error handling
|
||||
|
||||
3. Queue Package
|
||||
- [x] Queue manager
|
||||
- [x] Job dispatching
|
||||
- [ ] Failed jobs
|
||||
- [ ] Job batching
|
||||
|
||||
4. Route Package
|
||||
- [x] Route registration
|
||||
- [x] Route matching
|
||||
- [ ] Route groups
|
||||
- [ ] Route caching
|
||||
|
||||
## Laravel API Compatibility
|
||||
|
||||
### Implemented
|
||||
1. Container API
|
||||
```dart
|
||||
// Laravel: app()->bind()
|
||||
container.bind<Service>((c) => ServiceImpl());
|
||||
|
||||
// Laravel: app()->singleton()
|
||||
container.singleton<Cache>((c) => RedisCache());
|
||||
```
|
||||
|
||||
2. Events API
|
||||
```dart
|
||||
// Laravel: Event::dispatch()
|
||||
events.dispatch(UserCreated(user));
|
||||
|
||||
// Laravel: Event::listen()
|
||||
events.listen<UserCreated>((event) => ...);
|
||||
```
|
||||
|
||||
### In Progress
|
||||
1. Support Package
|
||||
```dart
|
||||
// Laravel: Str::slug()
|
||||
Str.slug('Laravel Framework');
|
||||
|
||||
// Laravel: collect()
|
||||
Collection.collect(['a', 'b']);
|
||||
```
|
||||
|
||||
2. HTTP Package
|
||||
```dart
|
||||
// Laravel: Request::input()
|
||||
request.input('name');
|
||||
|
||||
// Laravel: Response::json()
|
||||
response.json({'status': 'success'});
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Support Package
|
||||
- [ ] String helpers
|
||||
- [ ] Array helpers
|
||||
- [ ] Collections
|
||||
- [ ] Fluent interface
|
||||
|
||||
2. HTTP Package
|
||||
- [ ] Request handling
|
||||
- [ ] Response building
|
||||
- [ ] Middleware system
|
||||
- [ ] Session management
|
||||
|
||||
3. Database Package
|
||||
- [ ] Query builder
|
||||
- [ ] Schema builder
|
||||
- [ ] Migrations
|
||||
- [ ] Model system
|
||||
|
||||
## Development Workflow
|
||||
|
||||
1. Package Development
|
||||
```bash
|
||||
# Create new package
|
||||
dart create packages/illuminate/[package]
|
||||
|
||||
# Set up package
|
||||
cd packages/illuminate/[package]
|
||||
dart pub get
|
||||
```
|
||||
|
||||
2. Testing
|
||||
```bash
|
||||
# Run tests
|
||||
dart test
|
||||
|
||||
# Check coverage
|
||||
dart test --coverage
|
||||
```
|
||||
|
||||
3. Documentation
|
||||
```bash
|
||||
# Generate docs
|
||||
dart doc .
|
||||
|
||||
# Serve docs
|
||||
dhttpd --path doc/api
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
1. Documentation
|
||||
- [Framework Documentation](README.md)
|
||||
- [IDD-AI Specification](idd_ai_specification.md)
|
||||
- [AI Workflow](ai_workflow.md)
|
||||
|
||||
2. Specifications
|
||||
- [Core Package Specification](core_package_specification.md)
|
||||
- [Container Package Specification](container_package_specification.md)
|
||||
- [Support Package Specification](support_package_specification.md)
|
||||
|
||||
3. Analysis
|
||||
- [Container Gap Analysis](container_gap_analysis.md)
|
||||
- [Events Gap Analysis](events_gap_analysis.md)
|
||||
- [Pipeline Gap Analysis](pipeline_gap_analysis.md)
|
Loading…
Reference in a new issue