Skip to content

Instantly share code, notes, and snippets.


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


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

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

  1. Внедрение зависимостей (Dependency Injection)
@greabock
greabock / Seo.php
Last active December 1, 2018 21:49
PolymorphSEO
<?php
use Illuminate\Database\Eloquent\Model;
class Seo extends Model {
protected $table = 'seo';
public function material()
{
@thepsion5
thepsion5 / BaseController.php
Last active February 29, 2020 15:27
Example of using A Laravel Controller to automatically handle validation exceptions and auth failures
<?php
class BaseController extends Controller
{
public function callAction($method, $params)
{
$ajax = Request::isAjax();
try {
return parent::callAction($method, $params);
@Ellrion
Ellrion / php-restrictions.nginxconf
Last active June 5, 2024 12:36
Nginx + Php-fpm config for Laravel app
# /etc/nginx/global/php-restrictions.conf
# Don't throw any errors for missing favicons and don't display them in the logs
location = /favicon.ico {
log_not_found off;
access_log off;
}
# Don't log missing robots or show them in the nginx logs
location = /robots.txt {
allow all;
@Ellrion
Ellrion / jquery.simpleplugin.js
Last active February 29, 2020 15:42
Jquery plugin template
/**
* JQuery plugin SimplePlugin v 1.0 [26.05.14 10:59]
* TODO: DESCRIPTION
* Created by ...
* Contacts: ...
*/
// don't declare anything out here in the global namespace
(function($) { // create private scope (inside you can use $ instead of jQuery)