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


26

C'è un motivo per usare Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)piuttosto che Mage::getBaseUrl()? Ho visto entrambi in uso ed entrambi restituiscono la stessa cosa. Quello più lungo è ridondante? Utilizza anche 2 chiamate di funzione.

Inoltre, vedo che Mage_Core_Model_Store::URL_TYPE_WEBrestituisce semplicemente la stringa "web". Che senso ha?

Risposte:


40

Primo sguardo getBaseUrl()aMage.php

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

In una parola semplice possiamo dire:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)indicato il tuo Magento Site Urlda this url Magento is running it System.

E in altre parole, possiamo dirlo 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):

Valore impostato su : Da Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Mage :: getBaseURL ():

Valore impostato su : Da Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Differenza principale che mostra:

Ogni volta che siamo abilitati Use Web Server Rewrites = noda admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) dare il valore di http://youdomain/

ma dai Mage::getBaseUrl()valore http://youdomain/index.php/che in realtà dà il valore di Mage_Core_Model_Store::URL_TYPE_LINK

quando si hit http://youdomain/chiama Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) url Ma quel times you can see all pagelink del tuo site is starting with http://youdomain/index.php/ significa che ha presoMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Esempio:

Se hai creato una cartella amit at Magento root dir and there you have put a file test.js, vuoi chiamare questo file in magento home, quindi puoi usare questo codice

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

e dà quindi url

www.yourdomain/amit/test.js

Se usi solo quelli Mage::getBaseUrl()che ti danno www.yourdomain/index.php/amit/test.jstale significato test.js non è accessibile (quando disabilita rewite)

Ma hai creato un nuovo controller e nuove azioni che puoi usare

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

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

o dare http://yourdomain/yourmodulerouter/yourcontroller/youraction(quando abilita la riscrittura)


Quindi Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)funzionerà meglio quando avremo riscritto?
Buttle Butkus,

no.Mage :: getBaseUrl (): è sempre utilizzato per i pageli di magento
Amit Bera

Grazie dell'aiuto. Ma hai detto che Mage::getBaseUrl()ti dà un link che ha index.phpdentro. Perché dovrei desiderare quel index.php extra se non ne ho bisogno?
Buttle Butkus,

Se invio non invio alcun parametro sulla funzione getBaseUrl (), invia se i parametri come $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, $ secure = null)
Amit Bera

per favore controlla questo magento Mage.php
Amit Bera
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.