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.
		
		
		
		
		
			
		
			
				
					
					
						
							93 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							93 lines
						
					
					
						
							2.1 KiB
						
					
					
				<?php
 | 
						|
/**
 | 
						|
 * Copyright © 2024 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;
 | 
						|
 | 
						|
/**
 | 
						|
 * @since 2.0.0
 | 
						|
 * @package Phacil\Framework
 | 
						|
 */
 | 
						|
 class Version {
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $framework;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @var \Composer\InstalledVersions
 | 
						|
	 */
 | 
						|
	private $composerInstalled;
 | 
						|
 | 
						|
	public function __construct($framework, $composerInstalled, $teste) {
 | 
						|
		$this->framework = $framework;
 | 
						|
		$this->composerInstalled = $composerInstalled;
 | 
						|
	}
 | 
						|
 | 
						|
	/** 
 | 
						|
	 * Return Phacil Framework version or composer package version
 | 
						|
	 * 
 | 
						|
	 * @param string $package (Optional) If empty, return the current framework version
 | 
						|
	 * 
 | 
						|
	 * @return string|false  
 | 
						|
	 */
 | 
						|
	public function get($package = null)
 | 
						|
	{
 | 
						|
		return (!$package) ? $this->framework : $this->getPackageVersion($package);
 | 
						|
		//return file_get_contents(\Phacil\Framework\Config::DIR_SYSTEM() . "engine/VERSION");
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Alias for get method
 | 
						|
	 * @return string|false 
 | 
						|
	 */
 | 
						|
	public function getFrameworkVersion() {
 | 
						|
		return $this->get();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Alias for get method
 | 
						|
	 * @return string|false 
 | 
						|
	 */
 | 
						|
	public function getPhacilVersion() {
 | 
						|
		return $this->get();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return string|false 
 | 
						|
	 */
 | 
						|
	public function getPHPVersion() {
 | 
						|
		return phpversion();
 | 
						|
	}
 | 
						|
 | 
						|
	/** @return string[]  */
 | 
						|
	public function getComposerPackages() {
 | 
						|
		//return call_user_func(array($this->composerInstalled, 'getInstalledPackages'));
 | 
						|
		$composerInstalled = $this->composerInstalled;
 | 
						|
		return $composerInstalled::getInstalledPackages();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * 
 | 
						|
	 * @param string $package 
 | 
						|
	 * @return string|null 
 | 
						|
	 * @throws \Phacil\Framework\Exception\OutOfBoundsException 
 | 
						|
	 */
 | 
						|
	public function getPackageVersion($package) {
 | 
						|
		//return call_user_func(array($this->composerInstalled, 'getVersion'), $package);
 | 
						|
		$composerInstalled = $this->composerInstalled;
 | 
						|
		try {
 | 
						|
			return $composerInstalled::getVersion($package);
 | 
						|
		} catch (\OutOfBoundsException $ob) {
 | 
						|
			$notFind =  new \Phacil\Framework\Exception\OutOfBoundsException($ob->getMessage(), $ob->getCode(), $ob);
 | 
						|
			$notFind->setObject($ob);
 | 
						|
		}
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
} |