Skip to content

Instantly share code, notes, and snippets.

@mishazapl
mishazapl / gist:fdf8cbc6634eec152f40c3283c0c16bc
Created July 10, 2023 04:07
Написание общей фильтрации для всего API.
<?php
namespace App\Filters;
use App\Enums\Sort;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
@mishazapl
mishazapl / gist:47674169edadceb7ffcf9721c68a19ea
Last active July 12, 2023 09:43
Создание и использование actions, dto
<?php
namespace App\Actions;
use App\Dto\IDto;
abstract class IActionAbstract implements IAction
{
protected IDto $dto;
}
@mishazapl
mishazapl / php
Created July 10, 2023 03:50
Архитектура FormRequest, общая абстракция.
<?php
namespace App\Http\Requests\Abstracts;
use App\Http\Requests\CommonValidationRules\CommonValidationRules;
use Illuminate\Foundation\Http\FormRequest;
abstract class IRequest extends FormRequest
{
protected const IS_NULLABLE = false;
@mishazapl
mishazapl / ContextStatusTest.php
Created January 20, 2020 19:26
Unit tests for order states
<?php
namespace Tests\Feature;
use App\Models\Order\Order;
use App\Models\Profile\Profile;
use App\Services\Profile\ProfileDirector;
use App\Services\StatusOrder\ActiveStatus;
use App\Services\StatusOrder\ContextStatus;
use App\Services\StatusOrder\DoneStatus;
@mishazapl
mishazapl / StatusOrder_ActiveStatus.php
Created January 19, 2020 18:05
State Pattern (Ideal) 100% real project.
<?php
/**
* Created by PhpStorm.
* User: mihail
* Date: 1/18/20
* Time: 11:41 AM
*/
namespace App\Services\StatusOrder;
@mishazapl
mishazapl / StatusOrder_ActiveStatus.php
Created January 18, 2020 09:59
State pattern arhitecture
<?php
/**
* Created by PhpStorm.
* User: mihail
* Date: 1/18/20
* Time: 11:41 AM
*/
namespace App\Services\StatusOrder;
<?php
namespace Tests\Feature;
use App\Models\Profile\Profile;
use App\Services\Profile\EmptyProfile;
use App\Services\Profile\ProfileDirector;
use App\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Arr;
@mishazapl
mishazapl / Rating_Rating.php
Created January 5, 2020 15:55
Template Method
<?php
/**
* Created by PhpStorm.
* User: mihail
* Date: 1/5/20
* Time: 6:35 PM
*/
namespace App\Services\Rating;
@mishazapl
mishazapl / Profile_EmptyProfile.php
Created January 3, 2020 15:45
Pattern builder for profile and history rating, wallet
<?php
/**
* Created by PhpStorm.
* User: mihail
* Date: 1/3/20
* Time: 4:59 PM
*/
namespace App\Services\Profile;
<?php
namespace App\Models;
use App\Services\Channels\Types\Calendar;
use App\Services\Channels\Types\PerDay;
use App\Services\Channels\Types\Week;
use App\Services\Search;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;