🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #232136

Dependecy injection - jak to działa?

#232136
From: Marek S
Date: Fri, 14 Dec 2018 23:32
34 lines
1915 bytes
Witam,

Przy klasycznym podejściu do programowania tworzymy klasę i jakąś metodę 
z określonymi parametrami. Przy jej wywołaniu przekazujemy takie 
parametry jak były zdefiniowane. Tyma czasem w Laravelu jest odwrotnie. 
Konstruktor kontrolera może posiadać dowolne parametry i zostaną one 
właściwie przekazane.

Moje pytanie brzmi: jak w PHP napisać funkcję/metodę, która będzie 
otrzymywała instancje obiektów takich jak podamy w parametrach wywołania?

Zobrazuję to. Mamy funkcję:

function x(klasa a) {}

Zwykle wywołujemy tą funkcję jako x(new classA());

A teraz odwracamy sytuację i w funkcji deklarujemy co chcemy otrzymać, a 
wywołanie funkcji ma być z tym zgodne:

function x(niespodzianka a, niespodzianka2 b) {}

Jak zrobić to aby funkcja x przyjęła dane zgodnie z listą parametrów?

Czyli chciałbym wykonać coś takiego (opisowo):

if (parametrFukcjiJestTypuNiespodzianka) p1=new niespodzianka();
if (parametr2FukcjiJestTypuNiespodzianka2) p2=new niespodzianka2();

x(p1,p2);

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <pv1eid$s19$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.com>
Newsgroups: pl.comp.lang.php
Subject: Dependecy injection - jak to działa?
Date: Sat, 15 Dec 2018 00:32:23 +0100
Organization: ATMAN - ATM S.A.
Lines: 34
Message-ID: <pv1eid$s19$1@node2.news.atman.pl>
NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1544830349 28713 89.70.94.204 (14 Dec 2018 23:32:29 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Fri, 14 Dec 2018 23:32:29 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3
X-Mozilla-News-Host: news://news.atman.pl:119
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit