fenos / rally
laravel 4 的关注者系统
Requires
- php: >=5.4.0
- illuminate/support: ~4.1
Requires (Dev)
- mockery/mockery: ~0.9.1
- phpunit/phpunit: ~4.0
README
关注,让别人关注你,用Rally关注。Rally是一个插件,可以将关注系统实现到你的应用程序中。它快速实现在你的laravel项目中。它给你自由来创建自己的关注者系统。它是多态的,所以你可以关注任何你想关注的人或事物。该包已发布用于laravel 4.*
安装
步骤 1
将其添加到你的 composer.json 文件中
"fenos/rally": "1.0.*"
然后运行 composer update
步骤 2
将以下字符串添加到 app/config/app.php
提供者数组
'Fenos\Rally\RallyServiceProvider'
别名数组
'Rally' => 'Fenos\Rally\Facades\Rally'
步骤 3
迁移
确保你在 app/config/database.php 中的设置是正确的,然后输入迁移
php artisan migrate --package="fenos/rally"
步骤 4
包含关系
Rally已经为你设置了一些关系,你只需要在你的模型中插入我为你制作的 trait
,即可与Rally建立关系。
class User extends Eloquent
{
use \Fenos\Rally\Models\Relations;
}
这就完成了。
文档
正如我在安装说明中所说,Rally可以 多态,这意味着如果你有 Users
和 Teams
作为你的应用程序的实体,它们可以相互关注。但这完全取决于你。如果你发现你不需要它,你可以将其作为单个模型绑定保持。
启用或禁用多态关系的密钥在配置文件中。你只需要推送它们,将多态密钥更改为 true
。如果你只想将插件作为1个模型,但 User
模型不是你的主要模型,请更改它 ;)
php artisan config:publish fenos/rally
关注
要开始关注一个实体(在多态时),你将使用以下方法,让我给你展示。
try
{
Rally::follower('User',$user_id)->follow('Team',$team_id);
}
catch(\Fenos\Rally\Exceptions\AlreadyFollowerException $e)
{
// is already fan
}
只用几行代码,用户就开始关注团队了。
如果你使用 Rally 作为正常
try
{
Rally::follower($user_id)->follow($user_id);
}
catch(\Fenos\Rally\Exceptions\AlreadyFollowerException $e)
{
// is already follower
}
让我来解释一下。方法 follower()
指定要成为关注者的用户,所以如果Rally是多态的,你必须将 first parameter
作为它的模型,将 second parameter
作为ID,如果不是多态的,就只提供ID。几乎与 follow()
方法中的方法相同,在这个方法中,你指定谁将被关注,参数是相同的。
取消关注
如果你不想再关注某人,你将使用这个方法
多态
try
{
Rally::follower('User',$user_id)->unFollow('Team',$team_id);
}
catch(\Fenos\Rally\Exceptions\FollowerNotFoundException $e)
{
// the user already doesn't follow him
}
正常
try
{
Rally::follower($user_id)->unFollow($user_id);
}
catch(\Fenos\Rally\Exceptions\FollowerNotFoundException $e)
{
// the user already doesn't follow him
}
检查是否关注
如果你想了解一个给定的用户是否关注了某人,请使用
多态
Rally::follower('User',$user_id)->isFollowerOf('Team',$team_id);
正常
Rally::follower($user_id)->isFollowerOf($user_id); // return Boolean
获取关注者列表
好了,Rally为你提供了一个简单的方法来获取你的关注者列表,但请记住,你已经实现了具有关系的 trait
,所以你甚至可以直接从那里访问它们,我建议这样做。但让我给你看看如果你想要使用Rally。
多态
Rally::follower('User',$user_id)->getLists();
Rally::follower('User',$user_id)->getLists(['orderBy' => 'DESC', 'limit' => 10]);
Rally::follower('User',$user_id)->getLists(['orderBy' => 'DESC', 'paginate' => 5 ]);
正常
Rally::follower($user_id)->getLists();
Rally::follower($user_id)->getLists(['orderBy' => 'DESC', 'limit' => 10]);
Rally::follower($user_id)->getLists(['orderBy' => 'DESC', 'paginate' => 5 ]);
你甚至可以链式使用 count()
,它返回一个集合,所以你可以使用它所有的方法。
计算关注者数量
你只需要关注者的数量,不需要其他吗?
多态
Rally::follower('User',$user_id)->count();
正常
Rally::follower($user_id)->count();
我希望你会喜欢它。
注意
我用 <3 做了这个
测试
要运行测试,请确保已安装phpUnit和Mockery
致谢
© 版权所有 Fabrizio Fenoglio
在MIT许可证下发布包。