The Laravel service container is a powerful tool for managing class dependencies and performing dependency injection. Dependency injection is a fancy phrase that essentially means this: class dependencies are "injected" into the class via the constructor or, in some cases, "setter" methods.<\/p>\n
Let's look at a simple example:<\/p>\n
1<\/span><?php<\/span><\/div> 2<\/span> <\/div> 3<\/span>namespace<\/span> App\\Http\\Controllers;<\/span><\/div> 4<\/span> <\/div> 5<\/span>use<\/span> App\\Services\\<\/span>AppleMusic<\/span>;<\/span><\/div> 6<\/span>use<\/span> Illuminate\\View\\<\/span>View<\/span>;<\/span><\/div> 7<\/span> <\/div> 8<\/span>class<\/span> <\/span>PodcastController<\/span> <\/span>extends<\/span> <\/span>Controller<\/span><\/div> 9<\/span>{<\/span><\/div>10<\/span> <\/span>\/**<\/span><\/div>11<\/span> * Create a new controller instance.<\/span><\/div>12<\/span> <\/span>*\/<\/span><\/div>13<\/span> <\/span>public<\/span> <\/span>function<\/span> <\/span>__construct<\/span>(<\/span><\/div>14<\/span> <\/span>protected<\/span> <\/span>AppleMusic<\/span> <\/span>$apple<\/span>,<\/span><\/div>15<\/span> <\/span>)<\/span> {}<\/span><\/div>16<\/span> <\/div>17<\/span> <\/span>\/**<\/span><\/div>18<\/span> * Show information about the given podcast.<\/span><\/div>19<\/span> <\/span>*\/<\/span><\/div>20<\/span> <\/span>public<\/span> <\/span>function<\/span> <\/span>show<\/span>(<\/span>string<\/span> <\/span>$id<\/span>)<\/span>:<\/span> <\/span>View<\/span><\/div>21<\/span> {<\/span><\/div>22<\/span> <\/span>return<\/span> <\/span>view<\/span>(<\/span>'<\/span>podcasts.show<\/span>'<\/span>,<\/span> <\/span>[<\/span><\/div>23<\/span> <\/span>'<\/span>podcast<\/span>'<\/span> <\/span>=><\/span> <\/span>$<\/span>this<\/span>->apple-><\/span>findPodcast<\/span>($<\/span>id<\/span>)<\/span><\/div>24<\/span> <\/span>]);<\/span><\/div>25<\/span> }<\/span><\/div>26<\/span>}<\/span><\/div>