Zend Medianova CDN Integration

Zend is an open-source, object-oriented PHP web application framework. A Zend plug-in makes CDN integration easy.

The following steps describe the integration between Medianova CDN and Zend.

Note: We recommend back up your files and database before they integrate
  1. First of all, create a zone for your account
  2. To create links pointing to the Medianova CDN URL, create the Zend plug-in below     **Change the your-cdn-url.com with your CDN URL
    class MnCDN_Plugin extends Zend_Controller_Plugin_Abstract {
        public function preDispatch(Zend_Controller_Request_Abstract $request) {
            // enable CDN links for development env
            $enable_cdn_dev = (bool) true;
            // MnCDN URL or Zone Alias
            $cdn_hostname = 'your-cdn-url.com';
    
            if ((APPLICATION_ENV == 'production') || $enable_cdn_dev)) {
                // SSL or not
                if ($request->isSecure()) {
                    Zend_Registry::set('cdn_protocol', 'https');
                } else {
                    Zend_Registry::set('cdn_protocol', 'http');
                }
            Zend_Registry::set('cdn_on', true);
            Zend_Registry::set('cdn_hostname', $cdn_hostname);
            } else {
                Zend_Registry::set('cdn_on', false);
            }
            return true;
        }
    }
    
  3. Create Zend view helper
    class MnCDN_Helper extends Zend_View_Helper_Abstract {
        public function cdn($url) {
            if (empty($url))
                throw new Exception('Path is missing');
    
            $pattern = '/^http/i';
            if (preg_match($pattern, $url)) {
                throw new Exception('Invalid usage. ' .
                    'Use: /htdocs/images instead of the full URL ' .
                    'http://your-website.com/htdocs/images.'
                );
            }
    
            $pattern = '|^/|';
            if (!preg_match($pattern, $url)) {
                $url = '/' . $url;
            }
    
            if (!Zend_Registry::get('cdn_on')) {
                return $url;
            } else {
                $cdn_hostname = Zend_Registry::get('cdn_hostname');
                $cdn_protocol = Zend_Registry::get('cdn_protocol');
                $uri = $cdn_protocol . '://' . $cdn_hostname . $url;
    
                return $uri;
            }
        }
    }
    
  4. Use the CDN helper in the view
    <img alt="Medianova CDN" src="<?php echo $this->cdn('/htdocs/images/medianova-logo.jpeg'); ?>" />
  5. Verify whether links with HTML source code show the CDN URL
Note: You can use the https://docs.medianova.com/en/medianova-cdn-user-integration/ link to view the CDN URLs of your Zone  

 

Tagged: