{"id":18212002,"url":"https://github.com/bedus-creation/laravel-media","last_synced_at":"2025-04-02T18:31:59.137Z","repository":{"id":42027465,"uuid":"224338295","full_name":"bedus-creation/laravel-media","owner":"bedus-creation","description":"Laravel Media Handler package.","archived":false,"fork":false,"pushed_at":"2024-10-03T20:30:23.000Z","size":8828,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T11:50:28.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bedus-creation.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-27T03:43:26.000Z","updated_at":"2024-10-03T20:30:27.000Z","dependencies_parsed_at":"2022-08-12T02:50:10.596Z","dependency_job_id":null,"html_url":"https://github.com/bedus-creation/laravel-media","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bedus-creation%2Flaravel-media","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bedus-creation%2Flaravel-media/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bedus-creation%2Flaravel-media/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bedus-creation%2Flaravel-media/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bedus-creation","download_url":"https://codeload.github.com/bedus-creation/laravel-media/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246869998,"owners_count":20847226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-03T15:04:21.786Z","updated_at":"2025-04-02T18:31:58.901Z","avatar_url":"https://github.com/bedus-creation.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel Media Handler\n\nLaravel Media Handler package.\n\n### Content\n\n1. [Installation](https://github.com/bedus-creation/laravel-media#installation)\n2. [Publish Assets and Migration](https://github.com/bedus-creation/laravel-media#publish-assests)\n3. [Use Trait in model](https://github.com/bedus-creation/laravel-media#add-hasmedia-trait-to-your-model)\n4. [Call from anywhere](https://github.com/bedus-creation/laravel-media#use-with-model-form-whereever)\n5. [Standalone Media](https://github.com/bedus-creation/laravel-media#standalone-media)\n\n### Installation\n\n```\ncomposer require aammui/laravel-media\n```\n**Laravel Compatibility**\n\n| Laravel Version | Role Permission Version | Installation                                      |\n|-----------------|-------------------------|---------------------------------------------------|\n| 10.x            |                         | ```composer require aammui/laravel-media:3.0.0``` |\n| 9.x             | 2.0.0                   | ```composer require aammui/laravel-media:2.0.0``` |\n| 8.x, 7.x, 6.x   | 1.0.0                   | ```composer require aammui/laravel-media:1.0.0``` |\n\n### Publish assests\n\n```\nphp artisan vendor:publish --provider=\"Aammui\\LaravelMedia\\LaravelMediaServiceProvider\"\nphp artisan migrate\n```\n\n### Add ```HasMedia``` Trait to your model.\n\n```php\nuse Aammui\\LaravelMedia\\Traits\\HasMedia;\nuse Illuminate\\Database\\Eloquent\\Model;\n \nclass Document extends Model\n{\n    use HasMedia;\n}\n```\n\n### Use with model form whereever.\n\n```php\n$user-\u003eaddMedia(request()-\u003efile);\n$user-\u003etoCollection('profilePicture')\n    -\u003eaddMedia(request()-\u003efile);\n$user-\u003etoCollection('profilePicture')\n     -\u003etoDisk('public')\n    -\u003eaddMedia(request()-\u003efile);\n$user-\u003etoCollection('profilePicture')\n     -\u003etoDisk('public')\n    -\u003eaddMedia(request()-\u003efile);\n```\n\n### Add Media From URL\n\n```This doesnot download media into your storage.``` It just add url to the database and when your application serve,\nmedia will load from remote url.\n\n```php\n$user-\u003eaddMediaFromUrl('http://example.com/image.jpeg');\n```\n\n##### Download and Add Media From Remote URL.\n\n```php\n$user-\u003esetDownloadTrue()\n    -\u003eaddMediaFromUrl('http://example.com/image.jpeg');\n```\n\n### Retrive media from your model\n\n```php\n$user-\u003egetMedia();\n$user-\u003efromCollection('profilePicture')\n    -\u003efromDisk('local')\n    -\u003egetMedia();\n```\n\n### Setup Responsive images\n\nThe standard responsive image size can be defined into the configuration file. The original image will be resized into\nthe different sizes defined in configuration.\n\n```php\nuse Aammui\\LaravelMedia\\Enum\\Responsive;\n\n'responsive'=\u003e[\n   'responsive' =\u003e [\n        Responsive::SM =\u003e [\n            'w' =\u003e 50,\n            'h' =\u003e 50,\n        ],\n        Responsive::MD =\u003e [\n            'w' =\u003e 150,\n            'h' =\u003e 150,\n        ],\n        Responsive::LG =\u003e [\n            'w' =\u003e 600, // Can define either height or width only.\n        ],\n    ],\n];\n```\n\n##### Only Particular size of image:\n\n```php\n\nuse Aammui\\LaravelMedia\\Facades\\Media;\nuse Aammui\\LaravelMedia\\Enum\\Responsive;\n\nMedia::ofSize([Responsive::SM,Responsive::MD])\n    -\u003eaddMedia(request()-\u003efile);\n```\n\n### Enable Image optimization\n\n```\n'optimize'=\u003etrue\n```\n\n### Standalone Media\n\nSuppose you want to add file which doesnot belong to any model, then you can create standalone media. Use case could be\nyou are storing images in description of some products in ecommerce shop, Where you simply store images in database\nbefore the product form is submitted via api, which returns public image url.\n\n```php\nuse Aammui\\LaravelMedia\\Facades\\Media; // Use Media facade instead\n\nMedia::addMedia(request()-\u003efile); // returns Media Object\nMedia::toCollection('profilePicture')\n    -\u003eaddMedia(request()-\u003efile); // returns Media Object while storing grouping files in profilepicture\nMedia::toCollection('profilePicture')\n    -\u003etoStorage('s3')\n    -\u003eaddMedia(request()-\u003efile); // returns Media Object while storing files in s3\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbedus-creation%2Flaravel-media","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbedus-creation%2Flaravel-media","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbedus-creation%2Flaravel-media/lists"}