Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/meemalabs/laravel-meema

๐Ÿ A blazing-fast Laravel adapter for the official Meema API. An API each Laravel developer will feel welcome to.
https://github.com/meemalabs/laravel-meema

api file-manager image-editing laravel media media-management meema php video-converter video-streaming

Last synced: about 1 month ago
JSON representation

๐Ÿ A blazing-fast Laravel adapter for the official Meema API. An API each Laravel developer will feel welcome to.

Awesome Lists containing this project

README

        



Meema for Laravel

The most simple way to integrate Meema and your Laravel project


Scrutinizer
Total Downloads
Latest Version
License


Documentation โ€ข
PHP Client โ€ข
Report a bug โ€ข
FAQ โ€ข
Discord

## ๐Ÿ™ Features

- Most simple way to implement a fully-functional media management system & more
- Thin, minimal & fast package to interact with Meema's API
- Supports PHP `^7.*`

## ๐Ÿ’ก Usage

First, install Meema Laravel Client via the [composer](https://getcomposer.org/) package manager:

```bash
composer require meema/laravel-meema
```

Next, you may want to publish the config file with:

```bash
php artisan vendor:publish --provider="Meema\LaravelMeema\Providers\MeemaServiceProvider" --tag="config"
```

Now, you can easily interact with your "media items" using the `Media` facade:

```php
use Meema\LaravelMeema\Facades\Media;

Media::create('New media name');
Media::get();

// specific uuids
Media::get('11a283ed-a64e-424a-aefc-6aa98971d529', '1556fcb8-693e-4431-8b16-3b2b7bb8fcc7');
Media::search('media-name');

// this will return a Response instance
$media = Media::find('11a283ed-a64e-424a-aefc-6aa98971d529');

// you may chain other methods that require an id
$media->update('updated-media-name')
$media->delete();
$media->archive();
$media->unarchive();
$media->makePrivate();
$media->makePublic();
$media->duplicate();

// Relationships with other models.
// Continuing with the chaining methods we used earlier.
$media->folders()->get();
$media->folders()->create('New folder name');
$media->folders()->delete('11a283ed-a64e-424a-aefc-6aa98971d529');
$media->tags()->get();
$media->tags()->associate(['name' => 'Tag Name']);
$media->tags()->disassociate(['name' => 'Tag Name']);
```

Using the `Folder` facade:

```php
use Meema\LaravelMeema\Facades\Folder;

Folder::create('New folder name');
Folder::get();

// specific uuids
Folder::get('11a283ed-a64e-424a-aefc-6aa98971d529', '1556fcb8-693e-4431-8b16-3b2b7bb8fcc7');
Folder::search('folder-name');

// this will return a Response instance
$folder = Folder::find('11a283ed-a64e-424a-aefc-6aa98971d529');

// you may chain other methods that require an id
$folder->update('updated-folder-name')
$folder->delete();
$folder->archive();
$folder->unarchive();
$folder->duplicate();

// Relationships with other models.
// Continuing with the chaining methods we used earlier.
$folder->media()->get();
$folder->tags()->get();
$folder->tags()->associate(['tag_id' => 7]);
$folder->tags()->disassociate(['tag_id' => 7]);
```

Using the `Tag` facade:

```php
Tag::get();

// specific uuids
Tag::get(1, 2, 3);

// this will return a Response instance
$tag = Tag::find(1);

// you may chain other methods that require an id
$tag->update('red-500'); // You will have to use tailwind CSS color palettes.
$tag->delete();
$tag->media()->get();
```

Using the `Favorite` facade:

```php
Favorite::create(['name' => 'New Favorite Name', 'icon' => 'favorite-icon']);
Favorite::get();

// specific uuids
Favorite::get('11a283ed-a64e-424a-aefc-6aa98971d529', '1556fcb8-693e-4431-8b16-3b2b7bb8fcc7');

// this will return a Response instance
$favorite = $client->favorites()->find(1);

// you may chain other methods that require an id
$favorite->update(['name' => 'Updated Favorite Name', 'icon' => 'updated-favorite-icon']);
$favorite->delete();
```

## ๐Ÿงช Testing

``` bash
./vendor/bin/pest
```

## ๐Ÿ“ˆ Changelog

Please see our [releases](https://github.com/meemalabs/laravel-meema/releases) page for more information on what has changed recently.

## ๐Ÿ’ช๐Ÿผ Contributing

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

## ๐Ÿ Community

For help, discussion about best practices, or any other conversation that would benefit from being searchable:

[Laravel Meema on GitHub](https://github.com/meemalabs/laravel-meema/discussions)

For casual chit-chat with others using this package:

[Join the Meema Discord Server](https://discord.meema.io)

## ๐Ÿšจ Security

Please review [our security policy](https://github.com/meemalabs/laravel-meema/security/policy) on how to report security vulnerabilities.

## ๐Ÿ™๐Ÿผ Credits

- [Chris Breuer](https://github.com/Chris1904)
- [All Contributors](../../contributors)

## ๐Ÿ“„ License

The MIT License (MIT). Please see [LICENSE](LICENSE.md) for more information.