За последние 24 часа нас посетили 21922 программиста и 995 роботов. Сейчас ищут 673 программиста ...

Ошибка при внедрении зависимости через конструктор

Тема в разделе "PHP для новичков", создана пользователем Keha39, 23 янв 2020.

Метки:
  1. Keha39

    Keha39 Новичок

    С нами с:
    14 ноя 2019
    Сообщения:
    3
    Симпатии:
    0
    Почти все примеры кода используют такое написание внедрения зависимости.
    PHP:
    1.  public function __construct(Сonfig $сonfig)
    Но это вызывает ошибку в которой говорится что первый аргумент должен быть экземпляром $сonfig.
    Если писать так, то ошибки нет и всё работает.
    PHP:
    1.  public function __construct($сonfig)
    Полный пример кода.
    PHP:
    1. class Сonfig
    2. {
    3.     private $name;
    4.    
    5.     public function __construct()
    6.     {
    7.         $this->name = 'Ту-ту';      
    8.     }
    9. }
    PHP:
    1. class Init
    2. {
    3.     private $сonfig;
    4.  
    5.     //public function __construct(Config $сonfig) //Так выдаёт ошибку.
    6.  
    7.     public function __construct($сonfig)
    8.     {
    9.         $this->сonfig = $сonfig;      
    10.     }
    11. }
    PHP:
    1. class App
    2. {  
    3.     public function __construct()
    4.     {
    5.         $сonfig = new Config();
    6.         $init = new Init($сonfig);  
    7.     }
    8. }
    В чём тут засада, кто знает?
    Версия php 7.3
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    у тебя класс Config с русской С

    [d0a1]6f6e666967
    [43]6f6e666967
     
    #2 MouseZver, 23 янв 2020
    Последнее редактирование: 23 янв 2020
    Keha39 и Valick нравится это.
  3. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Может класс Config не подключили перед внедрением?
     
    Keha39 нравится это.
  4. Keha39

    Keha39 Новичок

    С нами с:
    14 ноя 2019
    Сообщения:
    3
    Симпатии:
    0
    Блин точно, Спасибо.
    --- Добавлено ---
    С буквами в этот раз порядок.
    Выдаёт ошибку в которой говорится что первый аргумент должен быть экземпляром $сonfig.