A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							111 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							111 lines
						
					
					
						
							1.8 KiB
						
					
					
				<?php
 | 
						|
/*
 | 
						|
 * Copyright © 2021 ExacTI Technology Solutions. All rights reserved.
 | 
						|
 * GPLv3 General License.
 | 
						|
 * https://exacti.com.br
 | 
						|
 * Phacil PHP Framework - https://github.com/exacti/phacil-framework
 | 
						|
 */
 | 
						|
 | 
						|
namespace Phacil\Framework;
 | 
						|
 | 
						|
class Url {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	public $baseurl;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $url;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $ssl;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @var bool
 | 
						|
	 */
 | 
						|
    public $cdn = false;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @var array
 | 
						|
	 */
 | 
						|
	private $hook = array();
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * @param string $url 
 | 
						|
	 * @param string $ssl 
 | 
						|
	 * @return void 
 | 
						|
	 */
 | 
						|
	public function __construct($url, $ssl) {
 | 
						|
		$this->url = $url;
 | 
						|
		$this->ssl = $ssl;
 | 
						|
        if(defined('CDN')) {
 | 
						|
            $this->cdn = CDN;
 | 
						|
        } else {
 | 
						|
            $this->cdn = false;
 | 
						|
        }
 | 
						|
		
 | 
						|
		if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
 | 
						|
			$this->baseurl = $ssl;
 | 
						|
		} else {
 | 
						|
			$this->baseurl = $url;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * @param string $route 
 | 
						|
	 * @param string $args 
 | 
						|
	 * @param string $connection 
 | 
						|
	 * @return string 
 | 
						|
	 */
 | 
						|
	public function link($route, $args = '', $connection = 'NONSSL') {
 | 
						|
		if ($connection ==  'NONSSL') {
 | 
						|
			$url = $this->url;	
 | 
						|
		} else {
 | 
						|
			$url = $this->ssl;	
 | 
						|
		}
 | 
						|
		
 | 
						|
		$url .= 'index.php?route=' . $route;
 | 
						|
		
 | 
						|
		if ($args) {
 | 
						|
			if (is_array($args)) {
 | 
						|
				$url .= '&' . http_build_query($args);
 | 
						|
			} else {
 | 
						|
				//$url .= str_replace('&', '&', '&' . ltrim($args, '&'));
 | 
						|
				$url .= '&' . ltrim($args, '&');
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		
 | 
						|
		return $this->rewrite($url);
 | 
						|
	}
 | 
						|
		
 | 
						|
	/**
 | 
						|
	 * @param string $hook 
 | 
						|
	 * @return void 
 | 
						|
	 */
 | 
						|
	public function addRewrite($hook) {
 | 
						|
		$this->hook[] = $hook;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param string $url 
 | 
						|
	 * @return string 
 | 
						|
	 */
 | 
						|
	public function rewrite($url) {
 | 
						|
		foreach ($this->hook as $hook) {
 | 
						|
			$url = $hook->rewrite($url);
 | 
						|
		}
 | 
						|
		
 | 
						|
		return $url;		
 | 
						|
	}
 | 
						|
}
 | 
						|
 |