Tuesday, 15 October 2024

FileTrackingServiceProvider for Laravel

 FileTrackingServiceProvider

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Log;
use Illuminate\Support\ServiceProvider;
use Laravel\Telescope\Telescope;

class FileTrackingServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap services.
     */
    public function boot(): void
    {
       // Listen to each request
        $this->app['router']->matched(function () {
            // Get all included files
            $includedFiles = get_included_files();

            // Filter out files in the vendor directory
            $phpBladeFiles = array_filter($includedFiles, function ($file) {
                return preg_match('/\.(php|blade\.php)$/', $file) &&
                    strpos($file, 'Shofy\vendor') === false;  // Exclude vendor files
            });

            // Log these files using Laravel Log
            foreach ($phpBladeFiles as $file) {
                Log::info("Non-vendor file included: $file");
            }
        });
    }
}


No comments:

Post a Comment

Golang Advanced Interview Q&A