ModuleImage

Package framework.modules
Inheritance class ModuleImage » Module » LsObject
Since 2.0
Source Code /framework/classes/modules/image/Image.class.php
Модуль обработки изображений Используется библиотека Imagine

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
aBehaviors array Список поведений LsObject
aDriversSupport array Список поддерживаемых драйверов обработки изображений ModuleImage
aParamsDefault array Дефолтные параметры ModuleImage
bIsInit bool Указывает на то, была ли проведенна инициализация модуля Module
sDriverCurrent string Текущий драйвер обработки изображений ModuleImage
sLastErrorText string Тескт последней ошибки ModuleImage

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddBehaviorHook() Добавляет хук поведения LsObject
AttachBehavior() Присоединяет поведение к объекту LsObject
BuildParams() Возврашает параметры для группы, если каких то параметров в группе нет, то используются дефолтные ModuleImage
ClearLastError() Очищает текст последней ошибки ModuleImage
Create() Создает пустой объект изображения ModuleImage
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
GetDriverCurrent() Возвращает текущий драйвер ModuleImage
GetIdDir() Получает директорию для загрузки изображений ModuleImage
GetLastError() Получает текст последней ошибки ModuleImage
Init() ModuleImage
IsExistsFile() Проверяет изображение на существование ModuleImage
Open() Открывает файл изображения и возвращает объект ModuleImage
OpenFrom() Открывает файл изображения, в качестве источника изображения может использоваться полный путь до файла с типом, например, [relative]/image.jpg ModuleImage
RemoveBehaviorHook() Удаляет хук поведения LsObject
RemoveFile() Удаляет файл изображения ModuleImage
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
SaveFile() Сохраняет(копирует) файл изображения на сервер ModuleImage
SaveFileSmart() Сохраняет(копирует) файл изображения на сервер ModuleImage
SetDriverCurrent() Устанавливает текущий драйвер обработки изображений ModuleImage
SetInit() Помечает модуль как инициализированный Module
SetLastError() Устанавливает текст последней ошибки ModuleImage
Shutdown() Метод срабатывает при завершении работы ядра Module
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() Блокируем копирование/клонирование объекта Module
__construct() Конструктор, запускается автоматически при создании объекта LsObject
__get() Обработка доступа к объекты поведения LsObject
isInit() Возвращает значение флага инициализации модуля Module

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
GetClassDriverCurrent() Возвращает класс текущего драйвера ModuleImage
PrepareBehaviors() Инициализация поведений LsObject

Property Details

aDriversSupport property
protected array $aDriversSupport;

Список поддерживаемых драйверов обработки изображений

aParamsDefault property
protected array $aParamsDefault;

Дефолтные параметры Основная задача в определении списка доступных ключей массива с параметрами

sDriverCurrent property
protected string $sDriverCurrent;

Текущий драйвер обработки изображений

sLastErrorText property
protected string $sLastErrorText;

Тескт последней ошибки

Method Details

BuildParams() method
public array BuildParams(string $sName=NULL)
$sName string Имя группы
{return} array
Source Code: /framework/classes/modules/image/Image.class.php#236 (show)
public function BuildParams($sName null)
{
    
$aDefault func_array_merge_assoc($this->aParamsDefault, (array)Config::Get('module.image.params.default'));
    if (
is_null($sName)) {
        return 
$aDefault;
    }
    
$aNamed = (array)Config::Get('module.image.params.' strtolower($sName));
    return 
func_array_merge_assoc($aDefault$aNamed);
}

Возврашает параметры для группы, если каких то параметров в группе нет, то используются дефолтные

ClearLastError() method
public void ClearLastError()
Source Code: /framework/classes/modules/image/Image.class.php#125 (show)
public function ClearLastError()
{
    
$this->SetLastError(null);
}

Очищает текст последней ошибки

Create() method
public ModuleImage_EntityImage|bool Create(int $iWidth, int $iHeight, array|null $aParams=NULL)
$iWidth int
$iHeight int
$aParams array|null
{return} ModuleImage_EntityImage|bool
Source Code: /framework/classes/modules/image/Image.class.php#201 (show)
public function Create($iWidth$iHeight$aParams null)
{
    if (!
is_array($aParams)) {
        
$aParams $this->BuildParams();
    } else {
        
$aParams func_array_merge_assoc($this->aParamsDefault$aParams);
    }

    
$sClassDriver $this->GetClassDriverCurrent();

    try {
        
/**
         * Создаем объект изображения библиотеки Imagine
         */
        
$oImagine = new $sClassDriver();
        
$oImageObject $oImagine->create(new Imagine\Image\Box($iWidth$iHeight));
        
/**
         * Создаем объект для работы с изображением
         */
        
$oImage Engine::GetEntity('ModuleImage_EntityImage');
        
$oImage->setImage($oImageObject);
        
$oImage->setParams($aParams);
        return 
$oImage;
    } catch (
Imagine\Exception\Exception $e) {
        
$this->SetLastError($e->getMessage());
        return 
false;
    }
}

