| Package Data | |
|---|---|
| Maintainer Username: | larakit | 
| Package Create Date: | 2016-04-22 | 
| Package Last Update: | 2017-08-11 | 
| Language: | PHP | 
| License: | MIT | 
| Last Refreshed: | 2025-10-27 03:06:53 | 
| Package Statistics | |
|---|---|
| Total Downloads: | 1,654 | 
| Monthly Downloads: | 0 | 
| Daily Downloads: | 0 | 
| Total Stars: | 0 | 
| Total Watchers: | 1 | 
| Total Forks: | 0 | 
| Total Open Issues: | 0 | 
После установки очередного пакета, который требовал внесения правок конфига
./config/app.php
в секциях сервис-провайдеры и алиасы я сказал "Доколе!!! Надоело!!!".
Тем более, что в разработке было очень много своих пакетов, которые требовали регистрации:
Так появился на свет модуль larakit/lk-boot.
Принцип отложенной регистрации всего этого хозяйства заключается в использовании секции autoload в composer.
Но, напрямую нельзя записать инструкции, так как в момент подключения
{
    "autoload": {
        "files": [
	    "src/init.php"
        ]
    }
}
фреймворк еще не инициализирован. Поэтому задача состояла из двух пунктов:
положить куда то данные о вещах, требующих регистрации, причем чтобы это "что-то" не требовало инициализированного фреймворка
в нужное время спросить у этого "чего-то" - есть что для регистрации? и инициализировать
Создавая модуль указываем в composer.json автоподключаемый файл init.php
{
	"name": ".../...",
	"description": "...",
	"license": "MIT",
	"require": {
	...
	},
	"autoload": {
		"files": [
			"src/init.php"
		]
	}
}
В этом файле "src/init.php" регистрируем то, что нужно
<?php
/*################################################################################
  регистрация сервис-провайдера
################################################################################*/
Larakit\Boot::register_provider('Larakit\Base\LarakitServiceProvider');
/*################################################################################
  регистрация алиаса
################################################################################*/
Larakit\Boot::register_alias('View', 'Illuminate\Support\Facades\View');
/*################################################################################
  регистрация middlewares
################################################################################*/
Boot::register_middleware(\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class);
/*################################################################################
  регистрация route middlewares
################################################################################*/
Boot::register_middleware_route('auth', 
	\App\Http\Middleware\Authenticate::class);
Boot::register_middleware_route('auth.basic', 
	\Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class);
Boot::register_middleware_route('guest', 
	\App\Http\Middleware\RedirectIfAuthenticated::class);
Boot::register_middleware_route('throttle', 
	\Illuminate\Routing\Middleware\ThrottleRequests::class);
/*################################################################################
  регистрация group middlewares
################################################################################*/
Boot::register_middleware_group('api', 'throttle:60,1');
Boot::register_middleware_group('web', [
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
]);
Производим изменения в файле
./config/app.php
(требуется произвести всего один раз)
<?php
return [
    'providers'       => array_merge([
        ...
    ], \Larakit\Boot::providers()),
    'aliases'         => array_merge([
        ...
    ], \Larakit\Boot::aliases()),
];
Производим изменения в файле
./app/Http/Kernel.php
(требуется произвести всего один раз)
<?php
namespace App\Http;
use Illuminate\Contracts\Foundation\Application;
use \Larakit\TraitKernel as TraitKernel;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
use Illuminate\Routing\Router;
class Kernel extends HttpKernel {
    use TraitKernel;
    function __construct(Application $app, Router $router){
        $this->__traitConstruct();
        parent::__construct($app, $router);
    }
}