pichkrement / messenger
简单L4 Scaffold/框架,用于(组)消息系统
Requires
- illuminate/support: 4.x
- laravel/framework: 4.*
Requires (Dev)
- mockery/mockery: dev-master
This package is not auto-updated.
Last update: 2021-01-22 20:10:29 UTC
README
请使用https://github.com/cmgmyr/laravel-messenger代替。此包已弃用。
#L4 Messenger
Laravel4的基本消息系统
介绍
此包的主要目的是提供一个适合基于laravel 4(或兼容框架)的扩展通信平台的基座。
##概览您有很多用户并且他们想要聊天?这太简单了!我们扩展了标准Laravel用户模型以满足这些要求。
- 用户有很多对话
- 一个对话属于许多用户
- 一条消息属于一个单独的对话
- 一个对话由许多消息组成
ER-模型原型
##要求
- Eloquent ORM
##安装
首先,将源代码集成到您的项目中。您可以通过将包名添加到您的composer.json文件中并调用更新函数来完成此操作
您将在项目的composer文件中找到一个“require”部分(用两个大括号括起来)。请在那里添加给定的行(项目名称和版本)。不同的包要求应该用逗号分开,但最后一个不应结束!
有效的composer.json文件的示例
{ "name": "company/yourproject", "description": "some bla bla", "keywords": ["framework", "laravel"], "license": "free like free beer", "require": { "laravel/framework": "4.0.*", "pichkrement/messenger": "dev-master" }, "autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan optimize" ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-create-project-cmd": [ "php artisan key:generate" ] }, "config": { "preferred-install": "dist" }, "minimum-stability": "dev" }
现在您必须更新您的更改并集成它。在项目的基目录中(这是./app ./public和./src的父文件夹)调用composer install和artisan migrate命令
composer install && composer dump-autoload php artisan migrate --package "pichkrement/messenger"
如果第一个命令不起作用,您应该检查您的composer安装!它是否已安装并且全局可用?(您可以在此处找到最好的安装指南之一)。第二个命令迁移数据库(如果抛出错误,可能是您的数据库尚未配置。请参阅此页以获取更多详细信息)
使用
恭喜!现在您可以使用laravel4消息系统了。
只需扩展您的Eloquent ORM模型(app/models/*)以使用消息基础模型(Message、User和Conversation)。它应该看起来像这样
// app/models/Conversation.php <?php class Conversation extends Pichkrement\Messenger\Models\Conversation {}
// app/models/Message.php <?php class Message extends Pichkrement\Messenger\Models\Message {}
// app/models/User.php <?php class User extends Pichkrement\Messenger\Models\User {}
示例
现在您可以像专业人士一样使用它。
创建新的对话并添加消息
//create new Conversation $c1 = Conversation::create( array( 'name' => 'some name' ) ); //add authenticated User $c1->users()->attach(Auth::user()->id); //create new Message Message::create( array( 'content' => "Hello World!" , 'user_id' => Auth::user()->id, 'conversation_id' => $c1->id ) ); //add other participants $c1->addUser(array(/* some user id's please */)); //or using the alternative Syntax $c2 = new Conversation; $c2->name = "some name"; $c2->save(); //add all available users (untested) $c2->addUser( array_fetch(User::all()->toArray(), 'id') );
获取数据
//get all Messages from a single conversation as array $data = Conversation::findOrFail($id)->messages()->get()->toArray(); //get all conversations from the authenticated user $data = Auth::user()->conversations()->get()->toArray(); //get one attribute form all members of a conversation (here the firstname) array_fetch( Conversation::find($conv_id)->users->toArray(), 'firstname' ))