# CCF **Repository Path**: wfdaj/CCF ## Basic Information - **Project Name**: CCF - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-05 - **Last Updated**: 2026-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Connecta Community Framework [![CI](https://github.com/philvangaatd/CCF/actions/workflows/ci.yml/badge.svg)](https://github.com/philvangaatd/CCF/actions/workflows/ci.yml) [![Code Quality](https://github.com/philvangaatd/CCF/actions/workflows/code-quality.yml/badge.svg)](https://github.com/philvangaatd/CCF/actions/workflows/code-quality.yml) [![PHP](https://img.shields.io/badge/PHP-8.3+-blue.svg)](https://php.net) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) Eigenständiges, modulares Community-Framework in PHP 8.3+. Inspiriert von WoltLab Community Framework (WCF) — aber vollständig eigene Architektur, eigener Namespace, eigenständiges Projekt. ## Features - Modulares Plugin-System mit Dependency-Resolver (Semver + Kahn's Algo) - PSR-4, PSR-11 (DI-Container), PSR-14 (Event-System) - REST-API (OpenAPI-kompatibel) mit JWT-Authentication - Twig 3 Template-Engine mit CCF Design-System - RBAC-Berechtigungssystem (Rollen & Permissions) - Forum-Modul (Boards, Threads, Posts) - Notifications, Content, User-Verwaltung - PHPStan Level 8, PHP CS Fixer, PHPUnit 10 ## Voraussetzungen - PHP 8.3+ - MySQL 8.0 / MariaDB 10.11 - Composer - Apache oder nginx mit Rewrite-Support ## Installation ```bash git clone https://github.com/philvangaatd/CCF.git cd CCF composer install cp .env.example .env # .env mit Datenbankzugangsdaten befüllen php bin/console migrate ``` ## Entwicklung ```bash # Tests ausführen ./vendor/bin/phpunit # Statische Analyse ./vendor/bin/phpstan analyse src/ modules/ --level=8 # Code-Style prüfen ./vendor/bin/php-cs-fixer fix --dry-run --diff # Code-Style fixen ./vendor/bin/php-cs-fixer fix # Migrations ausführen php bin/console migrate # Migrations-Status php bin/console migrate:status ``` ## Architektur ``` src/Framework/ ├── Core/ # DI-Container, EventDispatcher, Config, Bootstrap ├── Database/ # DBAL-Wrapper, Migrations-Engine ├── Module/ # Modul-System, Dependency-Resolver ├── Http/ # Request, Response, Router, Middleware, REST-API └── Template/ # Twig-Integration, Extensions modules/ ├── user/ # User-Verwaltung, Gruppen ├── auth/ # JWT-Authentication, Sessions ├── permissions/ # RBAC — Rollen & Berechtigungen ├── content/ # Abstraktes Content-System ├── notifications/ # In-App Benachrichtigungen └── forum/ # Forum (Boards, Threads, Posts) ``` ## API-Endpoints | Methode | Endpoint | Beschreibung | |---------|----------|--------------| | POST | /api/v1/users/register | Registrierung | | POST | /api/v1/auth/login | Login → JWT Token | | POST | /api/v1/auth/logout | Logout | | GET | /api/v1/users/{id} | User-Profil | | GET | /api/v1/users/me | Eigenes Profil | | GET | /api/v1/forum/boards | Alle Boards | | POST | /api/v1/forum/boards | Board erstellen | | GET | /api/v1/forum/boards/{id}/threads | Threads eines Boards | | POST | /api/v1/forum/threads | Thread erstellen | | GET | /api/v1/forum/threads/{id} | Thread abrufen | | GET | /api/v1/forum/threads/{id}/posts | Posts eines Threads | | POST | /api/v1/forum/posts | Post erstellen | | GET | /api/v1/status | Framework-Status | | GET | /api/v1/health | Health-Check | ## Modul entwickeln Jedes Modul braucht eine `module.json`: ```json { "id": "vendor/modul-name", "name": "Mein Modul", "version": "1.0.0", "requires": { "framework/core": "^1.0", "framework/user": "^1.0" } } ``` Und eine Klasse die `ModuleInterface` implementiert: ```php final class MeinModul implements ModuleInterface { public function getId(): string { return 'vendor/modul-name'; } public function getVersion(): string { return '1.0.0'; } public function getDependencies(): array { return ['framework/core' => '^1.0']; } public function boot(ContainerInterface $container): void { /* Services registrieren */ } public function install(Connection $db): void { /* Migrations */ } public function uninstall(Connection $db): void { /* Cleanup */ } } ``` ## Lizenz MIT License — siehe [LICENSE](LICENSE)