canaltp / media-manager
媒体管理组件
此包的官方仓库似乎已消失,因此该包已被冻结。
This package is not auto-updated.
Last update: 2023-05-13 11:44:12 UTC
README
什么是 MediaManager ?
MediaManager 是一个用于管理项目中所有媒体资源的 PHP 组件。(例如:MediaManagerBundle)
要求
无
安装
您需要 composer 来安装 MediaManager。
-
打开项目中的 composer.json 文件
-
添加 require "canaltp/media-manager": "dev-master"
-
添加仓库的 URL,'http://packagist.canaltp.fr'
-
请务必在您的 php.ini 中设置 "post_max_size"、"upload_max_filesize" 和 "max_file_uploads" 选项
// composer.json { ... "require": { ... "canaltp/media-manager": "dev-master" }, "repositories": [ { "type": "composer", "url": "http://packagist.canaltp.fr" }, ... ], ... }
如何使用 MediaManager ?
MediaManager 需要有一个带有 "策略" 的 "公司"。策略用于定义您想要对媒体进行的所有操作的信息。
例如,如果您想使用本地存储来放置媒体,您需要提供以下信息。
// Strategy $params = array( 'company' => array( 'storage' => array( 'type' => 'filesystem', 'path' => '/tmp/my_storage/', ), 'strategy' => 'default' ) );
运行示例
您可以在示例文件夹(example/simple_upload.php)中使用 simple_upload.php,然后运行 simple_listing.php(example/simple_listing.php)来列出所有媒体。
上传示例
$> cd example $> ./simple_upload.php
// example/simple_upload.php use CanalTP\MediaManager\Company\Company; use CanalTP\MediaManager\Company\Configuration\Builder\ConfigurationBuilder; use CanalTP\MediaManager\Media\Builder\MediaBuilder; use CanalTP\MediaManager\Category\CategoryType; use CanalTP\MediaManager\Category\Factory\CategoryFactory; $params = array( 'name' => 'my_company', 'storage' => array( 'type' => 'filesystem', 'path' => '/tmp/MediaManager/', ), 'strategy' => 'default' ); $company = new Company(); $configurationBuilder = new ConfigurationBuilder(); $mediaBuilder = new MediaBuilder(); $categoryFactory = new CategoryFactory(); $company->setConfiguration($configurationBuilder->buildConfiguration($params)); $company->setName($params['name']); $category = $categoryFactory->create(CategoryType::LINE); $category->setName('My_LineCategory'); $media = $mediaBuilder->buildMedia( '../tests/data/CanalTP/sound/jingle_SNCF.mp3', $company, $category ); $company->addMedia($media); echo "\n######### " . $media->getFileName() . " ############\n\n"; echo "Path: " . $media->getPath() . "\n"; echo "BaseName: " . $media->getBaseName() . "\n"; echo "FileName: " . $media->getFileName() . "\n"; echo "Size: " . $media->getSize() . "\n"; echo "Type: " . $media->getType() . "\n"; echo "Extension: " . $media->getExtension() . "\n"; echo "MediaType: " . $media->getMediaType() . "\n"; echo "Company: " . $media->getCompany()->getName() . "\n"; echo "Category: " . $media->getCategory()->getName() . "\n"; echo "\n############################################\n\n"; exit (0);
列出示例
$> cd example $> ./simple_listing.php
// example/simple_listing.php use CanalTP\MediaManager\Company\Company; use CanalTP\MediaManager\Company\Configuration\Builder\ConfigurationBuilder; use CanalTP\MediaManager\Category\CategoryType; use CanalTP\MediaManager\Category\CategoryInterface; use CanalTP\MediaManager\Category\Factory\CategoryFactory; $path = '/tmp/MediaManager/my_company/My_LineCategory/jingle_SNCF.mp3'; if (!file_exists($path)) { echo "Please run \"./simple_upload.php\" before.\n"; exit (0); } $params = array( 'name' => 'my_company', 'storage' => array( 'type' => 'filesystem', 'path' => '/tmp/MediaManager/', ), 'strategy' => 'default' ); $company = new Company(); $configurationBuilder = new ConfigurationBuilder(); $categoryFactory = new CategoryFactory(); $company->setConfiguration($configurationBuilder->buildConfiguration($params)); $company->setName($params['name']); $category = $categoryFactory->create(CategoryType::LINE); $category->setName('My_LineCategory'); $medias = $company->getMediasByCategory($category); foreach ($medias as $media) { echo "\n######### " . $media->getFileName() . " ############\n\n"; echo "Path: " . $media->getPath() . "\n"; echo "BaseName: " . $media->getBaseName() . "\n"; echo "FileName: " . $media->getFileName() . "\n"; echo "Size: " . $media->getSize() . "\n"; echo "Type: " . $media->getType() . "\n"; echo "Extension: " . $media->getExtension() . "\n"; echo "MediaType: " . $media->getMediaType() . "\n"; echo "Company: " . $media->getCompany()->getName() . "\n"; echo "Category: " . $media->getCategory()->getName() . "\n"; echo "\n############################################\n\n"; } exit (0);
运行 MediaManager 测试
要运行测试,您需要安装 phpunit。
$> phpunit
贡献
- Rémy Abi-Khalil - remy.abikhalil@canaltp.fr