Mage :: getBaseUrl () vs Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB)

26

Czy istnieje powód, aby użyć Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)zamiast Mage::getBaseUrl()? Widziałem oba używane i oba zwracają to samo. Czy ten dłuższy jest zbędny? Wykorzystuje również 2 wywołania funkcji.

Co więcej, widzę, że Mage_Core_Model_Store::URL_TYPE_WEBpo prostu zwraca ciąg „web”. Jaki jest tego sens?

Buttle Butkus
źródło

Odpowiedzi:

40

Pierwsze spojrzenie getBaseUrl()naMage.php

 public static function getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)
    {
        return self::app()->getStore()->getBaseUrl($type, $secure);
    }

Jednym słowem możemy powiedzieć:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)wskazał Twoje Magento Site Urlod this url Magento is running it System.

I innymi słowy, możemy to powiedzieć Mage::getBaseUrl() give the url which is linking your magento internal page urls That MVC page

Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB):

Wartość ustawiona na : od Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Mage :: getBaseUrl ():

Wartość ustawiona na : od Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Główna różnica pokazująca:

Ilekroć jesteśmy włączeni Use Web Server Rewrites = noz admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) podać wartość http://youdomain/

ale Mage::getBaseUrl()podaj wartość, http://youdomain/index.php/która faktycznie daje wartość Mage_Core_Model_Store::URL_TYPE_LINK

kiedy hit http://youdomain/to jest Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) url połączenia Ale ten times you can see all pagelink site is starting with http://youdomain/index.php/ oznacza, że ​​jest zajętyMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Przykład:

Jeśli masz folder, amit at Magento root dir and there you have put a file test.jsto chcesz wywołać ten plik w magento home, możesz użyć tego kodu

<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).'amit/test.js'; ?>

i podaje wtedy adres URL

www.yourdomain/amit/test.js

Jeśli używasz tylko tego, Mage::getBaseUrl()co www.yourdomain/index.php/amit/test.jsoznacza, że ​​test.js nie jest dostępny (po wyłączeniu zapisu)

Ale masz nowy kontroler i nową akcję, której możesz użyć

Mage::getBaseUrl().'yourmodulerouter/yourcontroller/youraction'

it show  url like `http://yourdomain/index.php/yourmodulerouter/yourcontroller/youraction`

lub daj http://yourdomain/yourmodulerouter/yourcontroller/youraction(po włączeniu przepisywania)

Amit Bera
źródło
Czy więc Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)będzie działał lepiej, gdy mamy włączone przepisywanie?
Buttle Butkus
no.Mage :: getBaseUrl (): jest zawsze używany dla magento pageliks
Amit Bera
Dzięki za pomoc. Ale powiedziałeś, że Mage::getBaseUrl()daje ci link, który ma index.phpw sobie. Dlaczego miałbym chcieć tego dodatkowego index.php, jeśli go nie potrzebuję?
Buttle Butkus
Jeśli wyślę, nie wysyłam żadnego parametru w funkcji getBaseUrl (), wówczas wyśle ​​on, jeśli params jako $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, $ secure = null)
Amit Bera
proszę sprawdź ten magento Mage.php
Amit Bera