pichkrement/messenger

此包已被放弃,不再维护。未建议替代包。

简单L4 Scaffold/框架,用于(组)消息系统

dev-master 2015-03-04 08:54 UTC

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-模型原型

ER-Model

##要求

  • 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 installartisan 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' ))