PHPackages                             grcs/internal-messages-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. grcs/internal-messages-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

grcs/internal-messages-bundle
=============================

GrcsInternalMessages - The Internal Messages System for your Symfony 2 application

v1.0(12y ago)1168MITPHPPHP &gt;=5.3.0

Since Oct 21Pushed 12y ago2 watchersCompare

[ Source](https://github.com/Graceas/GrcsInternalMessagesBundle)[ Packagist](https://packagist.org/packages/grcs/internal-messages-bundle)[ Docs](http://github.com/Graceas/GrcsInternalMessagesBundle)[ RSS](/packages/grcs-internal-messages-bundle/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

GrcsInternalMessages - The Internal Messages System for your Symfony 2 application
==================================================================================

[](#grcsinternalmessages---the-internal-messages-system-for-your-symfony-2-application)

Inspired by FOSMessageBundle ()

License:

```
see LICENSE

```

Installation
============

[](#installation)

1. Add InternalMessagesBundle to your vendor/ dir

Through composer:

```
"require": {
    ...
    "grcs/internal-messages-bundle": "dev-master"
    ...
}

```

2. Add InternalMessagesBundle to your application kernel

    // app/AppKernel.php

    public function registerBundles() { return array( // ... new Grcs\\InternalMessagesBundle\\GrcsInternalMessagesBundle(), // ... ); }
3. Configure your project

    app/config/config.yml
    =====================

    [](#appconfigconfigyml)

    grcs\_internal\_messages: entity: message\_class: 'Grcs\\FrontendBundle\\Entity\\InternalMessages' user\_class: 'Grcs\\SecurityBundle\\Entity\\User' view: date\_format: 'Y/m/d H:i' #format for createdAt DateTime truncate\_len: 50 #(int|false) truncate text body in the list sort\_by\_created: 'desc' #(asc|desc|false) sort\_by\_is\_read: false #(asc|desc|false) knp\_pagination\_enable: true #(true|false) enable knp pagination on the page knp\_pagination\_limit\_per\_page: 30 #(int|null) knp pagination limit per page templates: layout: 'GrcsInternalMessagesBundle::layout.html.twig' view: 'GrcsInternalMessagesBundle::view.html.twig' create: 'GrcsInternalMessagesBundle::create.html.twig' reply: 'GrcsInternalMessagesBundle::reply.html.twig' inbox: 'GrcsInternalMessagesBundle::inbox.html.twig' outbox: 'GrcsInternalMessagesBundle::outbox.html.twig' forms: new\_message\_form: factory: 'grcs.internal\_messages.new\_message\_form.factory' type: 'grcs.internal\_messages.new\_message\_form.type' handler: 'grcs.internal\_messages.new\_message\_form.handler' name: 'message' reply\_form: factory: 'grcs.internal\_messages.reply\_form.factory' type: 'grcs.internal\_messages.reply\_form.type' handler: 'grcs.internal\_messages.reply\_form.handler' name: 'reply'
4. Change your 'user\_class'

    // for example (!) src/Grcs/SecurityBundle/Entity/User.php use Grcs\\InternalMessagesBundle\\Model\\ParticipantInterface; class User implements ParticipantInterface { // ... public function isCanSendMessageToUser(ParticipantInterface $user) { // you can set 'can send message' logic here return true; }

    ```
     public function isCanReceiveMessageFromUser(ParticipantInterface $user)
     {
         // you can set 'can receive message' logic here
         return true;
     }

    ```

    // ... }
5. Create/modify your 'message\_class'. You may add another fields or methods to model class.

    // src/Your/Bundle/Entity/YourMessages.php // ... use Grcs\\InternalMessagesBundle\\Entity\\Message as BaseMessages; // ... class YourMessages extends BaseMessages { // ... and implement all parent methods // ... }

OR

```
Copy Entity from vendor/grcs/internal-messages-bundle/Grcs/InternalMessagesBundle/Entity/YourMessage.php
to your Entity folder (src/Your/Bundle/Entity/YourMessages.php).
Change namespace Your\EntityNamespace\Entity and class name.
Change User targetEntity for $sender and $recipient. (Your\EntityNamespace\Entity\User)
Change Message targetEntity for $parentMessage. (Your\EntityNamespace\Entity\YourMessage)

```

6. Register routing

You will probably want to include the built-in routes.

In YAML:

```
# app/config/routing.yml

internal_messages:
    resource: '@GrcsInternalMessagesBundle/Resources/config/routing.xml'
    prefix: /optional_routing_prefix

```

Or if you prefer XML::

```
# app/config/routing.xml

```

Templating
==========

[](#templating)

InternalMessagesBundle provides a few twig functions::

```
{# template.html.twig #}

{# Get the number of new messages for the authenticated user #}
You have {{ grcs_internal_message_unread_count() }} new messages

{# Get the number of total messages in the inbox for the authenticated user #}
You have {{ grcs_internal_message_inbox_count() }} messages it the inbox

{# Get the number of total messages in the outbox for the authenticated user #}
You have {{ grcs_internal_message_outbox_count() }} messages it the outbox

{# Get allowed actions list for the message of this authenticated user #}
{% for action, value in grcs_internal_message_allowed_actions(message) %}

        {{ action|trans() }}

{% endfor %}

```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

4629d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bd86282716d0a29e62ac25f6b5ad3e03bf3155700437aba1da4829f8b46d974a?d=identicon)[Graceas](/maintainers/Graceas)

---

Top Contributors

[![Graceas](https://avatars.githubusercontent.com/u/3995794?v=4)](https://github.com/Graceas "Graceas (8 commits)")

---

Tags

bundleSymfony2messagesinboxprivate messageoutboxInternal Messages System

### Embed Badge

![Health badge](/badges/grcs-internal-messages-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/grcs-internal-messages-bundle/health.svg)](https://phpackages.com/packages/grcs-internal-messages-bundle)
```

###  Alternatives

[stfalcon/tinymce-bundle

This Bundle integrates TinyMCE WYSIWYG editor into a Symfony2 project.

2552.9M24](/packages/stfalcon-tinymce-bundle)[dmishh/settings-bundle

Database centric Symfony configuration management. Global and per-user settings supported.

114256.9k1](/packages/dmishh-settings-bundle)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1155.2k](/packages/rcsofttech-audit-trail-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
