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

26

¿Hay alguna razón para usar en Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)lugar de Mage::getBaseUrl()? Los he visto en uso, y ambos devuelven lo mismo. ¿El más largo es redundante? También utiliza 2 llamadas a funciones.

Además, veo que Mage_Core_Model_Store::URL_TYPE_WEBsimplemente devuelve la cadena 'web'. ¿De qué sirve?

Buttle Butkus
fuente

Respuestas:

40

Primer vistazo getBaseUrl()aMage.php

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

En una palabra simple podemos decir:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)indicó su Magento Site Urlde this url Magento is running it System.

Y otra palabra, podemos decir que 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):

Valor establecido en : desde Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Mage :: getBaseUrl ():

Valor establecido en : desde Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Principal diferencia que muestra:

Siempre que estemos habilitados Use Web Server Rewrites = nodesde admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) dar el valor de http://youdomain/

pero Mage::getBaseUrl()da valor http://youdomain/index.php/que realmente da el valor de Mage_Core_Model_Store::URL_TYPE_LINK

cuando hit http://youdomain/eso es llamar Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) url Pero ese times you can see all pageenlace de tu site is starting with http://youdomain/index.php/ eso significa que tomóMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Ejemplo:

Si ha creado una carpeta, amit at Magento root dir and there you have put a file test.jsentonces desea llamar a este archivo en casa de magento, entonces puede usar este código

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

y da entonces url

www.yourdomain/amit/test.js

Si usa solo lo Mage::getBaseUrl()que le da www.yourdomain/index.php/amit/test.jsesa media test.js no se puede acceder (cuando rewite deshabilita)

Pero ha creado un nuevo controlador y una nueva acción, entonces puede usar

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

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

o dar http://yourdomain/yourmodulerouter/yourcontroller/youraction(cuando habilitar reescritura)

Amit Bera
fuente
¿ Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)Funcionará mejor cuando tengamos reescrituras activadas?
Buttle Butkus
no.Mage :: getBaseUrl (): siempre se usa para pageliks de magento
Amit Bera
Gracias por ayudar. Pero dijiste que eso Mage::getBaseUrl()te da un enlace que tiene index.phpen él. ¿Por qué querría ese index.php adicional si no lo necesito?
Buttle Butkus
Si envío no envío ningún parámetro en la función getBaseUrl (), entonces envía si los parámetros son $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, $ secure = null)
Amit Bera
por favor revisa este magento Mage.php
Amit Bera