MyBB Community Forums

Full Version: MyBB2 _ based on Laravel or YII ??
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
Hi Lennart,

MyBB has previously (as I'm sure you remember) had an ideas section in which the community could submit and vote upon ideas. I'm also sure you can remember how that ended up - with many duplicate suggestions and suggestions for features that were either already in the core or had been previously decided would be best suited as plugins (such as hundreds of requests for image galleries, download sections, shops, etc.).

We've been trying to follow a middle of the road approach with MyBB 2.0 development, with the team suggesting features internally, then asking members for feedback and ideas. Unfortunately, this process hasn't really been done in one specific location and has been spread across many threads and forums. We do listen to member feedback and ideas and take them into account during development.

Regarding the framework choice, we did listen to community feedback. When we announced (a long time ago) that we'd be using Yii, there was a lot of negative feedback regarding that choice - both here and on other mediums such as Twitter. One of the alternative frameworks suggested most frequently was Laravel, along with Symfony. We listened to this feedback and investigated alternative frameworks. Combined with the extremely long development cycle for Yii 2.0 (not quite as long as ours, and the framework has turned out to be a great product), we started to investigate the alternatives much more thoroughly. Laravel came out on top due to it's large community providing support, the wealth of supporting third (and first) party libraries to extend the framework (allowing much more rapid development on our parts), the modern approach to PHP development, the support for unit testing and mocking straight out of the box, the extensive usage of Composer, and more led to it coming out on top.

Regarding having no idea where we are heading, that is certainly currently an issue. We plan to have a public roadmap for the future of MyBB 2.0 soon (likely as soon as we open source the repositories). We will also be holding public Alphas, Betas and Release Candidates to consult community feedback and suggestions. Of course, the repositories will also be open to Pull Requests with code (and/or) documentation contributions.

PS: on a side note:

Quote:And Laravel 5 is pretty new so I don't think anybody knows that framework so well.

Laravel 5 is an incremental upgrade to 4.0. Both me and Will P. work with Laravel 5 (and previously 4) extensively at our places of work, so we are pretty familiar with the framework and how the internals operate.

I hope that answers your concerns and provides some insight upon our plans and the future. I recently took over the position of leading development, and have several plans for the future of the project.
(2015-05-09, 04:20 PM)Euan T Wrote: [ -> ]Hi Lennart,

MyBB has previously (as I'm sure you remember) had an ideas section in which the community could submit and vote upon ideas. I'm also sure you can remember how that ended up - with many duplicate suggestions and suggestions for features that were either already in the core or had been previously decided would be best suited as plugins (such as hundreds of requests for image galleries, download sections, shops, etc.).
That was the one I refered to in my last post  Wink
Yes the management of the idea section was not done in the best way but the section brought some good ideas to implementation and you could actually see what moved the community.
And requests for image galleries for example could have had let to some sort of REST/API integration with coppermine (solved finally as a plugin/bridge as far as I remember).

(2015-05-09, 04:20 PM)Euan T Wrote: [ -> ]We've been trying to follow a middle of the road approach with MyBB 2.0 development, with the team suggesting features internally, then asking members for feedback and ideas. Unfortunately, this process hasn't really been done in one specific location and has been spread across many threads and forums. We do listen to member feedback and ideas and take them into account during development.
It's spread widely and people like me don't actually have the time to follow every subthread here. I usually have a deep look into the github issues at other projects but that's not possible here at MyBB aswell.
Could be improved. But as you wrote:
(2015-05-09, 04:20 PM)Euan T Wrote: [ -> ]We do listen to member feedback and ideas and take them into account during development.
That's the definition of community supported, not community driven  Smile
And it's okay.

(2015-05-09, 04:20 PM)Euan T Wrote: [ -> ]Laravel came out on top due to it's large community providing support, the wealth of supporting third (and first) party libraries to extend the framework (allowing much more rapid development on our parts), the modern approach to PHP development, the support for unit testing and mocking straight out of the box, the extensive usage of Composer, and more led to it coming out on top.
And these sentences would have been great if posted before the decision has been made. Together with a comparison chart.
Example:
Framework | Size of community | support of third party applications | modern approach | unit testing
Laravel 5 | huge | yes | yes | yes | yes
YII 2 | small | partly | yes | partly
ZF 2 | huge | yes | nope | partly

And the result is that the devs will go for X because the points Y and Z are most important for a bulletin board software.

Maybe you can take that into account for further decisions. For example if you decide that you want to go via composer only installation (which would probably mean the end of MyBB being used in some projects from our company). Or that attachments will be handled by dropbox or owncloud. Why not - if there is an explanation for it.


(2015-05-09, 04:20 PM)Euan T Wrote: [ -> ]Regarding having no idea where we are heading, that is certainly currently an issue. We plan to have a public roadmap for the future of MyBB 2.0 soon (likely as soon as we open source the repositories). We will also be holding public Alphas, Betas and Release Candidates to consult community feedback and suggestions. Of course, the repositories will also be open to Pull Requests with code (and/or) documentation contributions.

And I am looking forward to everything of it. I'm looking forward to read what you will be doing and why. And if you are unsure, you can always ask your community here. It'll probably go for image galleries  Big Grin

PS: on a side note:


(2015-05-09, 04:20 PM)Euan T Wrote: [ -> ]Laravel 5 is an incremental upgrade to 4.0. Both me and Will P. work with Laravel 5 (and previously 4) extensively at our places of work, so we are pretty familiar with the framework and how the internals operate.

I'm working extensively with YII too but I could not tell wether you should base an instant messenger on it or not or what other framework would be best suited. I'd first get the requirements (AJAX, fast write/read possibilities, probably NoSQL support...) and decide based on that facts.
If you know one framework, you can handle them all. Well, maybe except for CI.
I worked with Zend, YII, Symfony, Laravel and CakePHP and they all follow the same standards more or less. And they are all more or less suited for specific projects. They key question in my opinion is what the requirements are and which framework fits them best.

Apparently, Laravel fits best for MyBB 2.0 because you and Will are familiar with it and will do most of the development work, because you want to rapidly build the new application and don't want to use Ruby on Rails but expect Laravel and a bunch of other third party php classes to support that cause.
MVC is standard at modern frameworks, composer seems to be important for MyBBs future - Laravel handles that well (as does YII and Zend btw). Unit testing is indeed a nice touch, looking forward to less bugs in MyBB 2.0 with that.
Another benefit of Laravel that I forgot to mention is it's support for standards such as PSR-4 and other upcoming standards (and soon support for PSR-2). We aim to follow these standards in order to ease the transition for developers who may not be familiar with MyBB and who may never have worked with it before. We aim to be able to appeal to many more developers as well as users, in order to grow MyBB not just as a forum application, but as a platform. MyBB has always enjoyed huge support from our plugin developers, designers and other third party developers. We aim to further and build upon that support, including with dedicated tutorials, guides, etc. in the future.
(2015-05-09, 04:54 PM)Euan T Wrote: [ -> ]Another benefit of Laravel that I forgot to mention is it's support for standards such as PSR-4 and other upcoming standards (and soon support for PSR-2).
Both are supported by YII and Zend too as far as I know.

(2015-05-09, 04:54 PM)Euan T Wrote: [ -> ]MyBB has always enjoyed huge support from our plugin developers, designers and other third party developers. We aim to further and build upon that support, including with dedicated tutorials, guides, etc. in the future.

And that's my point. Current plugin developers, designers and other third party developers have not been asked enough about their framework preferences or informed why MyBB devs have chosen Laravel.
You might loose some of the most popular plugin and third party developers with that decision.

So please - more communication and more power for the community at such important decisions.
(2015-05-09, 05:11 PM)Lennart Sauter Wrote: [ -> ]Both are supported by YII and Zend too as far as I know.
There are obviously several frameworks which could have been used but we had to choose one to be able to start developing. Wink
(2015-05-09, 05:11 PM)Lennart Sauter Wrote: [ -> ]Current plugin developers, designers and other third party developers have not been asked enough about their framework preferences or informed why MyBB devs have chosen Laravel.
You might loose some of the most popular plugin and third party developers with that decision.
Asking developers about their framework preferences is pretty pointless. There are several well known PHP frameworks and each one has its fans. Some users even suggested not to use a framework at all. It's simply not possible to please everybody...
In the end the preferences and experiences of our developers are more important since they have to developer MyBB 2.0 and they must work with the framework.
(2015-05-09, 06:02 PM)StefanT Wrote: [ -> ]Some users even suggested not to use a framework at all. It's simply not possible to please everybody...

Then shouldn't you look what the already successfuly forum systems did? (IPB and VBulletin)
Yes, but you should also remember that the commercial forum platforms have monetary backing and many more resources than we do. Both vaulting and IPB use their own frameworks, but they have many more developers who work full time on the product. We are all volunteers and do as much as we can whenever we ave the time to do so. Rewriting a whole framework from the ground up would mean that you wouldn't see MyBB 2.0 until at least 2018, and by that time the project would be all but dead.
Indeed, no framework is no option and reinventing the wheel with a selfmade framework is pretty pointless too.

The decision for Laravel is made anyway so discussing framework choices is useless now. All I'm asking for is to get the community involved a little bit more for that huge decisions.
Is Twig as template engine finally decided yet by the way?
Hi,

Yes Twig has been firmly settled on. Other options were evaluated (including the Blade engine provided with Laravel), but we chose Twig for the following reasons:
  • Security - Twig will only allow pre-defined functions and helpers. Tools like Blade allow the execution of PHP functions, using a headache for themes on the mods site.
  • Speed - Twig caches compiled templates, meaning there is very little performance hit.
  • Readability - Twig is widely used in many other projects and is very easy to read and understand.
  • Flexibility - Twig is very flexible, and additional helper functions and filters can easily be defined. For instance, we have a function called "render_profile_link", which will (as the name implies) render a fully formatted link to a user's profile.
Thanks for the explanation Euan, would love to read more of that kind in the future.
Pages: 1 2 3 4