Я немного запутался в обращении к 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' )
- в чем разница?
Спасибо за любую помощь.