Skip to content

Instantly share code, notes, and snippets.


Housseyn Guettaf ghousseyn

View GitHub Profile
ghousseyn /
Created Oct 17, 2017
Laravel's Dependency Injection Container in Depth

Laravel's Dependency Injection Container in Depth

Laravel has a powerful Inversion of Control (IoC) / Dependency Injection (DI) Container. Unfortunately the official documentation doesn't cover all of the available functionality, so I decided to experiment with it and document it for myself. The following is based on Laravel 5.4.26 - other versions may vary.

Introduction to Dependency Injection

I won't attempt to explain the principles behind DI / IoC here - if you're not familiar with them you might want to read What is Dependency Injection? by Fabien Potencier (creator of the Symfony framework).

Accessing the Container

import pymysql
conn = pymysql.connect(host='localhost', port=3356, user='root', passwd='1234', db='dev')
cur = conn.cursor()
#cur.execute("CREATE TABLE coda (id int(11) not null AUTO_INCREMENT, name varchar(20) null, age int(2) null, PRIMARY KEY(id))")
cur.execute("INSERT INTO coda (name, age) VALUES ('hafid', 33)")
cur.execute("SELECT * FROM coda")