dev-master
9999999-dev https://github.com/dmecke/MessageBundleA user-to-user message bundle for Symfony2
MIT
The Requires
by Contributors
by Daniel Mecke
message communication
Wallogit.com
2017 © Pedro Peláez
A user-to-user message bundle for Symfony2
Add the following to your composer.json file:, (*1)
// composer.json
{
// ...
require: {
// ...
"cunningsoft/message-bundle": "0.1.*"
}
}
Run composer update cunningsoft/message-bundle to install the new dependencies., (*2)
Register the new bundle in your AppKernel.php:, (*3)
<?php
// in AppKernel::registerBundles()
$bundles = array(
// ...
new Cunningsoft\MessageBundle\CunningsoftMessageBundle(),
// ...
);
Let your user entity implement the Cunningsoft\MessageBundle\Entity\UserInterface:, (*4)
// Acme\ProjectBundle\Entity\User.php
<?php
namespace Acme\ProjectBundle\Entity;
use Cunningsoft\MessageBundle\Entity\UserInterface as MessageUserInterface;
class User implements MessageUserInterface
{
/**
* @var int
*/
protected $id;
/**
* @var string
*/
protected $username;
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return string
*/
public function getUsername()
{
return $this->username;
}
// ...
Map the interface to your user entity in your config.yml:, (*5)
// app/config/config.yml
// ...
doctrine:
orm:
resolve_target_entities:
Cunningsoft\MessageBundle\Entity\UserInterface: Acme\ProjectBundle\Entity\User
Update your database schema:, (*6)
$ app/console doctrine:schema:update
Import routes:, (*7)
// app/config/routing.yml
// ...
cunningsoft_message_bundle:
resource: "@CunningsoftMessageBundle/Controller"
type: annotation
Link to the messages list:, (*8)
// src/Acme/ProjectBundle/Resources/views/Default/index.html.twig
// ...
<a href="{{ path('cunningsoft_message_list') }}">messages</a>
// ...
Create a child bundle to fetch users, (*9)
mkdir src/Acme/MessageBundle
// src/Acme/MessageBundle/AcmeMessageBundle.php
<?php
namespace Acme\MessageBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AcmeMessageBundle extends Bundle
{
public function getParent()
{
return 'CunningsoftMessageBundle';
}
}
// src/Acme/MessageBundle/Controller/MessageController.php
<?php
namespace Acme\MessageBundle\Controller;
use Cunningsoft\MessageBundle\Controller\MessageController as BaseController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
/**
* @Route("/message")
*/
class MessageController extends BaseController
{
public function findUser($id)
{
return $this->get('doctrine.orm.entity_manager')->getRepository('AcmeProjectBundle:User')->find($id);
}
public function findAllUsers()
{
return $this->get('doctrine.orm.entity_manager')->getRepository('AcmeProjectBundle:User')->findAll();
}
}
A user-to-user message bundle for Symfony2
MIT
message communication