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?

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)


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.