Skip to content

Commit a88ad38

Browse files
committed
support laravel version 7 of media 1.1.beta
1 parent 107e7bd commit a88ad38

19 files changed

+291
-1048
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Changelog
2+
3+
All notable changes to `media` will be documented in this file
4+
5+
## 1.0.0 - 201X-XX-XX
6+
7+
- initial release

README.md

Lines changed: 36 additions & 174 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,34 @@
22
![Logo](https://firebasestorage.googleapis.com/v0/b/beauty-jewel.appspot.com/o/github%2Fmedia%20logo.jpg?alt=media&token=a8be132e-94c5-4d31-8cd6-e17e57727dfb)
33

44

5-
# 🔥 Media Files Package
5+
# Media Package
66

7-
A Package to save your files Many Disks , Many Diroctories By Same Model
7+
A Package to save your files in one place can object has many or one media record.
88

99

1010

11-
## ❤️ Authors
11+
## Authors
1212

13-
- [Waad Mawlood](https://www.github.com/waadmawlood)
13+
- [@Waad Mawlood](https://www.github.com/waadmawlood)
1414
1515

1616

17-
## ⚠️ Mini Requirement
17+
## Mini Requirement
1818

19-
#### * version >= 2.0.0
20-
- PHP >= 8.0.0
21-
- Laravel 8 , 9 , 10
19+
- PHP 7.4
20+
- laravel 5.5
21+
- illuminate/support 5.6
2222

2323

24-
 
25-
26-
#### * version < 2.0.0
27-
- PHP 7.4
28-
- Laravel 7 , 8
29-
30-
31-
## 💯 Installation
24+
## Installation
3225

3326
To install
3427

3528
```sh
3629
composer require waad/media
3730
```
3831

39-
You can publish the `migration` and `config` with:
32+
You can publish the migration and config with:
4033

4134
```sh
4235
php artisan vendor:publish --provider="Waad\Media\MediaServiceProvider"
@@ -52,77 +45,51 @@ configration from `config/media.php`
5245
php artisan migrate
5346
```
5447

55-
#### You can make a link shortcut by disk from `config.media.shortcut` array of disks
48+
#### You can make a link shortcut
5649

5750
```sh
5851
php artisan media:link
5952
```
60-
## 🧰 Usage / Example
53+
## Usage / Example
6154

62-
In **Model**
55+
In Model
6356
```js
64-
<?php
65-
6657
namespace App\Models;
6758

59+
6860
use Waad\Media\Traits\HasOneMedia;
69-
// or
61+
or
7062
use Waad\Media\Traits\HasManyMedia;
7163

7264
class Post extends Model
7365
{
74-
use HasOneMedia; <<------ return one last record of media
75-
// or
76-
use HasManyMedia; <<------ return list of media
77-
66+
67+
use HasManyMedia;
7868

79-
// $media_disk
80-
// $media_directory
81-
// if not define will get default `disk,directory` in `config/media.php`
82-
public $media_disk = 'public';
83-
public $media_directory = 'posts/images';
8469
......
8570
```
8671
87-
&nbsp;
8872
8973
You Can get media
9074
9175
```js
9276
$post->media;
9377
```
94-
&nbsp;
9578
96-
- **`Upload Files`** eg. Use in controller `store` method to add One or Many Files
79+
use in controller `store` function to add One or Many images
9780
```js
9881
$post = Post::create([
9982
...........
10083
]);
10184

10285
$files = $request->file('image'); // one image
10386
$files = $request->file('images'); // many images
87+
$basename = $post->addMedia($files); // return array of file names
10488

105-
// version < 2
106-
// will return array of file names
107-
$media = $post->addMedia($files);
108-
$media = $post->addMedia($files, $index = 1, $label = 'cover');
109-
110-
111-
// ***************************************************
112-
113-
114-
// version >= 2
115-
// will return Media model or array of Media model by on Relationship
116-
$media = $post->addMedia($files)->upload();
117-
$media = $post->addMedia($files)->label('cover')->index(3)->upload();
118-
$media = $post->addMedia($files)->disk('public')->directory('posts/video')->label('cover')->index(3)->upload();
119-
120-
121-
return $media;
89+
return $basename;
12290
```
123-
&nbsp;
12491
125-
- **`Sync Files`** eg. Use in controller `update` method to add One or Many Files
92+
use in controller `update` function to add One or Many images
12693
```js
12794
$post = Post::find(1);
12895
$post->update([
@@ -131,155 +98,50 @@ $post->update([
13198

13299
$files = $request->file('image'); // one image
133100
$files = $request->file('images'); // many images
101+
$basename = $post->syncMedia($files); // return array of file names
134102

135-
// version < 2
136-
// will return array of file names
137-
$media = $post->syncMedia($files);
138-
$media = $post->syncMedia($files, $index = 2);
139-
140-
141-
// ***************************************************
142-
143-
144-
// version >= 2
145-
// will return Media model or array of Media model by on Relationship
146-
$media = $post->syncMedia($files)->sync();
147-
$media = $post->syncMedia($files, $ids = [1,3])->sync(); // delete only these $ids and upload new files
148-
$media = $post->syncMedia($files)->label('cover')->index(3)->sync();
149-
$media = $post->syncMedia($files)->disk('public')->directory('posts/video')->label('cover')->index(3)->sync();
150-
151-
return $media;
103+
return $basename;
152104
```
153105
154-
- **`Delete Files`** eg. Use in controller `destroy` method to delete all or specific ids
106+
use in controller `destroy` function to add One or Many images
155107
```js
156108

157109
$post = Post::find(1);
158110

159-
// version < 2
160-
// will return array of file names
161-
$media = $post->deleteMedia($files);
162-
$media = $post->deleteMedia($files, $index = 2);
163-
164-
165-
// ***************************************************
166-
167-
168-
// version >= 2
169-
// will return bool or array of bool or null by on Relationship
170-
$media = $post->deleteMedia()->delete();
171-
$media = $post->deleteMedia($medias_model)->delete();
172-
$media = $post->deleteMedia([1,3])->delete(); // delete only these ids
111+
$post->deleteMedia(); // delete all media from this object
173112

174-
$lastMedia = $post->media->last(); // return Collection Media Model
175-
$media = $post->deleteMedia($lastMedia)->delete(); // delete only this media
176-
177-
$media2 = $post->mediaById(8);
178-
$media = $post->deleteMedia($media2)->delete();
179-
180-
$mediaList = $post->mediaByMimeType('image/png');
181-
$media = $post->deleteMedia($mediaList)->delete();
113+
$ids = [1,3];
114+
$post->deleteMedia($ids); // delete specific media by id from object
182115

183116
$post->delete();
184117
```
185118
186-
&nbsp;
187-
188-
- Other Helper **`Only version >= 2`**
189-
```js
190-
// get sum files size of post object (bytes)
191-
$post->mediaTotalSize();
192-
193-
//**********************************************
194-
195-
// get count media of post object
196-
$post->mediaTotalCount();
197-
198-
// get count media with soft delete of post object
199-
$post->mediaTotalCount($withTrashed = true);
200-
201-
//**********************************************
202-
203-
// get media by id of post object
204-
$post->mediaById(17);
205-
206-
// get media with soft delete by id of post object
207-
$post->mediaById(17, $withTrashed = true);
208-
209-
//**********************************************
210-
211-
// get media by mime_type of post object
212-
$post->mediaByMimeType('image/png');
213-
214-
// get media with soft delete by mime_type of post object
215-
$post->mediaByMimeType('image/png', $withTrashed = true);
216-
217-
//**********************************************
218-
219-
// get media by approved boolean of post object
220-
$post->mediaApproved(); // default true
221-
$post->mediaApproved(false);
222-
223-
// get media with soft delete by approved boolean of post object
224-
$post->mediaApproved(false, $withTrashed = true);
225-
226-
```
227-
228-
&nbsp;
119+
---
229120
230-
- You can update `approved` all media of object
121+
You can update approved all media of object
231122
```js
232123
$post->media->approve(); // put approved = true
233124

234125
$post->media->disApprove(); // put approved = false
235126
```
236127
237-
&nbsp;
238128
239-
- You can get the `user` to upload that media
129+
You can get the user to upload that media
240130
```js
241-
// if was HasOneMedia
242-
1 - optional($post->media)->user;
243-
2 - Post::with('media.user')->find(1);
244-
245-
//**********************************************
246-
247-
// if was HasManyMedia
248-
1 - Post::with('media.user')->get();
249-
2 - $post->media->load('user');
131+
$post->media->user;
132+
or
133+
Post::with('media.user')->find(1);
134+
Post::with('media.user')->get();
250135
```
251136
252-
### 🎀 Scope
137+
### Scope
253138
254139
You can get only approved equal true
255140
256141
```js
257142
$post->media->approved(); // approved = true
258143
```
259144
260-
## 🍔 Permanently delete files
261-
262-
Determine `delete_file_after_day` from `config/media.php` must be integer
263-
264-
⭕️ Add Command to crontab of project to implemented automatically
265-
266-
in `app/Console/Kernel.php` add this:
267-
268-
```js
269-
protected function schedule(Schedule $schedule)
270-
{
271-
// .....................
272-
273-
$schedule->command('media:prune')->daily();
274-
}
275-
```
276-
277-
⭕️ implemented manually
278-
279-
```sh
280-
php artisan media:prune
281-
```
282-
283-
## 🎯 License
145+
## License
284146
285147
[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
}
2121
],
2222
"require": {
23-
"php": "^8.0"
23+
"php": "^7.2.5|^8.0",
24+
"illuminate/support": "~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0|^8.0|^9.0"
2425
},
2526
"autoload": {
2627
"psr-4": {
@@ -30,8 +31,7 @@
3031
"config": {
3132
"sort-packages": true
3233
},
33-
"minimum-stability": "dev",
34-
"prefer-stable": true,
34+
"minimum-stability": "stable",
3535
"extra": {
3636
"laravel": {
3737
"providers": [

0 commit comments

Comments
 (0)