. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Traits; /** * @deprecated * @todo Remove in v10.0. * @phpstan-ignore-next-line */ trait Injectable { protected $injections = []; /** @phpstan-ignore-line */ /** * @param string $name * @param object $object * @return void */ public function inject($name, $object) { $this->injections[$name] = $object; } /** * @return string[] */ public function getDependencyList(): array { return $this->dependencyList; } /** * @return ?object */ protected function getInjection(string $name) { return $this->injections[$name] ?? $this->$name ?? null; } /** * @return void */ protected function addDependency(string $name) { $this->dependencyList[] = $name; } /** * @param string[] $list * @return void */ protected function addDependencyList(array $list) { foreach ($list as $item) { $this->addDependency($item); } } }