Skip to content

Commit

Permalink
Merge pull request #33 from mostafaznv/dev
Browse files Browse the repository at this point in the history
feat: retrieve the model’s class-string from the Relation class to support Laravel’s `enforceMorphMap` feature
  • Loading branch information
mostafaznv authored Dec 19, 2024
2 parents 06f0209 + 7fb7881 commit ba03f2c
Show file tree
Hide file tree
Showing 6 changed files with 151 additions and 146 deletions.
90 changes: 72 additions & 18 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ jobs:
os: [ubuntu-latest]
php: [8.1, 8.2, 8.3, 8.4]
laravel: ['10.*', '11.*']
imagemagick: ['7.1.1-32']
imagick: ['3.7.0']
coverage: [none]
dependency-version: [prefer-stable]
include:
Expand All @@ -28,14 +30,69 @@ jobs:
name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - ${{ matrix.os }} - ${{ matrix.dependency-version }}

steps:
- name: Update apt
run: sudo apt-get update --fix-missing
- name: Checkout code
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, sqlite3, pdo_sqlite, bcmath, fileinfo, gd, xdebug
tools: composer:v2
ini-values: xdebug.mode="coverage"
coverage: xdebug

- name: Install ffmpeg
run: sudo apt-get install ffmpeg
run: sudo apt-get install -y ffmpeg

- name: Checkout code
uses: actions/checkout@v4
- name: Prepare environment for Imagemagick
run: |
sudo apt-get -y remove imagemagick imagemagick-6-common libmagic-dev
sudo apt-get update --fix-missing
sudo apt-get install -y libjpeg-dev libgif-dev libtiff-dev libpng-dev libwebp-dev libavif-dev libheif-dev
sudo apt-get install -y libmagickwand-dev
- name: Cache ImageMagick
uses: actions/cache@v4
id: cache-imagemagick
with:
path: /home/runner/im/imagemagick-${{ matrix.imagemagick }}
key: ${{ runner.os }}-ImageMagick-${{ matrix.imagemagick }}-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-ImageMagick-${{ matrix.imagemagick }}-

- name: Check ImageMagick cache exists
uses: andstor/file-existence-action@v3
id: cache-imagemagick-exists
with:
files: /home/runner/im/imagemagick-${{ matrix.imagemagick }}


- name: Install ImageMagick
run: |
curl -o /tmp/ImageMagick.tar.xz -sL https://imagemagick.org/archive/releases/ImageMagick-${{ matrix.imagemagick }}.tar.xz
(
cd /tmp || exit 1
tar xf ImageMagick.tar.xz
cd ImageMagick-${{ matrix.imagemagick }}
sudo ./configure --prefix=/home/runner/im/imagemagick-${{ matrix.imagemagick }}
sudo make -j$(nproc)
sudo make install
)
- name: Install PHP ImageMagick extension
run: |
curl -o /tmp/imagick.tgz -sL http://pecl.php.net/get/imagick-${{ matrix.imagick }}.tgz
(
cd /tmp || exit 1
tar -xzf imagick.tgz
cd imagick-${{ matrix.imagick }}
phpize
sudo ./configure --with-imagick=/home/runner/im/imagemagick-${{ matrix.imagemagick }}
sudo make -j$(nproc)
sudo make install
)
sudo bash -c 'echo "extension=imagick.so" >> /etc/php/${{ matrix.php }}/cli/php.ini'
php --ri imagick;
- name: Cache dependencies
uses: actions/cache@v4
Expand All @@ -47,25 +104,22 @@ jobs:
run: |
sudo apt-get update -y
sudo apt-get install -y jpegoptim pngquant gifsicle optipng libjpeg-progs webp
sudo npm install -g svgo
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, sqlite3, pdo_sqlite, bcmath, fileinfo, gd, imagick, xdebug
tools: composer:v2
ini-values: xdebug.mode="coverage"
coverage: xdebug

- name: Fix Imagick Policy
run: sudo sed -i 's/none/read|write/g' /etc/ImageMagick-6/policy.xml
npm install -g svgo
- name: Install dependencies
run: |
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest
- name: GD Version
run: php -r 'var_dump(gd_info());'

- name: Imagick Version
run: php -r 'var_dump(Imagick::getVersion());'

- name: Supported Imagick Formats
run: php -r 'var_dump(Imagick::queryFormats());'

- name: Execute tests
run: composer test:ci

Expand Down
4 changes: 3 additions & 1 deletion src/Jobs/ProcessFFMpeg.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Exception;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\Relation;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
Expand All @@ -14,6 +15,7 @@
use Mostafaznv\Larupload\Events\LaruploadFFMpegQueueFinished;
use Mostafaznv\Larupload\Larupload;


class ProcessFFMpeg implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
Expand Down Expand Up @@ -56,7 +58,7 @@ public function handle()
}
else {
/** @var Model $class */
$class = $this->model;
$class = class_exists($this->model) ? $this->model : Relation::getMorphedModel($this->model);
$modelNotSaved = true;

while ($modelNotSaved) {
Expand Down
Loading

0 comments on commit ba03f2c

Please sign in to comment.