Chuyển đến nội dung chính

GetUrl in Magento 2

review file \Magento\Store\Model\Store.php

public function getBaseUrl($type = \Magento\Framework\UrlInterface::URL_TYPE_LINK, $secure = null)
    {
        $cacheKey = $type . '/' . ($secure === null ? 'null' : ($secure ? 'true' : 'false'));
        if (!isset($this->_baseUrlCache[$cacheKey])) {
            $secure = $secure === null ? $this->isCurrentlySecure() : (bool)$secure;
            switch ($type) {
                case \Magento\Framework\UrlInterface::URL_TYPE_WEB:
                    $path = $secure
                        ? self::XML_PATH_SECURE_BASE_URL
                        : self::XML_PATH_UNSECURE_BASE_URL;
                    $url = $this->getConfig($path);
                    break;

                case \Magento\Framework\UrlInterface::URL_TYPE_LINK:
                    $path = $secure ? self::XML_PATH_SECURE_BASE_LINK_URL : self::XML_PATH_UNSECURE_BASE_LINK_URL;
                    $url = $this->getConfig($path);
                    $url = $this->_updatePathUseRewrites($url);
                    $url = $this->_updatePathUseStoreView($url);
                    break;

                case \Magento\Framework\UrlInterface::URL_TYPE_DIRECT_LINK:
                    $path = $secure ? self::XML_PATH_SECURE_BASE_LINK_URL : self::XML_PATH_UNSECURE_BASE_LINK_URL;
                    $url = $this->getConfig($path);
                    $url = $this->_updatePathUseRewrites($url);
                    break;

                case \Magento\Framework\UrlInterface::URL_TYPE_STATIC:
                    $path = $secure ? self::XML_PATH_SECURE_BASE_STATIC_URL : self::XML_PATH_UNSECURE_BASE_STATIC_URL;
                    $url = $this->getConfig($path);
                    if (!$url) {
                        $url = $this->getBaseUrl(
                            \Magento\Framework\UrlInterface::URL_TYPE_WEB,
                            $secure
                        ) . $this->filesystem->getUri(
                            DirectoryList::STATIC_VIEW
                        );
                    }
                    break;

                case \Magento\Framework\UrlInterface::URL_TYPE_MEDIA:
                    $url = $this->_getMediaScriptUrl($this->filesystem, $secure);
                    if (!$url) {
                        $path = $secure ? self::XML_PATH_SECURE_BASE_MEDIA_URL : self::XML_PATH_UNSECURE_BASE_MEDIA_URL;
                        $url = $this->getConfig($path);
                        if (!$url) {
                            $url = $this->getBaseUrl(
                                \Magento\Framework\UrlInterface::URL_TYPE_WEB,
                                $secure
                            ) . $this->filesystem->getUri(
                                DirectoryList::MEDIA
                            );
                        }
                    }
                    break;

                default:
                    throw new \InvalidArgumentException('Invalid base url type');
            }

            if (false !== strpos($url, self::BASE_URL_PLACEHOLDER)) {
                $distroBaseUrl = $this->_request->getDistroBaseUrl();
                $url = str_replace(self::BASE_URL_PLACEHOLDER, $distroBaseUrl, $url);
            }

            $this->_baseUrlCache[$cacheKey] = rtrim($url, '/') . '/';
        }

        return $this->_baseUrlCache[$cacheKey];
    }






Nhận xét

Bài đăng phổ biến từ blog này

0xc000000f: Fix lỗi mất boot Windows 8.1

Thời gian thực hiện : 5-10' Window 8.1 noUEFI boot  Dùng đĩa cài hoặc usb boot win Không install mà vào repair mode Từ commandline dùng các lệnh sau theo thứ tự từ trên xuống  bootrec /fixmbr bootrec /fixboot bootrec /rebuildbcd bootrec /scanos exit reboot lại máy

Magento 2 Code Standards Part 1: Setup Enviroments

Trong bài này mình sẽ trình bày về việc cấu hình PHP_CodeSniffer cho magento 2. Yêu cầu cơ bản là server cài PHP v5.4 trở lên. Cài đặt thành công composer 1- PHP_CodeSniffer là gì 2- Code Standards có lợi gì cho lập trình viên Trong lập trình có rất nhiều chuẩn để lập trình viên làm theo để tạo được code có cấu trúc mạch lạc và khả năng maintance sau này. Trong PHP nói riêng cũng có kha khá chuẩn PSR1234 blah ... Magento cũng có vài chuẩn , ở đây mình chỉ đề cập đến MQEP2 (Marketplace Extension Quality Program) Khi lập trình các extension cho marketplace của magento v2 thì phải theo chuẩn này 3- Cấu hình Magento 2 đã nhúng sẵn bản 1.5.3 codesniffer của squizlabs vào cho lập trình viên. Nếu trên server chưa cài codesniffer thì có thể dùng ngay bản này Đường dẫn nằm ở vendor/bin/phpcs Tải về các rule để chạy (Các rule này kiểu như các convention được quy định sẵn để bắt lập trình viên làm theo) có suggest hoặc báo trên IDE composer require magento/marketplace-eqp After inst

Add external lib to vendor Magento 2

Magento 2 use autoload implement Code style PSR-4 You can add any custom source lib much easier by add require autoload 1. Upload lib files to vendor dir 2. Add file autoload.php in /vendor/lib-folder/autoload.php with content define('FACEBOOK_SDK_V4_SRC_DIR', '/src/Facebook/'); require __DIR__ . '/src/Facebook/autoload.php'; 3. Save and now you can call lib from anywhere like this ---- Injection from constructor and call instance in class \Facebook\Facebook