ФорумПрограммированиеPHP для идиотовPHP и ООП → Оправданность использования статических методов

Оправданность использования статических методов

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 12:13, спустя 2 минуты 44 секунды

    public static function instance()
    {
    $class = __CLASS__;
    if (self::$_instance == null)
    self::$_instance = new $class();
    return self::$_instance;
    }


    public static function instance()
    {
    if (self::$_instance == null)
    self::$_instance = new self();
    return self::$_instance;
    }
    ;)
    Сапожник без сапог
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 26 января 2009 г. 12:17, спустя 3 минуты 35 секунд

    self::$_instance = new self();

    Что-то в голову не приходило. Буду знать =)

    Ппц. Это нормально, что в моем приложении куча синглтонов?!
    (Вывод сообщений, язык, шаблонизатор, обработчик событий, лоадер)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 12:24, спустя 7 минут 32 секунды


    self::$_instance = new self();

    Что-то в голову не приходило. Буду знать =)

    Ппц. Это нормально, что в моем приложении куча синглтонов?!
    (Вывод сообщений, язык, шаблонизатор, обработчик событий, лоадер)
    нормально. ненормально когда там их совсем нет)
    Сапожник без сапог
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 13:47, спустя 34 минуты 25 секунд

    Josh, кто тебя учил использовать имя класса в нем самом много раз?
    class Base
    {
     private static $_instance = null;
     public static function get_instance()
     {
       if (Base::$_instance == null)
       {
           Base::$_instance = new Base();
       }
       return Base::$_instance;
     }
    }

    aivee, зачем создаешь переменные для одноразового использования? (в том же методе __CLASS__)

    я вобще так просто доебатся

        public static function instance(){
               if (!self::$_instance)
               self::$_instance = new self;
           return self::$_instance;
       }
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 26 января 2009 г. 13:49, спустя 2 минуты 24 секунды

    phpdude, а ты первый доебался(((
    Timur, пасибо за пиар
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 27 января 2009 г. 3:46, спустя 13 часов 56 минут 21 секунду

    CTAPbIu_MABP, а в чем проблема-то? и чем имя класса отличаеться от self?
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 27 января 2009 г. 4:01, спустя 15 минут 52 секунды

    Josh, очень просто, допустим ты изменил имя класса, и тебе надо искать все место где оно используется и заменять там, тайм менеджмент, бля
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 27 января 2009 г. 4:09, спустя 7 минут 43 секунды


    Josh, очень просто, допустим ты изменил имя класса, и тебе надо искать все место где оно используется и заменять там, тайм менеджмент, бля
    Во первых - Base тебе вообще ни о чём не говорит? Это главный класс, да и нихерасе ты вздумал имена классов инстансов менять, и весь код перелопачивать, бля?
  • md5

    Сообщения: 11953 Репутация: N Группа: в ухо

    Spritz 27 января 2009 г. 4:12, спустя 2 минуты 35 секунд

    бля О_о
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 27 января 2009 г. 7:28, спустя 3 часа 16 минут 16 секунд

    Josh,"бля" относиться к словосочетанию "тайм менеджмент", которое я недолюблюваю. не воспринимай все на свой счет

    берем класс описанный тут PHP pattern Registry

    $registry = Registry::__instance();


    теперь можно через $registry с ним работать и не заморачиваться на его реальное название
    и пусть у тя будет их хоть стопицот

  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 27 января 2009 г. 7:50, спустя 22 минуты 14 секунд

    Прям как в ZF-е :)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!