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

26

Y a-t-il une raison d'utiliser Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)plutôt que Mage::getBaseUrl()? J'ai vu les deux en cours d'utilisation, et ils retournent tous les deux la même chose. Le plus long est-il redondant? Il utilise également 2 appels de fonction.

De plus, je vois que Mage_Core_Model_Store::URL_TYPE_WEBrenvoie simplement la chaîne «web». À quoi ça sert?

Buttle Butkus
la source

Réponses:

40

Regardez d' abord getBaseUrl()àMage.php

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

En un mot simple, nous pouvons dire:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)indiqué Votre Magento Site Urlde this url Magento is running it System.

Et autre mot, on peut dire 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):

Valeur définie sur : De Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Mage :: getBaseUrl ():

Valeur définie sur : De Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Différence principale montrant:

Chaque fois que nous sommes autorisés à Use Web Server Rewrites = nopartir de admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) donner la valeur de http://youdomain/

mais Mage::getBaseUrl()donner une valeur http://youdomain/index.php/qui donne réellement la valeur de Mage_Core_Model_Store::URL_TYPE_LINK

quand vous hit http://youdomain/qui est appelez Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) url Mais ce times you can see all pagelien de votre site is starting with http://youdomain/index.php/ cela signifie qu'il a falluMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Exemple:

Si vous avez créé un dossier, amit at Magento root dir and there you have put a file test.jsvous voulez appeler ce fichier chez magento, vous pouvez utiliser ce code

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

et ça donne alors l'url

www.yourdomain/amit/test.js

Si vous n'utilisez que Mage::getBaseUrl()ce qui vous donne, www.yourdomain/index.php/amit/test.jscela signifie que test.js ne peut pas être accessible (lorsque la réactivation est désactivée)

Mais vous devez créer un nouveau contrôleur et une nouvelle action, vous pouvez alors utiliser

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

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

ou donner http://yourdomain/yourmodulerouter/yourcontroller/youraction(lorsque la réécriture est activée)

Amit Bera
la source
Cela Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)fonctionnera-t-il mieux lorsque les réécritures seront activées?
Buttle Butkus
no.Mage :: getBaseUrl (): est toujours utilisé pour les pages magento
Amit Bera
Merci pour ton aide. Mais tu as dit queMage::getBaseUrl() vous donne un lien qui s'y trouve index.php. Pourquoi voudrais-je ce fichier index.php supplémentaire si je n'en ai pas besoin?
Buttle Butkus
Si j'envoie n'envoie aucun paramètre sur la fonction getBaseUrl (), alors il envoie des paramètres comme $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, $ secure = null)
Amit Bera
pleas check this magento Mage.php
Amit Bera