oachoor / rating-bundle
为 Symfony 提供星级评分功能
dev-master
2019-12-19 11:53 UTC
Requires
- php: >=7.2
- doctrine/common: ^2.11
- doctrine/doctrine-bundle: ^1.0 || ^2.0
- doctrine/orm: ^2.6 || ^2.7
- symfony/form: ^4.3 || ^5.0
- symfony/framework-bundle: ^4.3 || ^5.0
- symfony/security-bundle: ^4.3 || ^5.0
- symfony/twig-bundle: ^4.3 || ^5.0
- symfony/validator: ^4.3 || ^5.0
Requires (Dev)
- phpunit/phpunit: ^8.4
- symfony/browser-kit: ^4.3 || ^5.0
- symfony/phpunit-bridge: ^4.3 || ^5.0
Suggests
- symfony/translation: If you want feedback messages to be translated.
This package is auto-updated.
Last update: 2024-09-19 22:30:18 UTC
README
此 Symfony 扩展包提供星级评分系统的集成。
要求
- PHP 7.2+
- MySQL 5.7.20+
- Symfony 4.3+
📦 安装
首先使用 Composer 依赖管理器安装包,运行以下命令
$ composer req oachoor/rating-bundle
添加路由
oa_rating: resource: '@RatingBundle/Controller' type: annotation
(可选) 创建自己的实体
实体不完全满足您的需求?那么您可以根据 Rating 和 Vote 创建自己的。
使用 RatingBundle 或您自定义的实体解决抽象实体
doctrine: orm: resolve_target_entities: RatingBundle\Model\AbstractVote: RatingBundle\Entity\Vote or AcmeRatingBundle\Entity\Vote RatingBundle\Model\AbstractRating: RatingBundle\Entity\Rating or AcmeRatingBundle\Entity\Rating Symfony\Component\Security\Core\User\UserInterface: RatingBundle\Entity\User or AcmeRatingBundle\Entity\User
定义映射包
确保您已注册包含实体的包,如下所示
doctrine: orm: entity_managers: default: mappings: RatingBundle: ~ or AcmeRatingBundle: ~
更新数据库模式
$ bin/console doctrine:schema:update --force --no-debug
使用投票策略
评分有两种策略,基于 IP 地址或 cookie。(都行?欢迎贡献)
oa_rating: strategy: cookie (default "ip") cookie_name: your_custom_name cookie_lifetime: '+1 year'
模板定制
模板可以在 <your-project>/templates/bundles/RatingBundle/ 目录中覆盖,新的模板必须使用与原始模板相同的名称和路径(相对于 RatingBundle/Resources/views/)。
要覆盖 Resources/views/rating/view.html.twig 模板,创建此模板: <your-project>/templates/bundles/RatingBundle/rating/view.html.twig
用法
要查看内容的评分结果(只读模式),使用以下 twig 代码
{{ render( controller( 'RatingBundle:Rating:result', {'contentId': yourContentId} ) ) }}
评分基于内容,要为内容启用投票,使用以下 twig 代码
{{ render( controller( 'RatingBundle:Rating:vote', {'contentId': yourContentId} ) ) }}
示例
一个包含评分调用、javascript 和样式表的 模板。
待办事项
- 使用户依赖项可选。
- 编写一些单元测试。
- 添加测试数据。