🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Dependecy injection - jak to działa?

#232142
From: Marek S
Date: Thu, 03 Jan 2019 20:35
43 lines
2436 bytes
W dniu 2019-01-02 o 22:18, Borys Pogoreło pisze:

>> Sądzisz, że tak? Ja nie bardzo sobie wyobrażam jak wywołać funkcję i
>> przekazać jej parametry zgodnie z fantazją twórcy tejże funkcji.
>> Instanceof działa post factum. Tymczasem typy argumentów trzeba znać
>> _ZANIM_ wywoła się daną funkcję.
> 
> To chyba normalne w każdym normalnym [1] języku obsługującym typowanie?

Chyba się nie rozumiemy. To moim zdaniem nie mocno nienormalne. Może 
opiszę to częściowo kodem. Piszemy klasę framework i metodę run():

abstract class framework {
   private function run() {
	switch (wezTypArgumentuProgramisty( $this->execute) {
	case User: $this->execute(new User); break;
	case Dog: $this->execute(new Dog); break;
	}

	$this->execute("abc");
   }

   abstract protected function execute($param) {}
}

Programista pisze dwie klasy dziedziczące w/w i nadpisujące metodę execute:

class mine1 extends framework {
   protected function execute(User $user) { do something }
}


class mine2 extends framework {
   protected function execute(Dog $dog) { do something }
}

Czy takie programowanie jest normalne, gdzie programista wymyśla sobie 
argumenty do funkcji a framework krakuje klasy potomne programisty w 
celu wyłuskania typów oczekiwanych argumentów i takie je przekazuje?

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <q0lrml$ral$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
References: <pv1eid$s19$1@node2.news.atman.pl> <slrnq18hch.a42.wojciech.bancer@pl-test.org> <zh5xsvsue6hi$.1dwdbwvgnw36w$.dlg@40tude.net> <q0j6nq$b92$2@node2.news.atman.pl> <65gtnyttdedm.eb9c8v75r5ke.dlg@40tude.net>

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: Re: Dependecy injection - jak to działa?
Date: Thu, 3 Jan 2019 21:35:21 +0100
Organization: ATMAN - ATM S.A.
Lines: 43
Message-ID: <q0lrml$ral$1@node2.news.atman.pl>
References: <pv1eid$s19$1@node2.news.atman.pl> <slrnq18hch.a42.wojciech.bancer@pl-test.org> <zh5xsvsue6hi$.1dwdbwvgnw36w$.dlg@40tude.net> <q0j6nq$b92$2@node2.news.atman.pl> <65gtnyttdedm.eb9c8v75r5ke.dlg@40tude.net>
NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1546547733 27989 89.70.94.204 (3 Jan 2019 20:35:33 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 3 Jan 2019 20:35:33 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3
In-Reply-To: <65gtnyttdedm.eb9c8v75r5ke.dlg@40tude.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit