softservlet / friendship
Requires
- php: >=5.3.0
- illuminate/support: 4.1.*
This package is not auto-updated.
Last update: 2024-09-28 15:28:56 UTC
README
软件包描述
一个 Laravel 软件包,提供两个实体之间的“友谊”管理。在这个软件包中,关系被称为“友谊”,但您可以使用此插件来管理两个实体之间的任何关系。
安装
该软件包仅针对 Laravel 4 框架实现。
- 运行数据库迁移
php artisan --bench=softservlet\friendship
- 将提供者添加到 app/config/app.php 数组的 'providers' 索引中
'Softservlet\Friendship\Laravel\Providers\LaravelFriendshipServiceProvider'
- 定义实体。
该软件包将创建实体对象的责任留给您。以下示例将说明如何创建一个在您的应用程序中定义的 App\User\User 对象之间的友谊。
您的对象必须实现 FriendableInterface,因此您可以在 App\User 中有以下的类。
<?php namespace App\User; use Softservlet\Friendship\Core\FriendableInterface; class User implements FriendableInterface { //your User implementation here }
- 配置服务提供者
由于该软件包允许您定义自己的实体,因此服务提供者需要知道这些实体,让我们编辑它。在上面的示例中,我们在 App\User\User 中定义了我们的实体,打开 softservlet/friendship/src/Softservlet/Friendship/Laravel/Providers/LaravelFriendshipServiceProvider 并替换
$this->app->bind('Softservlet\Friendship\Core\FriendableInterface', 'Friends\User\User');
为
$this->app->bind('Softservlet\Friendship\Core\FriendableInterface', 'App\User\User');
如何使用
以下是如何在 Laravel 环境中使用的一个示例
让我们编写一些代码来查看如何建立两个实体之间的友谊连接。
<?php class FriendshipController extends BaseController { public function __construct(FriendableInterface $friendable) { $this->friendable = $friendable; } public function createFriendship() { $actor = $this->friendable->find(1); //the friendable object with id 1 $user = $this->friendable->find(2); //create a instance of Friendship object $friendship = App::make('Softservlet\Friendship\Core\FriendshipInterface', array('actor' =>$actor, 'user'=> $user)); //actor sends a friendship request to user $friendship->send(); } public function acceptFriendship() { //define actor and user friendable objects //create a friendable object $friendship->accept(); } }
文档
友谊对象
假设 $friendship 是一个实例,如上所示,带有 $actor 和 $user 作为参数,我们有
$friendship->send()- 从 $actor 向 $user 发送友谊请求$friendship->accept()- $actor 将接受 $user 的友谊(如果存在的话)$friendship->deny()- $actor 将拒绝 $user 的友谊(如果存在的话)$friendship->delete()- $actor 将删除与 $user 的连接(如果存在的话)$friendship->exists($status)- 返回布尔值,表示 $actor 和 $user 之间是否存在友谊。$status 参数表示在 FriendshipEloquent 中定义的友谊状态
仓库对象
我们已经看到了如何创建友谊、接受、拒绝和删除它,让我们看看如何获取我们所做的对象友谊的信息。
定义的方法
$repository = App::make('Softservlet\Friendship\Core\FriendshipRepositoryInterface', array('actor' => $user));
定义的方法
$repository->getPendingFriendships()- 返回一个数组,包含其他人发送给 $actor 的待定友谊$repository->getDeniedFriendships()- 返回一个数组,包含其他人发送给 $actor 的拒绝友谊$repository->getAllFriendships()- 返回一个数组,包含所有友谊$repository->getAcceptedFriendships()- 返回一个数组,包含所有接受友谊,无论发送者是谁