ООП используется в FuelPHP - PullRequest
       18

ООП используется в FuelPHP

0 голосов
/ 13 августа 2011

Я пытаюсь понять, как был написан FuelPHP .. И так как я мало знаю ООП, я озадачен, когда этот класс: https://github.com/fuel/core/blob/master/classes/date.php

Вот методы, которые я не понимаю:

public static function _init()
{
    static::$server_gmt_offset  = \Config::get('server_gmt_offset', 0);

    // some code here
}

public static function factory($timestamp = null, $timezone = null)
{
    $timestamp  = is_null($timestamp) ? time() + static::$server_gmt_offset : $timestamp;
    $timezone   = is_null($timezone) ? \Fuel::$timezone : $timezone;

    return new static($timestamp, $timezone);
}

protected function __construct($timestamp, $timezone)
{
    $this->timestamp = $timestamp;
    $this->set_timezone($timezone);
}

Что называется первым? Что делает __cctctruct? Что такое фабрика, когда она используется, что она возвращает - она ​​снова вызывает себя? _Init вызывается после инициализации класса? Я действительно озадачен, может кто-нибудь помочь мне понять? Спасибо

Ответы [ 2 ]

1 голос
/ 13 августа 2011

Когда создается объект, первым вызываемым методом является метод __construct (). Это называется конструктором, потому что он помогает создавать члены данных класса и выполнять любые другие операции инициализации, прежде чем вы сможете вызывать другие методы внутри класса.

Фабрика - это шаблон разработки, используемый для создания классов на основе условий, которые не будут известны до времени выполнения. - http://en.wikipedia.org/wiki/Factory_method_pattern

_init (), похоже, еще один метод, который эта библиотека использует для настройки своих классов.

Чтобы углубить свои знания в этих областях, я предлагаю вам ознакомиться с ООП, а затем разработать шаблоны.

1 голос
/ 13 августа 2011

Этот класс выглядит так, как будто использует шаблон проектирования фабрики. Посмотрите здесь: PHP - шаблон проектирования фабрики

Шаблон фабрики позволяет создавать экземпляр класса во время выполнения. Метод _construct запускается, как только создается экземпляр класса.

...