atlcom / laravel-helper
Atlcom Laravel Helper library
Fund package maintenance!
Yoomoney
Requires
- php: ^8.2
- ext-mbstring: *
- atlcom/dto: ^2.74
- atlcom/helper: ^1.18
- nesbot/carbon: >=2.0
Requires (Dev)
- fakerphp/faker: ^1.23
- orchestra/testbench: ^9.14
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-06-14 18:29:22 UTC
README
Класс помощник для Laravel
Версия 1.00
Подключение пакета
1. Установка пакета
composer require atlcom/laravel-helper
2. Публикация настроек
php artisan vendor:publish --tag="laravel-helper"
3. Настройка параметров .env
4. Оптимизация приложения
php artisan optimize
5. Миграция базы данных
php artisan migrate
Примеры логирования
ConsoleLog
Логирование выполнения консольных команд
use Atlcom\LaravelHelper\Defaults\DefaultCommand; class ExampleCommand extends DefaultCommand { protected bool $telegramLog = true; protected mixed $telegramComment = null; protected bool $withConsoleLog = true; public function handle(): int { $this->outputClear(); $this->outputBold($this->description); $this->outputEol(); // ... $this->telegramLog = isLocal() || isProd(); $this->telegramComment = 'Комментарий'; return self::SUCCESS; } } // или Artisan::call(ExampleCommand::class, ['--telegram', '--log']);
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\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 { public function getHttp(): Http|PendingRequest { return Http::exampleRu(); } public function request(): void { $response = $this->getHttp()->post("/", []); // ... } }
ModelLog
Логирование изменений модели в таблице helper_model_logs
use Atlcom\LaravelHelper\Traits\ModelLogTrait; use Illuminate\Database\Eloquent\Model; class Example extends Model { 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(); } }
QueryLog
Логирование query запросов в таблице helper_query_logs
use Atlcom\LaravelHelper\Defaults\DefaultController; use Atlcom\LaravelHelper\Defaults\DefaultDto; use Atlcom\Hlp; class ExampleRepository { 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()]); User::withQueryLog()->first(); User::withQueryLog()->create(['name' => Hlp::fakeName()]); User::query()->withQueryLog()->count(); User::query()->withQueryLog()->exists(); User::first()->fill(['name' => Helper::fakeName()])->withQueryLog()->save(); User::query()->withQueryLog()->where('id', '>=', 1)->update(['name' => Helper::fakeName()]); User::query()->withQueryLog()->where('id', User::orderByDesc('id')->first()?->id)->delete(); } }
QueueLog
Логирование очередей в таблице helper_queue_logs
use Atlcom\LaravelHelper\Defaults\DefaultDto; use Atlcom\LaravelHelper\Defaults\DefaultJob; class ExampleDto extends DefaultDto { } class ExampleJob extends DefaultJob { public bool $withJobLog = false; public function __invoke(): void {} } // или dispatch((new ExampleJob())->withJobLog());
QueueLog
Логирование зарегистрированных роутов в таблице helper_route_logs
use Illuminate\Support\Facades\Route; Route::get('/example', [ExampleController::class, 'example']);
ViewLog
Логирование рендеринга blade шаблонов в таблице helper_view_logs
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']); } }
Примеры кеширования
QueryCache
Кеширование query запросов
use Atlcom\LaravelHelper\Defaults\DefaultController; use Atlcom\LaravelHelper\Defaults\DefaultDto; use Atlcom\Hlp; class ExampleRepository { public function example(ExampleDto $dto) { DB::withQueryCache()->select('select * from users'); DB::table('users')->withQueryCache()->first(); User::withQueryCache()->first(); User::query()->withQueryCache()->count(); User::query()->withQueryCache()->exists(); } }
ViewCache
Кеширование рендеринга blade шаблонов
use Atlcom\LaravelHelper\Defaults\DefaultController; class ExampleController extends DefaultController { public function example() { return $this->withViewCache()->view(view: 'example', data: ['time' => now()], ignoreData: ['time']); } }
Примеры расширения классов
DefaultController и DefaultDto
Расширение класса контроллера с внедрением 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; } }
DefaultCommand
Расширение класса консольных команд
use Atlcom\LaravelHelper\Defaults\DefaultCommand; class ExampleCommand extends DefaultCommand { public function handle(): int }
DefaultJob
Расширение класса задач для очередей
use Atlcom\LaravelHelper\Defaults\DefaultJob; class ExampleJob extends DefaultJob { public function __invoke(): void {} }
DefaultModel
Расширение класса модели
use Atlcom\LaravelHelper\Defaults\DefaultModel; class Example extends DefaultModel { }
DefaultRequest
Расширение класса запроса
use Atlcom\LaravelHelper\Defaults\DefaultRequest; class ExampleRequest extends DefaultRequest { }
DefaultResource
Расширение класса ресурса
use Atlcom\LaravelHelper\Defaults\DefaultResource; class ExampleResource extends DefaultResource { }
DefaultException
Расширение класса исключений
use Atlcom\LaravelHelper\Defaults\DefaultException; class ExampleException extends DefaultException { }