meema / laravel-meema
๐ A blazing-fast Laravel adapter for the official Meema API. An API each Laravel developer will feel welcome to.
Requires
- php: ^7.2.5 || ^8.0
- meema/flysystem-meema: @dev
- meema/meema-client-php: dev-main
Requires (Dev)
- orchestra/testbench: ^5.0|^6.0
- pestphp/pest: ^1.0
- pestphp/pest-plugin-laravel: ^1.0
- phpunit/phpunit: ^8.0|^9.3
- vlucas/phpdotenv: ^4.2|^5.3
This package is auto-updated.
Last update: 2024-12-27 14:40:21 UTC
README
The most simple way to integrate Meema and your Laravel project
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 package manager:
composer require meema/laravel-meema
Next, you may want to publish the config file with:
php artisan vendor:publish --provider="Meema\LaravelMeema\Providers\MeemaServiceProvider" --tag="config"
Now, you can easily interact with your "media items" using the Media
facade:
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:
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:
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:
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
./vendor/bin/pest
๐ Changelog
Please see our releases page for more information on what has changed recently.
๐ช๐ผ Contributing
Please see CONTRIBUTING for details.
๐ Community
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
For casual chit-chat with others using this package:
๐จ Security
Please review our security policy on how to report security vulnerabilities.
๐๐ผ Credits
๐ License
The MIT License (MIT). Please see LICENSE for more information.