PHPackages                             atlcom/laravel-helper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. atlcom/laravel-helper

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

atlcom/laravel-helper
=====================

Atlcom Laravel Helper library

v1.04.66(1mo ago)0692↑15%MITPHPPHP ^8.2

Since Jun 24Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/atlcomgit/laravel-helper)[ Packagist](https://packagist.org/packages/atlcom/laravel-helper)[ Fund](https://yoomoney.ru/to/4100110213116546)[ RSS](/packages/atlcom-laravel-helper/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (5)Dependencies (12)Versions (178)Used By (0)

Laravel Helper
==============

[](#laravel-helper)

Класс помощник для Laravel добавляет функционал во фреймворк:

- Логирование консольных команд
- Логирование входящих/исходящих http запросов
- Логирование изменения моделей, в том числе массовое изменение/удаление
- Логирование query запросов через Eloquent/Database/Connection
- Логирование запуска и выполнения очередей
- Логирование зарегистрированных роутов и их использование
- Логирование рендеринга blade шаблонов
- Кеширование http входящих и исходящих запросов через PendingRequest и HttpCacheMiddleware
- Кеширование query запросов через Eloquent/Database/Connection
- Кеширование рендеринга blade шаблонов
- Обработка всех исключений с отправкой логов в телеграмм
- Внедрение Dto вместо Request в контроллеры, которое поддерживает: правила валидации, мутацию, маппинг, хуки при создании/изменении свойств
- Регистрация singleton классов DefaultService и DefaultRepository
- Профилирование методов класса на производительность и потребление памяти
- Обработка сообщений телеграм бота

---

### Подключение пакета

[](#подключение-пакета)

##### 1. Установка пакета

[](#1-установка-пакета)

```
composer require atlcom/laravel-helper
```

##### 2. Публикация настроек и миграций пакета

[](#2-публикация-настроек-и-миграций-пакета)

```
php artisan vendor:publish --tag="laravel-helper"
```

##### 3. Настройка параметров пакета в .env

[](#3-настройка-параметров-пакета-в-env)

[/config/laravel-helper.php](/config/laravel-helper.php)

[/.env.example](/.env.example)

##### 4. Оптимизация приложения

[](#4-оптимизация-приложения)

```
php artisan optimize
```

##### 5. Миграция базы данных

[](#5-миграция-базы-данных)

```
php artisan migrate
```

---

### Примеры логирования

[](#примеры-логирования)

##### ConsoleLog

[](#consolelog)

Логирование выполнения консольных команд

```
use Atlcom\LaravelHelper\Defaults\DefaultCommand;

class ExampleCommand extends DefaultCommand
{
	protected ?bool $withTelegramLog = true;
	protected mixed $telegramComment = null;
	protected ?bool $withConsoleLog = true;

	public function handle(): int
	{
		$this->outputBold($this->description);
		$this->outputEol();

		// ...

		$this->telegramLog = isLocal() || isDev() || isProd();
		$this->telegramComment = 'Комментарий';

		return self::SUCCESS;
	}
}

// или

Artisan::call(ExampleCommand::class, ['--telegram', '--log']);
```

##### HttpLog

[](#httplog)

Логирование входящих запросов в таблице helper\_http\_logs

```
use Atlcom\LaravelHelper\Middlewares\HttpLogMiddleware;
use Illuminate\Support\Facades\Route;

Route::get('/', function (Request $request) {
    return '';
})->middleware(HttpLogMiddleware::class);
```

Логирование исходящих запросов в таблице helper\_http\_logs

```
use Atlcom\LaravelHelper\Defaults\DefaultService;
use Atlcom\LaravelHelper\Enums\HttpLogHeaderEnum;
use Illuminate\Support\Facades\Http;

class HttpServiceProvider
{
	public function boot(): void
	{
		Http::macro(
            'exampleRu',
            fn () => Http::baseUrl(rtrim(config('example.url'), '/'))
                ->replaceHeaders(HttpLogService::getLogHeaders(HttpLogHeaderEnum::SmsRu))
        );
	}
}

class ExampleService extends DefaultService
{
	public function getHttp(): Http|PendingRequest
    {
        return Http::exampleRu();
    }

	public function request(): void
	{
		$response = $this->getHttp()->post("/", []);

		// ...
	}
}
```

##### MailLog

[](#maillog)

Логирование отправки писем в таблице helper\_mail\_logs

```
use Atlcom\LaravelHelper\Defaults\DefaultMailable;
use Illuminate\Support\Facades\Mail;

class ExampleMailable extends DefaultMailable
{
    // ...
}

Mail::to('test@test.ru')->send(new ExampleMailable());
```

##### ModelLog

[](#modellog)

Логирование изменений модели в таблице helper\_model\_logs (withModelLog)

```
use Atlcom\LaravelHelper\Defaults\DefaultModel;
use Atlcom\LaravelHelper\Traits\ModelLogTrait;
use Illuminate\Database\Eloquent\Model;

// class Example extends Model
class Example extends DefaultModel
{
	// use ModelLogTrait;

    protected ?bool $withModelLog = true;
    public $guarded = ['id'];
    public $timestamps = true;
    protected $casts = [];
}

class ExampleRepository
{
	public function find(): void
	{
		Example::query()->withModelLog()->first();
	}

	public function get(): void
	{
		Example::query()->withModelLog()->get();
	}

	public function create(): void
	{
		Example::query()->withModelLog()->create([]);
	}

	public function update(): void
	{
		Example::query()->withModelLog()->update([]);
	}

	public function delete(): void
	{
		Example::query()->withModelLog()->delete();
	}
}
```

##### ProfilerLog

[](#profilerlog)

Логирование профилирования методов класса

```
use Atlcom\LaravelHelper\Defaults\DefaultController;

class Example extends DefaultProfiler
{
	public function example() {}
}

new Example()->_example();

// или

class Example
{
	use ProfilerLogTrait;

	public static function example() {}
}

Example::_example();
```

##### RouteLog

[](#routelog)

Логирование зарегистрированных роутов в таблице helper\_route\_logs

```
use Illuminate\Support\Facades\Route;

Route::get('/example', [ExampleController::class, 'example']);
```

##### QueryLog

[](#querylog)

Логирование query запросов в таблице helper\_query\_logs (withQueryLog или withLog)

```
use Atlcom\Hlp;
use Atlcom\LaravelHelper\Defaults\DefaultController;
use Atlcom\LaravelHelper\Defaults\DefaultDto;
use Atlcom\LaravelHelper\Defaults\DefaultModel;
use Atlcom\LaravelHelper\Defaults\DefaultRepository;
use Atlcom\LaravelHelper\Traits\ModelLogTrait;
use Illuminate\Database\Eloquent\Model;

// class Example extends Model
class Example extends DefaultModel
{
	// use ModelTrait;
}

class ExampleRepository extends DefaultRepository
{
	public function example(ExampleDto $dto)
	{
		DB::withQueryLog()->select('select * from users');
		DB::withQueryLog()->statement('select * from users');
		DB::table('users')->withQueryLog()->first();
		DB::table('users')->withQueryLog()->insert(['name' => Hlp::fakeName()]);
		DB::table('users')->withQueryLog()->update(['name' => Hlp::fakeName()]);

		Example::withQueryLog()->first();
		Example::withQueryLog()->create(['name' => Hlp::fakeName()]);
		Example::query()->withQueryLog()->count();
		Example::query()->withQueryLog()->exists();
		Example::first()->fill(['name' => Helper::fakeName()])->withQueryLog()->save();
		Example::query()->withQueryLog()->where('id', '>=', 1)->update(['name' => Helper::fakeName()]);
		Example::query()->withQueryLog()->where('id', Example::orderByDesc('id')->first()?->id)->delete();
	}
}
```

##### QueueLog

[](#queuelog)

Логирование очередей в таблице helper\_queue\_logs (withQueueLog или withLog)

```
use Atlcom\LaravelHelper\Defaults\DefaultDto;
use Atlcom\LaravelHelper\Defaults\DefaultJob;

class ExampleDto extends DefaultDto
{

}

class ExampleJob extends DefaultJob
{
    public bool $withQueueLog = false;

    public function __invoke(): void {}
}

// или

dispatch((new ExampleJob())->withQueueLog());
```

##### ViewLog

[](#viewlog)

Логирование рендеринга blade шаблонов в таблице helper\_view\_logs (withViewLog или withLog)

```
use Atlcom\LaravelHelper\Defaults\DefaultController;

class ExampleController extends DefaultController
{
	public function example()
	{
		return $this->withViewLog()->view(view: 'example', data: ['test' => true], mergeData: []);
		return $this->withViewLog()->view(view: 'example', data: ['time' => now()], ignoreData: ['time']);
	}
}
```

---

### Примеры кеширования

[](#примеры-кеширования)

##### HttpCache

[](#httpcache)

Кеширование входящих http запросов (withCache)

```
use Atlcom\LaravelHelper\Middlewares\HttpCacheMiddleware;
use Illuminate\Support\Facades\Route;

Route::get('/', function (Request $request) {
    return '';
})->middleware(HttpCacheMiddleware::class);
```

Кеширование исходящий http запросов

```
use Illuminate\Support\Facades\Http;

Http::withCache()->get('https://timeapi.io/api/Time/current/zone?timeZone=UTC', []);
Http::withCache()->post('https://timeapi.io/api/Time/current/zone?timeZone=UTC', []);
```

##### QueryCache

[](#querycache)

Кеширование query запросов (withQueryCache или withCache)

```
use Atlcom\Hlp;
use Atlcom\LaravelHelper\Defaults\DefaultController;
use Atlcom\LaravelHelper\Defaults\DefaultDto;
use Atlcom\LaravelHelper\Defaults\DefaultRepository;
use Atlcom\LaravelHelper\Traits\ModelLogTrait;
use Illuminate\Database\Eloquent\Model;

class Example extends Model
{
	use ModelTrait;
}

class ExampleRepository extends DefaultRepository
{
	public function example(ExampleDto $dto)
	{
		DB::withQueryCache()->select('select * from users');
		DB::table('users')->withQueryCache()->first();

		Example::withQueryCache()->first();
		Example::query()->withQueryCache()->count();
		Example::query()->withQueryCache()->exists();
	}
}
```

##### ViewCache

[](#viewcache)

Кеширование рендеринга blade шаблонов (withViewCache или withCache)

```
use Atlcom\LaravelHelper\Defaults\DefaultController;

class ExampleController extends DefaultController
{
	public function example()
	{
		return $this->withViewCache()->view(view: 'example', data: ['time' => now()], ignoreData: ['time']);
	}
}
```

---

### Примеры расширения классов

[](#примеры-расширения-классов)

##### DefaultCommand

[](#defaultcommand)

Расширение класса консольных команд

```
use Atlcom\LaravelHelper\Defaults\DefaultCommand;

class ExampleCommand extends DefaultCommand
{
	public function handle(): int
}
```

##### DefaultController и DefaultDto

[](#defaultcontroller-и-defaultdto)

Расширение класса контроллера с внедрением [Dto](https://github.com/atlcomgit/dto) (замена Request)

```
use Atlcom\LaravelHelper\Defaults\DefaultController;
use Atlcom\LaravelHelper\Defaults\DefaultDto;

class ExampleDto extends DefaultDto
{
	public int $id;

	public function rules(): array
	{
		return [
			'id' => ['require', 'numeric'],
		];
	}
}

class ExampleController extends DefaultController
{
	public function example(ExampleDto $dto)
	{
		return $dto->id;
	}
}
```

##### DefaultEvent

[](#defaultevent)

Расширение класса событий

```
use Atlcom\LaravelHelper\Defaults\DefaultEvent;

class ExampleEvent extends DefaultEvent
{
    public function __construct() {}
}
```

##### DefaultException

[](#defaultexception)

Расширение класса исключений

```
use Atlcom\LaravelHelper\Defaults\DefaultException;

class ExampleException extends DefaultException
{
}
```

##### DefaultJob

[](#defaultjob)

Расширение класса задач для очередей

```
use Atlcom\LaravelHelper\Defaults\DefaultJob;

class ExampleJob extends DefaultJob
{
    public function __invoke(): void {}
}
```

##### DefaultListener

[](#defaultlistener)

Расширение класса слушателя события

```
use Atlcom\LaravelHelper\Defaults\DefaultListener;

class ExampleListener extends DefaultListener
{
}
```

##### DefaultLogger

[](#defaultlogger)

Расширение класса логирования

```
use Atlcom\LaravelHelper\Defaults\DefaultLogger;

class ExampleLogger extends DefaultLogger
{
}
```

##### DefaultMailable

[](#defaultmailable)

Расширение класса отправки писем

```
use Atlcom\LaravelHelper\Defaults\DefaultMailable;

class ExampleMailable extends DefaultMailable
{
}
```

##### DefaultModel

[](#defaultmodel)

Расширение класса модели

```
use Atlcom\LaravelHelper\Defaults\DefaultModel;

class ExampleModel extends DefaultModel
{
}
```

##### DefaultProfiler

[](#defaultprofiler)

Расширение класса для профилирования методов

```
use Atlcom\LaravelHelper\Defaults\DefaultProfiler;

class ExampleModel extends DefaultProfiler
{
}
```

##### DefaultRepository

[](#defaultrepository)

Расширение класса репозитория

```
use Atlcom\LaravelHelper\Defaults\DefaultRepository;

class ExampleRepository extends DefaultRepository
{
}
```

##### DefaultRequest

[](#defaultrequest)

Расширение класса запроса

```
use Atlcom\LaravelHelper\Defaults\DefaultRequest;

class ExampleRequest extends DefaultRequest
{
}
```

##### DefaultResource

[](#defaultresource)

Расширение класса ресурса

```
use Atlcom\LaravelHelper\Defaults\DefaultResource;

class ExampleResource extends DefaultResource
{
}
```

##### DefaultService

[](#defaultservice)

Расширение класса сервиса

```
use Atlcom\LaravelHelper\Defaults\DefaultService;

class ExampleService extends DefaultService
{
}
```

##### DefaultTest

[](#defaulttest)

Расширение класса теста

```
use Atlcom\LaravelHelper\Defaults\DefaultTest;

class ExampleTest extends DefaultTest
{
}
```

---

### Примеры телеграм бота

[](#примеры-телеграм-бота)

[Документация TelegramBot](docs/readme_telegram_bot_events.md)

---

### События хелпера

[](#события-хелпера)

```
ConsoleLogEvent::class // Событие логирования консольных команд
ExceptionEvent::class // Событие логирования исключений
HttpCacheEvent::class // Событие кеширования http запросов
HttpLogEvent::class // Событие логирования http запросов
ModelLogEvent::class // Событие логирования моделей
ProfilerLogEvent::class // Событие логирования профилирования методов класса
RouteLogEvent::class // Событие логирования роутов
QueryCacheEvent::class // Событие кеширования query запросов
QueryLogEvent::class // Событие логирования query запросов
QueueLogEvent::class // Событие логирования очередей
TelegramBotEvent::class // Событие входящих/исходящих сообщений бота телеграм
TelegramBotMessageEvent::class // Событие сохранения сообщений бота телеграм
TelegramLogEvent::class // Событие логирования отправки сообщения в телеграм
ViewCacheEvent::class // Событие кеширования рендеринга blade шаблонов
ViewLogEvent::class // Событие логирования рендеринга blade шаблонов
```

---

### Хелперы

[](#хелперы)

##### Список вспомогательных функций

[](#список-вспомогательных-функций)

```
lhConfig() // Возвращает настройки хелпера
isDebug() // Возвращает флаг окружения APP_DEBUG
isDebugData() // Возвращает флаг окружения APP_DEBUG_DATA
isDebugTrace() // Возвращает флаг окружения APP_DEBUG_TRACE
isLocal() // Проверяет на локальное окружение
isDev() // Проверяет на dev окружение
isTesting() // Проверяет на тестовое окружение
isProd() // Проверяет на боевое окружение
isCommand() // Проверяет на запуск приложения из консольной команды
isHttp() // Проверяет на запуск приложения из http запроса
isQueue() // Проверяет на запуск приложения из очереди
queue() // Ставит job в очередь и запускает её
sql() // Возвращает сырой sql запрос c заменой плейсхолдеров
json() // Возвращает json строку
telescope() // Включает/Отключает логи telescope
telegram() // Отправляет сообщение в телеграм
user() // Возвращает модель авторизованного пользователя или null
ip() // Возвращает ip адрес из запроса
uuid() // Возвращает uuid v7 или v4 (для более ранних версий Laravel)
```

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance91

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

177

Last Release

42d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5e3fe1bcb1aa65d23ffb4ea65ee05450a9d952367bcd4c7157b9b7b3da07befe?d=identicon)[atlcomgit](/maintainers/atlcomgit)

---

Top Contributors

[![atlcomgit](https://avatars.githubusercontent.com/u/35184369?v=4)](https://github.com/atlcomgit "atlcomgit (319 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/atlcom-laravel-helper/health.svg)

```
[![Health](https://phpackages.com/badges/atlcom-laravel-helper/health.svg)](https://phpackages.com/packages/atlcom-laravel-helper)
```

###  Alternatives

[illuminate/support

The Illuminate Support package.

582110.9M39.8k](/packages/illuminate-support)[craftcms/feed-me

Import content from XML, RSS, CSV or JSON feeds into entries, categories, Craft Commerce products, and more.

292943.4k27](/packages/craftcms-feed-me)[solspace/craft-freeform

The most flexible and user-friendly form building plugin!

53675.5k15](/packages/solspace-craft-freeform)[erlandmuchasaj/laravel-gzip

Gzip your responses.

40140.4k2](/packages/erlandmuchasaj-laravel-gzip)[japanese-date/japanese-date

日本の暦、祝日を取り扱うライブラリ

169.9k](/packages/japanese-date-japanese-date)[solspace/craft-calendar

The most powerful event management and calendaring plugin!

1831.6k1](/packages/solspace-craft-calendar)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
