Замешательство Magento getSingleton

Я немного запутался в обращении к Mage :: getSingleton , и я надеюсь, что кто-то может помочь мне немного лучше понять.

Я видел фрагмент основного кода, который делает это:

Mage::getSingleton('customer/session')->isLoggedIn()

Я не знаю PHP, но думаю, что могу сделать безопасное предположение из getSingleton имя метода, что будет только один экземпляр указанного класса (класс указывается как имя сгруппированного класса и разрешается в app / code / core / Mage / Customer / Model / Session.php - содержащий класс Mage_Customer_Model_Session .

Вопрос 1 -

Как метод getSingleton узнал, что он должен искать класс в папке Model?

Вопрос 2 -

Итак, есть один экземпляр класса для в целом ... Я хочу сказать JVM, поскольку я имею опыт работы с Java, но я скажу PHP-движок в надежде, что это не совсем правильная терминология; Mage_Customer_Model_Session не передается в идентификаторе клиента или другом таком идентификаторе, но мы вызываем метод isLoggedIn () ! Учитывая, что нет экземпляра Mage_Customer_Model_Session для каждого клиента, как мы можем спросить синглтона, вошел ли клиент в систему, если мы не сообщаем ему, о каком клиенте идет речь?

Вопрос 3 -

Я видел вызовы Mage :: getSingleton ('core / session') и Mage :: getSingleton ('customer / session' ) - в чем разница?

Спасибо за любую помощь.

42
задан Elavarasan 16 November 2013 в 12:44
поделиться