承接 enemis/media-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

enemis/media-bundle

Composer 安装命令:

composer require enemis/media-bundle

包简介

Media management system for symfony application, inspired and based on Sonata Media Project

README 文档

README

#Media bundle - the easiest way to manipulate your media.

Какую проблему решаем и что послужило побудило разработать данный проект для управления медия?

Главная проблема sonata media-bundle в том что он является частью экосистемы соната, а значит для управления медиа файлами вам нужно установить:   
    sonata core, sonata block bundle, sonata admin. Но данные бандлы не всегда нужны, например у вас свой админ интерфейс или ваш проект будет конфликтовать с зависимости сонаты. 

Цели проекта:

  • Избавиться от ненужныж зависимостей для проектов
  • Избежать Dependency hell для существующих проектов при интеграции с media-bundle
  • Уменьшить кодовую базу, а значит упростить развитие
  • Увеличить кол-во провайдеров и позволить использовать только нужные провайдеры
  • Реализовать возможность использовать несколько разных наборов entity с разным набором настроек для каждой группы
  • Реализовать легкую интеграцию с Liip imagine
  • Использовать knp_gaufrette для хранения media убрав адаптеры из кода media bundle
  • Оптимизировать хранилища убрав редко используемые поля, оставив при необходимости возможность добавить их. Убраны author_name, copyright

Установка

Добавить в bundles.php:
`    Enemis\MediaBundle\EnemisMediaBundle::class => ['all' => true],
     Knp\Bundle\GaufretteBundle\KnpGaufretteBundle::class => ['all' => true],
     Sonata\Doctrine\Bridge\Symfony\SonataDoctrineSymfonyBundle::class => ['all' => true],`

Настройка

Создание Entities

Создайте сущности для каждого контекста можно использовать одни и теже сущности и таблицы для разных контекстов либо создать разные

### \App\Entity\Media.php
`<?php
 
 declare(strict_types=1);
 
 namespace App\Entity;
 
 use Enemis\MediaBundle\Entity\BaseMedia;
 use Doctrine\ORM\Mapping as ORM;
 use App\Repository\MediaRepository;
 
 /**
  * @ORM\Entity(repositoryClass=MediaRepository::class)
  */
 class Media extends BaseMedia
 {
     /**
      * @ORM\Id()
      * @ORM\GeneratedValue()
      * @ORM\Column(type="integer")
      */
     private $id;
 
     public function getId(): ?int
     {
        return $this->id;
     }
 }`
 
     ### \App\Entity\Gallery.php
     `<?php
      
      declare(strict_types=1);
      
      namespace App\Entity;
      
      use Enemis\MediaBundle\Entity\BaseMedia;
      use Doctrine\ORM\Mapping as ORM;
      use App\Repository\GalleryRepository;
      
      /**
       * @ORM\Entity(repositoryClass=GalleryRepository::class)
       */
      class Gallery extends BaseMedia
      {
          /**
           * @ORM\Id()
           * @ORM\GeneratedValue()
           * @ORM\Column(type="integer")
           */
          private $id;
      
          public function getId(): ?int
          {
             return $this->id;
          }
      }

### \App\Entity\GalleryHasMedia.php<?php

      declare(strict_types=1);
      
      namespace App\Entity;
      
      use Enemis\MediaBundle\Entity\BaseGalleryHasMedia;
      use Doctrine\ORM\Mapping as ORM;
      
      /**
       * @ORM\Entity()
       */
      class GalleryHasMedia extends BaseGalleryHasMedia
      {
          /**
           * @ORM\Id()
           * @ORM\GeneratedValue()
           * @ORM\Column(type="integer")
           */
          private $id;
      
          public function getId(): ?int
          {
              return $this->id;
          }
      }
     `
     
     #Репозитории?
     
     
     Затем нужно выполнить обновить схему базы данных. 
     Для получения звпросов которые должны выполнится выполните
     `$ bin/console doctrine:schema:update --dump-sql`
     
     Для внесение изменений рекомендуется использовать миграции либо если вы только начинаете проект:
     `$ bin/console doctrine:schema:update --force`
     
     Данная команда создаст необходимые таблицы.

Написать про возможность хранение оригиналов на амазон а кеш отдельно

统计信息

  • 总下载量: 11
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-02-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固