No description
  • PHP 84.8%
  • Blade 15.2%
Find a file
Hephaestus 210c82eb4e chore(php-uptelligence): clear 1 sonar bug — dead ternary in CheckUpdatesCommand (Mantis #1302)
Console/CheckUpdatesCommand.php:62 — `return $hasUpdates ? self::SUCCESS : self::SUCCESS`
had identical branches (php:S3923 "all blocks the same"). The `$hasUpdates`
computation was dead code; both paths return SUCCESS regardless.

Replaced with a plain `return self::SUCCESS` plus a comment clarifying that
"has updates" is informational (returned via table/JSON output), not an error
exit code. Consumers needing to act on update presence parse the output.

Verification:
- php -l clean

Closes tasks.lthn.sh/view.php?id=1302 (bug drops to 0; smells/dup remain)

Filed-by: hephaestus
Co-authored-by: Hephaestus <hephaestus@lthn.ai>
2026-05-01 10:04:35 +01:00
.forgejo/workflows fix(ci): install zip in release workflow 2026-02-27 17:43:54 +00:00
.gemini Initial commit 2026-01-26 23:25:24 +00:00
.github monorepo sepration 2026-01-26 23:56:46 +00:00
changelog/2026/jan docs(changelog): add completed P2 items for January 2026 2026-01-29 19:52:32 +00:00
Console chore(php-uptelligence): clear 1 sonar bug — dead ternary in CheckUpdatesCommand (Mantis #1302) 2026-05-01 10:04:35 +01:00
Controllers/Api feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
Data feat(uptelligence): implement DiffAnalyzerService + AIAnalyzerService (#861) 2026-04-25 05:13:44 +01:00
database feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
docs security: fix shell injection in AssetTrackerService 2026-01-29 12:21:07 +00:00
Jobs feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
Models feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
Notifications chore: fix pint code style and add test config 2026-02-23 03:50:07 +00:00
routes feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
Services feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
tests feat(uptelligence): implement DiffAnalyzerService + AIAnalyzerService (#861) 2026-04-25 05:13:44 +01:00
View feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
.editorconfig Initial commit 2026-01-26 23:25:24 +00:00
.gitattributes Initial commit 2026-01-26 23:25:24 +00:00
.gitignore chore: gitignore composer.lock 2026-03-15 15:45:25 +00:00
.woodpecker.yml ci: woodpecker pipeline (PHP) — golangci-lint/eslint/phpstan + sonar.lthn.sh 2026-04-28 23:33:58 +01:00
AGENTS.md Initial commit 2026-01-26 23:25:24 +00:00
Boot.php feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
CLAUDE.md fix(uptelligence): DX audit — fix strict_types and CLAUDE.md commands 2026-03-17 09:11:03 +00:00
cliff.toml Initial commit 2026-01-26 23:25:24 +00:00
composer.json feat: rename package to lthn/php-uptelligence for Packagist 2026-03-09 18:00:09 +00:00
config.php feat(uptelligence): implement RFC.md — vendor intelligence + dependency tracking + AI diff analysis (#846) 2026-04-25 22:57:53 +01:00
GEMINI.md Initial commit 2026-01-26 23:25:24 +00:00
LICENCE chore: add EUPL-1.2 LICENCE file (UK English canonical) 2026-05-01 08:36:12 +01:00
LICENSE Initial commit 2026-01-26 23:25:24 +00:00
phpstan.neon chore(php): add CorePHP shape skeleton files (Phase 1, Mantis #1267) 2026-05-01 06:55:44 +01:00
phpunit.xml chore: fix pint code style and add test config 2026-02-23 03:50:07 +00:00
pint.json chore(php): add CorePHP shape skeleton files (Phase 1, Mantis #1267) 2026-05-01 06:55:44 +01:00
README.md Initial commit 2026-01-26 23:25:24 +00:00
sonar-project.properties ci: woodpecker pipeline (PHP) — golangci-lint/eslint/phpstan + sonar.lthn.sh 2026-04-28 23:33:58 +01:00
TODO.md fix(security): address P2 security items and migration mismatch 2026-01-29 13:29:26 +00:00

Core PHP Framework Project

CI codecov PHP Version Laravel License

A modular monolith Laravel application built with Core PHP Framework.

Features

  • Core Framework - Event-driven module system with lazy loading
  • Admin Panel - Livewire-powered admin interface with Flux UI
  • REST API - Scoped API keys, rate limiting, webhooks, OpenAPI docs
  • MCP Tools - Model Context Protocol for AI agent integration

Requirements

  • PHP 8.2+
  • Composer 2.x
  • SQLite (default) or MySQL/PostgreSQL
  • Node.js 18+ (for frontend assets)

Installation

# Clone or create from template
git clone https://github.com/host-uk/core-template.git my-project
cd my-project

# Install dependencies
composer install
npm install

# Configure environment
cp .env.example .env
php artisan key:generate

# Set up database
touch database/database.sqlite
php artisan migrate

# Start development server
php artisan serve

Visit: http://localhost:8000

Project Structure

app/
├── Console/      # Artisan commands
├── Http/         # Controllers & Middleware
├── Models/       # Eloquent models
├── Mod/          # Your custom modules
└── Providers/    # Service providers

config/
└── core.php      # Core framework configuration

routes/
├── web.php       # Public web routes
├── api.php       # REST API routes
└── console.php   # Artisan commands

Creating Modules

# Create a new module with all features
php artisan make:mod Blog --all

# Create module with specific features
php artisan make:mod Shop --web --api --admin

Modules follow the event-driven pattern:

<?php

namespace App\Mod\Blog;

use Core\Events\WebRoutesRegistering;
use Core\Events\ApiRoutesRegistering;
use Core\Events\AdminPanelBooting;

class Boot
{
    public static array $listens = [
        WebRoutesRegistering::class => 'onWebRoutes',
        ApiRoutesRegistering::class => 'onApiRoutes',
        AdminPanelBooting::class => 'onAdminPanel',
    ];

    public function onWebRoutes(WebRoutesRegistering $event): void
    {
        $event->routes(fn() => require __DIR__.'/Routes/web.php');
        $event->views('blog', __DIR__.'/Views');
    }
}

Core Packages

Package Description
host-uk/core Core framework components
host-uk/core-admin Admin panel & Livewire modals
host-uk/core-api REST API with scopes & webhooks
host-uk/core-mcp Model Context Protocol tools

Flux Pro (Optional)

This template uses the free Flux UI components. If you have a Flux Pro license:

# Configure authentication
composer config http-basic.composer.fluxui.dev your-email your-license-key

# Add the repository
composer config repositories.flux-pro composer https://composer.fluxui.dev

# Install Flux Pro
composer require livewire/flux-pro

Documentation

License

EUPL-1.2 (European Union Public Licence)