定制 masterflash-ru/stream 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

masterflash-ru/stream

Composer 安装命令:

composer require masterflash-ru/stream

包简介

Разные ленты, например новостей

README 文档

README

модуль работы с лентами статей, новостей.... После установки следует загрузить в базу дамп из папки data, скопируйте стили css из папки public в файл стилей приложения Если требуется удалить модуль, загрузите дамп deinstall.sql, он удаляет все из базы.

Установка composer require masterflash-ru/stream

Добавьте в конфиг приложения:

//определение вначале файла, для указания в маршруте
use Mf\Stream\Controller\IndexController as Stream;

....

'streams'=>[
        "config"=>[                                       /*если имена базы и кеша отличны от значения по умолчанию:*/
            "database"  =>  "DefaultSystemDb",            /*Имя базы данных с которой работаем*/
            "cache"     =>  "DefaultSystemCache",         /*имя кеша с которым работаем*/
        ],
        "categories"=>[
              'news'=>[                                   /*раздел ленты*/
                  'description'=>'Новости',               /*ОБЯЗАТЕЛЬНО Имя ленты*/
                  'pagination'=> [                        /*параметры вывода страниц, здесь указаны параметры по умолчанию*/
                       'paginationControl'=> [
                         'tpl'=>'simba',                  /*шаблон вывода номеров страниц, по умолчанию внутренний, можно bootstrap4, см. пакет masterflash-ru/navigation*/
                         'ScrollingStyle'=> 'Sliding',    /*стиль прокрутки номеров, допускается All, Elastic, Jumping, Sliding - по умолчанию*/
                        ],
                  'ItemCountPerPage' => 10,               /*кол-во элементов при просмотре анонсов*/
                  'PageRange' =>   10                     /*кол-во ссылок для перехода на другие страницы списка*/
                  ],
                 'tpl' => [                               /*НЕ обязательно, указаны параметры по умолчанию*/
                     'index' => 'stream/index/index',     /*шаблон вывода списка статей*/
                     'detal' => 'stream/index/detal',     /*шаблон вывода подробностей статьи*/
                 ],
                 'layout' => null,                        /*имя макета в котором выводится, по умолчанию текущий*/
              ],
        ],


],

Для хранения изображений используется masterflash-ru/storage, поэтому в конфиг приложения нужно добавить фрагмент, аналогичный данному:

/*хранилище и обработка (ресайз) фото и других файлов*/
    "storage"=>[
        'data_folder'=>"data/datastorage",
        'file_storage'=>[
            'default'=>[
                'base_url'=>"media/pics/",
            ],
        ],

        'items'=>[
            /*хранилище для ленты новостей, ключ это имя секции, которая используется для работы
            он же является именем раздела, под которым записываются и считываются файлы*/
            "news"=>[
                "description"=>"Хранение фото новостей",
                'file_storage'=>'default',
                'file_rules'=>[
                            'admin_img'=>[
                                'filters'=>[
                                        CopyToStorage::class => [
                                                    'folder_level'=>0,
                                                    'folder_name_size'=>3,
                                                    'strategy_new_name'=>'md5'
                                        ],
                                        ImgResize::class=>[
                                                    "method"=>2,
                                                    "width"=>250,
                                                    "height"=>150,
                                                    'adapter'=>Gd::class,
                                        ],
    
                                ],
                                'validators' => [
                                        IsImage::class=>[],
                                        ImageSize::class => [
                                            'minWidth' => 222,
                                            'minHeight' => 166,
                                    ],
                                ],
                            ],
                            'anons'=>[
                                'filters'=>[
                                        CopyToStorage::class => [
                                                    'folder_level'=>0,
                                                    'folder_name_size'=>3,
                                                    'strategy_new_name'=>'md5'
                                        ],
                                        ImgResize::class=>[
                                                    "method"=>1,
                                                    "width"=>222,
                                                    "height"=>166,
                                                    'adapter'=>'gd',
                                        ],
                                ],
                            ],
                ],
            ],//news
        ],
    ],

Добавьте в конфиг приложения маршрут:

        //маршрут для подробности
        'stream_detal_ru_RU' => [
             'type' => Segment::class,
             'options' => [
                  'route'    => '/:stream/:url',
                  'constraints' => [
                        'url' => '[a-zA-Z0-9_\-]+',
                         'stream' => 'news|articles',
                  ],
                 'defaults' => [
                     'controller' => Stream::class,
                     'action'     => 'detal',
                     'locale'=>'ru_RU'
                 ],
            ],
        ],

        //список новостей
        'stream_ru_RU' => [
            'type' => Segment::class,
                'options' => [
                    'route'    => '/:stream[/page/:page]',
                    'constraints' => [
                          'stream' => 'news|articles',
                          'page' => '\d+',
                    ],
                    'defaults' => [
                        'controller' => Stream::class,
                        'action'     => 'index',
                        'page'=>0,                /*<= обязательно 0 !!!!*/
                        'locale'=>'ru_RU'
                    ],
                ],
         ],

Модуль предоставляет помощник вывода последних статей, использование:

/*сценарий view
Опции в помощник (массив):
[
     "locale"=>"ru_RU",          //имя локали
     "items"=>3,                 //кол-во элементов в выводе последних статей
     "tpl"=>"lastdefault",       //сценарий генерации HTML
]

*/

echo $this->laststream('имя_ленты',[опции]);

В конфиге приложения должны быть настройки кэша с именем 'DefaultSystemCache':

    'caches' => [
        'DefaultSystemCache' => [
            'adapter' => [
                'name'    => Filesystem::class,
                'options' => [
                    'cache_dir' => './data/cache',
                    'ttl' => 60*60*2 
                ],
            ],
            'plugins' => [
                [
                    'name' => Serializer::class,
                    'options' => [
                    ],
                ],
            ],
        ],
    ],

Для работы с базой в конфиге приложения должно быть объявлено DefaultSystemDb:

......
    "databases"=>[
        //соединение с базой + имя драйвера
        'DefaultSystemDb' => [
            'driver'=>'MysqlPdo',
            //"unix_socket"=>"/tmp/mysql.sock",
            "host"=>"localhost",
            'login'=>"root",
            "password"=>"**********",
            "database"=>"simba4",
            "locale"=>"ru_RU",
            "character"=>"utf8"
        ],
    ],
.....

masterflash-ru/stream 适用场景与选型建议

masterflash-ru/stream 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 135 次下载、GitHub Stars 达 1, 最近一次更新时间为 2017 年 10 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「masterflash」 「laminas」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 masterflash-ru/stream 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 masterflash-ru/stream 我们能提供哪些服务?
定制开发 / 二次开发

基于 masterflash-ru/stream 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2017-10-08