Skip to content

Instantly share code, notes, and snippets.

View batFormat's full-sized avatar
🏠
Working from home

Maxim Kot batFormat

🏠
Working from home
View GitHub Profile
@batFormat
batFormat / IoC.md
Created January 15, 2017 08:06 — forked from greabock/IoC.md
IoC

Инверсия управления (англ. Inversion of Control, IoC) — важный принцип объектно-ориентированного программирования, используемый для уменьшения зацепления в компьютерных программах. Также архитектурное решение интеграции, упрощающее расширение возможностей системы, при котором контроль над потоком управления программы остаётся за каркасом - ru.wikipedia.org


Сегодня хотелось бы поговорить о реализации инверсии управления в Laravel. Это один из самых важных аспектов организации слабой связанности компонентов в любимом нами фреймворке, и его понимание играет ключевую роль при создании качественных пакетов и приложений.

Когда мы говорим об IoC в Laravel, то следует знать, что он стоит на трех китах:

  1. Внедрение зависимостей (Dependency Injection)
@batFormat
batFormat / rules.json
Created October 21, 2017 16:15
Vk rules streaming api
[
{
"rule": {
"value": "vk",
"tag": "3"
}
}
]
@batFormat
batFormat / ApolloUpload.php
Created May 12, 2018 13:40 — forked from stenin-nikita/ApolloUpload.php
ApolloUpload Middleware for Laravel
<?php
declare(strict_types=1);
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
/**
* Class ApolloUpload
@batFormat
batFormat / Docker Compose + NATS example
Created September 28, 2018 12:58 — forked from wallyqs/Docker Compose + NATS example
NATS Docker blog post/HTTP Server
FROM golang:1.6.2
COPY . /go
RUN go get github.com/nats-io/nats
RUN go build api-server.go
EXPOSE 8080
ENTRYPOINT ["/go/api-server"]
<?php
namespace App\Console\Commands\Google;
use Google_Client;
use Google_Http_Batch;
use Google_Service_Docs_BatchUpdateDocumentRequest;
use Google_Service_Docs_ReplaceAllTextRequest;
use Google_Service_Docs_SubstringMatchCriteria;
use Google_Service_Docs;
<template>
<div class="container">
<div class="flex flex-wrap -mx-2">
<component
:is="component.name"
v-for="(component, i) in components"
:key="i"
:class="component.class"
v-bind="{ ...component.props, offer }"
/>
@batFormat
batFormat / _slug_now_work.vue
Last active May 8, 2019 12:03
Dynamic Component Injection
<template>
<div class="container">
<h1 class="text-2xl">{{ page.meta_h1 }}</h1>
<component
:is="component.name"
v-for="(component, i) in components"
:key="i"
v-bind="component.props"
/>
</div>
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
[
{
"iso": "AF",
"code": [
"93"
]
},
{
"iso": "AX",
"code": [
@batFormat
batFormat / calling_codes.json
Last active June 26, 2019 10:40
calling codes
[
{
"iso": "AF",
"code": [
"93"
]
},
{
"iso": "AX",
"code": [