Вед-дев, Сео, Манимейкинг

Кеширование изображений при помощи Imagecache 2.3

Для того, чтобы кешировать изображения и делать с ними манипуляции через URL, нужно установить следующие пакеты в L4.2:

composer require "intervention/image:dev-master"
composer require "intervention/imagecache:^2.3"

Затем публикуем конфиги

php artisan config:publish intervention/image
php artisan config:publish intervention/imagecache

Заходим в "app/config/packages/intervention/imagecache/config.php"

'route' => 'imagecache'

Теперь все пресеты будут работать в таком видет: "imagecache/presetname/filename.jpg"

Затем указываем путь к директории с изображениями:

'paths' => array(public_path('img') )

Ниже мы увидим дефолтные пресеты:

'templates' => array(
    'small' => 'Intervention\Image\Templates\Small',
    'medium' => 'Intervention\Image\Templates\Medium',
    'large' => 'Intervention\Image\Templates\Large'
)

Можно использовать дефолтные пресеты таким образом: "imagecache/small/filename.jpg"

Но если вы хотите добавить собственные пресеты с собственными настройками обработки изображений, то вам необходимо создать собственные пресеты. Например, я всегда создаю по такому адресу: "app/filters/filters.php". По дефолту нет директории "filters" - её нужно создать.

Содержимое файла filters.php:

<?php

namespace Filters;

use Intervention\Image\Image;
use Intervention\Image\Filters\FilterInterface;

class TestFilter implements FilterInterface
{
    public function applyFilter(Image $image)
    {
        return $image->fit(120, 90)->greyscale();
    }
}

Далее, в конфиг "app/config/packages/intervention/config.php" добавляем под дефолтными пресетами:

'templates' => array(
    'small' => 'Intervention\Image\Templates\Small',
    'medium' => 'Intervention\Image\Templates\Medium',
    'large' => 'Intervention\Image\Templates\Large' ,
    'test' => 'Filters\TestFilter'
)

Теперь добавляем наш класс в composer.json в секцию autoload:

"classmap": [
    "app/commands",
    "app/controllers",
    "app/models",
    "app/database/migrations",
    "app/database/seeds",
    "app/tests/TestCase.php",
    "app/filters"
],

Не забываем composer dumpautoload и всё должно работать.



Комментарии (0)

Разделы

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 11 месяцев 3 недели назад
    Спасибо. С Новым Годом! 
  • Den 1 год 1 неделя назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 1 год 1 неделя назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 1 год 1 месяц назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 1 год 1 месяц назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 1 год 1 месяц назад
    захожу на mysql через ssh по команде  
  • admin 1 год 1 месяц назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 1 год 1 месяц назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 1 год 1 месяц назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 1 год 3 месяца назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!