За последние 24 часа нас посетили 74159 программистов и 10165 роботов. Сейчас ищут 2362 программиста ...

чтение переменных из другого файла в классе

Тема в разделе "PHP для новичков", создана пользователем vital8111, 11 авг 2016.

  1. vital8111

    vital8111 Новичок

    С нами с:
    22 мар 2016
    Сообщения:
    52
    Симпатии:
    1
    Так как лучше в итоге сделать то?
    Технически можно и файл в конструкторе инклудить как я вначале делал.
    Но как правильно?
     
  2. vital8111

    vital8111 Новичок

    С нами с:
    22 мар 2016
    Сообщения:
    52
    Симпатии:
    1
    ОК
    --- Добавлено ---
    Всем спасибо. Буду пробовать
     
  3. vital8111

    vital8111 Новичок

    С нами с:
    22 мар 2016
    Сообщения:
    52
    Симпатии:
    1
    В итоге сделал с массивом только не статически как писал @Ganzal
    Сделал объект синглтон.
    Все работает
     
  4. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.599
    Симпатии:
    206
    @vital8111, тоже неплохой вариант. За тем исключением, что статику не надо объявлять
     
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.178
    Симпатии:
    161
    Адрес:
    GABRIEL
    @vital8111 без разницы как ты это будешь делать на самом деле, главное страйся не гавнокодить. Я тебе скинул линк на php правильный путь. Почитай его. Просто поверь его писали не идиоты. Тут ни кто не скажет, что его писали идиоты, как бы они меня не поносили.
     
    #55 askanim, 12 авг 2016
    Последнее редактирование: 12 авг 2016
  6. vital8111

    vital8111 Новичок

    С нами с:
    22 мар 2016
    Сообщения:
    52
    Симпатии:
    1
    спасибо
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Это где такое написано?
    PHP:
    1. namespace a;
    2.  
    3. $globvar = 5;
    4. class a {
    5.     static public function b() {
    6.        global $globvar;
    7.         echo $globvar;
    8.     }
    9. }
    10.  
    11. a::b();
    Вполне рабочий код. Не путая PSR-ы с синтаксисом PHP. PSR-ы - просто рекомендация по оформлению кода, не более. Да, рекомендация от умных людей. Тем не менее, следовать ей или нет, решает программист. Следование или не следование PSR-ам не делает код автоматически хорошим или плохим.
    Если конфиг как у тебя, в глобальных переменных, то да, чтоб гарантированно попали в глобальную область видимости. Да и с define тоже не помешает.
    Конфиг можно сделать классом со статическими свойствами или константами:
    PHP:
    1. namespace app\config;
    2. class Config {
    3.     static $db_name = 'ss', $db_pass = "dd";
    4.     const DB_HOST = "localhost", DB_USER = "aaa";
    5. }
    6. /* В другом файле */
    7. use app\config\Config;
    8. $db = new mysqli(Config::DB_HOST, Config::DB_USER, Config::$db_pass, Config::$db_name;
    Естественно, адская смесь из полей и констант в целях демонстрации. Лучше выбрать что-то одно.
     
  8. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.178
    Симпатии:
    161
    Адрес:
    GABRIEL
    @mkramer должно и обязано разные вещи, а я чувака пытался научить не гавнокодить.
    --- Добавлено ---
    @mkramer писать нужно код так, как будто после тебя его обслуживать будет, программист-психопат с маниакальными приступами и он знает где ты живёшь.
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Разные. Но если ты пишешь слово синтаксис, то это подразумевает "обязано". По поводу психопата - плохой код с соблюдением PSR-ов приведёт в большее бешенство, чем хороший без них. Всё от задачи зависит. Вот я недавно написал плагин для WP, который предполагается массово использовать. У меня там с десяток классов. И никаких PSR-ов, автолоадеров, всё родным require_once, ибо нафиг не нужны там автолоадеры. И главный файл плагина, по традиции WordPress, и объявляет класс, и создаёт побочные эффекты. Остальные, правда, нет - только объявляют классы.
     
  10. vital8111

    vital8111 Новичок

    С нами с:
    22 мар 2016
    Сообщения:
    52
    Симпатии:
    1
    @mkramer спасибо. примерно так и сделал
    только в классе хранится массив значений
    и класс не со статическими свойствами а объект синглтон
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Можно, хотя для конфига, ИМХО, лишне - у него нет поведения.
     
  12. vital8111

    vital8111 Новичок

    С нами с:
    22 мар 2016
    Сообщения:
    52
    Симпатии:
    1
    @mkramer спасибо учту
    просто до кучи еще с паттернами разбираться пытаюсь