Создает пустой объект изображения

GetClassDriverCurrent() method
protected string GetClassDriverCurrent()
{return} string
Source Code: /framework/classes/modules/image/Image.class.php#135 (show)
protected function GetClassDriverCurrent()
{
    
$sDrive ucfirst($this->sDriverCurrent);
    return 
"Imagine\\{$sDrive}\\Imagine";
}

Возвращает класс текущего драйвера

GetDriverCurrent() method
public string GetDriverCurrent()
{return} string
Source Code: /framework/classes/modules/image/Image.class.php#96 (show)
public function GetDriverCurrent()
{
    return 
$this->sDriverCurrent;
}

Возвращает текущий драйвер

GetIdDir() method
public string GetIdDir(int $sId, string $sSubDir=NULL)
$sId int Целое число, обычно это ID объекта
$sSubDir string Подкаталог
{return} string
Source Code: /framework/classes/modules/image/Image.class.php#336 (show)
public function GetIdDir($sId$sSubDir null)
{
    return 
Config::Get('path.uploads.images') . '/' . ($sSubDir $sSubDir '/' '') . preg_replace('~(.{3})~U',
        
"\\1/"str_pad($sId9"0"STR_PAD_LEFT)) . date('Y/m/d');
}

Получает директорию для загрузки изображений Используется фомат хранения данных (/images/subdir/obj/ect/id/yyyy/mm/dd/file.jpg) Например, для хранения изображений пользователя (аватары и т.п.) c ID=1 можно так: /images/users/000/000/001/2014/02/15/avatar.jpg

GetLastError() method
public string GetLastError()
{return} string
Source Code: /framework/classes/modules/image/Image.class.php#106 (show)
public function GetLastError()
{
    return 
$this->sLastErrorText;
}

Получает текст последней ошибки

Init() method
public void Init()
Source Code: /framework/classes/modules/image/Image.class.php#69 (show)
public function Init()
{
    
$this->SetDriverCurrent(Config::Get('module.image.driver'));
}

IsExistsFile() method
public mixed IsExistsFile(string $sPathFile)
$sPathFile string Полный путь до файла с типом, например, [relative]/image.jpg
{return} mixed
Source Code: /framework/classes/modules/image/Image.class.php#306 (show)
public function IsExistsFile($sPathFile)
{
    
$sPathFile $this->Fs_GetPathServer($sPathFile);
    return 
$this->Fs_IsExistsFileLocal($sPathFile);
}

Проверяет изображение на существование Если переопределить данный метод, то можно проверить существование изображения, например, на Amazon S3

Open() method
public ModuleImage_EntityImage|bool Open($sFile $sFile, $aParams $aParams=NULL)
$sFile $sFile Локальны путь до изображения
$aParams $aParams Параметры
{return} ModuleImage_EntityImage|bool
Source Code: /framework/classes/modules/image/Image.class.php#148 (show)
public function Open($sFile$aParams null)
{
    if (!
is_array($aParams)) {
        
$aParams $this->BuildParams();
    } else {
        
$aParams func_array_merge_assoc($this->aParamsDefault$aParams);
    }

    
$sClassDriver $this->GetClassDriverCurrent();

    try {
        
/**
         * Создаем объект изображения библиотеки Imagine
         */
        
$oImagine = new $sClassDriver();
        
$oImageObject $oImagine->open($sFile);

        if (!
$aSize getimagesize($sFile$aImageInfo)) {
            
$this->SetLastError('The file is not an image');
            return 
false;
        }
        
/**
         * Проверяем на максимальный размер
         */
        
$oBox $oImageObject->getSize();
        if (
$oBox->getWidth() > $aParams['size_max_width'] or $oBox->getHeight() > $aParams['size_max_height']) {
            
$this->SetLastError('Maximum size image ' $aParams['size_max_width'] . 'x' $aParams['size_max_height']);
            return 
false;
        }
        
/**
         * Создаем объект для работы с изображением
         */
        
$oImage Engine::GetEntity('ModuleImage_EntityImage');
        
$oImage->setImage($oImageObject);
        
$oImage->setParams($aParams);
        
$oImage->setInfoSize($aSize);
        
$oImage->setInfoAdditional($aImageInfo);
        return 
$oImage;
    } catch (
Imagine\Exception\Exception $e) {
        
$this->SetLastError($e->getMessage());
        return 
false;
    }
}

