Comments (7)
Are you using the ODM or ORM?
from fosmessagebundle.
I am using the ORM.
from fosmessagebundle.
Will you fix the bug ?
from fosmessagebundle.
I believe this issue has been fixed since the time it was reported. Please reopen this issue if it still occurs.
from fosmessagebundle.
No, it isn't!
from fosmessagebundle.
I just tested this against the master branch. It does seem to work (tested with the orm implementation)
There is another bug in it though. If you send a message programatically then you won't get redirected to the message itself. That redirection marks your message as seen. Now that doesn't happen and you'll end up with new messages notifications every time you send a message programatically.
Now imagine you want to send every new user a welcome message. It wouldn't be very fun to see your unread messages increase every time you do that. Only to find out that unseen message isn't even in your inbox but in your sentbox.
This also made me inspect the code a lot more and there is a major problem with the way the objects get created. There is no real builder
This class does it's job very very poorly. It doesn't create a new thread object, it just sets the most basic stuff and then it's up to the rest of the classes to make things work.
An example... If you create a thread, you should create a date when the thread is created. Does that happen there? No
Then where does that happen?
After a lot of looking around it happens in:
* Ensures that the createdBy & createdAt properties are set
*/
protected function doCreatedByAndAt(ThreadInterface $thread)
{
if (!($message = $thread->getFirstMessage())) {
return;
}
if (!$thread->getCreatedAt()) {
$thread->setCreatedAt($message->getCreatedAt());
}
if (!$thread->getCreatedBy()) {
$thread->setCreatedBy($message->getSender());
}
}
So let's examine that code. Basicly what it does is the job of the NewthreadMessageBuilder,
It sets the creation date of the thread. But it does more. It RELIES on the fact that the message->getcreatedAt is set. Now another question is... where did that get set?
So what to do about all this?
IMO the NewThreadMessageBuilder should get a lot more responsabilities. It has to build a thread with a message.
Now back to my bug. Who should set that the sender of a threat has already seen the threat. The newthreadmessagebuilder! Where do I have to fix this now? I have no clue...
from fosmessagebundle.
@Miliooo really great feedback, thanks! I'll keep it in mind for the new version.
from fosmessagebundle.
Related Issues (20)
- FORM TARGETS INSECURE URL HOT 1
- I want to customize form type with custom entity fields HOT 1
- This bundle is obsolete? HOT 2
- How get all user threads HOT 1
- The service "fos_user.resetting.controller" has a dependency on a non-existent service "templating". HOT 3
- How add custom field in Thread HOT 1
- fos message alert by mail HOT 2
- The project has been abandoned? HOT 1
- Symfony 4 / v2 / is this bundle obsolete? HOT 14
- multiple recipients exists but isn't referenced in the documentation
- automated tests HOT 3
- sort through pull requests HOT 1
- packagist web hook HOT 8
- Is form submitted HOT 1
- The "Symfony\Component\Config\Definition\Builder\TreeBuilder::root()" method called for the "fos_message" configuration is deprecated since Symfony 4.3, pass the root name to the constructor instead. HOT 1
- What's the status of this bundle? Will it be updated to support [Popular/Latest Symfony version X]? HOT 3
- docker composer install HOT 1
- Symfony 4, Twig 3 and FosMessage 2 HOT 1
- Nasreddine HOT 1
- Twig MessageExtension method getNbUnread() should return an int instead of null
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fosmessagebundle.