Article View: pl.comp.lang.php
Article #232136Dependecy injection - jak to działa?
From: Marek S
Date: Fri, 14 Dec 2018 23:32
Date: Fri, 14 Dec 2018 23:32
34 lines
1915 bytes
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-mailShow 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