Открывает файл изображения и возвращает объект

OpenFrom() method
public bool|ModuleImage_EntityImage OpenFrom(string $sFile, null $aParams=NULL)
$sFile string Полный путь до файла с типом, например, [relative]/image.jpg
$aParams null
{return} bool|ModuleImage_EntityImage
Source Code: /framework/classes/modules/image/Image.class.php#321 (show)
public function OpenFrom($sFile$aParams null)
{
    
$sFile $this->Fs_GetPathServer($sFile);
    return 
$this->Open($sFile$aParams);
}

Открывает файл изображения, в качестве источника изображения может использоваться полный путь до файла с типом, например, [relative]/image.jpg Если переопределить данный метод, то можно открывать изображения, например, с Amazon S3

RemoveFile() method
public mixed RemoveFile(string $sPathFile)
$sPathFile string Полный путь до файла с типом, например, [relative]/image.jpg
{return} mixed
Source Code: /framework/classes/modules/image/Image.class.php#292 (show)
public function RemoveFile($sPathFile)
{
    
$sPathFile $this->Fs_GetPathServer($sPathFile);
    return 
$this->Fs_RemoveFileLocal($sPathFile);
}

Удаляет файл изображения Если переопределить данный метод, то можно удалять изображения, например, с Amazon S3

SaveFile() method
public bool SaveFile(string $sFileSource, string $sFileDest, int|null $iMode=NULL, bool $bRemoveSource=false)
$sFileSource string Полный путь до исходного файла
$sFileDest string Полный путь до файла для сохранения с типом, например, [server]/home/var/site.ru/image.jpg
$iMode int|null Права chmod для файла, например, 0777
$bRemoveSource bool Удалять исходный файл или нет
{return} bool | string При успешном сохранении возвращает относительный путь до файла с типом, например, [relative]/image.jpg
Source Code: /framework/classes/modules/image/Image.class.php#276 (show)
public function SaveFile($sFileSource$sFileDest$iMode null$bRemoveSource false)
{
    if (
$this->Fs_SaveFileLocal($sFileSource$this->Fs_GetPathServer($sFileDest), $iMode$bRemoveSource)) {
        return 
$this->Fs_MakePath($this->Fs_GetPathRelativeFromServer($sFileDest), ModuleFs::PATH_TYPE_RELATIVE);
    }
    return 
false;
}

Сохраняет(копирует) файл изображения на сервер Если переопределить данный метод, то можно сохранять изображения, например, на Amazon S3

SaveFileSmart() method
public bool SaveFileSmart(string $sFileSource, string $sDirDest, string $sFileDest, int|null $iMode=NULL, bool $bRemoveSource=false)
$sFileSource string Полный путь до исходного файла
$sDirDest string Каталог для сохранения файла относительно корня сайта
$sFileDest string Имя файла для сохранения
$iMode int|null Права chmod для файла, например, 0777
$bRemoveSource bool Удалять исходный файл или нет
{return} bool | string При успешном сохранении возвращает относительный путь до файла с типом, например, [relative]/image.jpg
Source Code: /framework/classes/modules/image/Image.class.php#258 (show)
public function SaveFileSmart($sFileSource$sDirDest$sFileDest$iMode null$bRemoveSource false)
{
    if (
$sPathFile $this->Fs_SaveFileLocalSmart($sFileSource$sDirDest$sFileDest$iMode$bRemoveSource)) {
        return 
$this->Fs_MakePath($this->Fs_GetPathRelativeFromServer($sPathFile), ModuleFs::PATH_TYPE_RELATIVE);
    }
    return 
false;
}

Сохраняет(копирует) файл изображения на сервер Если переопределить данный метод, то можно сохранять изображения, например, на Amazon S3

SetDriverCurrent() method
public bool SetDriverCurrent($sDriver $sDriver)
$sDriver $sDriver
{return} bool
Source Code: /framework/classes/modules/image/Image.class.php#81 (show)
public function SetDriverCurrent($sDriver)
{
    
$sDriver strtolower($sDriver);
    if (
in_array($sDriver$this->aDriversSupport)) {
        
$this->sDriverCurrent $sDriver;
        return 
true;
    }
    return 
false;
}

Устанавливает текущий драйвер обработки изображений

SetLastError() method
public void SetLastError(string $sText)
$sText string Текст ошибки
Source Code: /framework/classes/modules/image/Image.class.php#116 (show)
public function SetLastError($sText)
{
    
$this->sLastErrorText $sText;
}

Устанавливает текст последней ошибки