Hacker News new | ask | show | jobs
by UserRights 4157 days ago
Very good initiative, thank you very much!

If you would like to switch to are more capable framework it would be much easier to add some collaborative features. I recommend strongly looking at the Python Pyramid framework or at Flask (or at Django, if you want more "rails that lead you") as soon as possible, so this could grow into something really powerful. Many java frameworks also have everything you will need.

Unfortunately there are still many frameworks used nowadays, that are missing very important things around groups, ACLs / RBAC and collaboration. I do not know why, but especially in the PHP world these things seem to be looked at as some "advanced science", with a few exceptions.

Not integrating these features from the very beginning into your product will determine the long term direction of your project without you even knowing about it. This is the dangerous result of using popular, but very limited and limiting frameworks that do not support your growth.

An experienced developer will of course identify these weak points of a framework immediately, unfortunately many people still waste a lot of time with these misleading trap-frameworks, just because they are cool today.

It is important to spot at the weaknesses of these half-assed "frameworks" and clearly tag them as dangerous for serious project work. Laravel is ok for a quick and dirty prototype that helps you to model your ideas, like a brainstorming session, but should not be used for a real project. And this modelling phase should be very short, quickly moving on to the more involved engineering process that takes all aspects of a modern web app into consideration.

Hopefully it is not too late for your project to switch - it will be a very good investment of time, I promise!

3 comments

I think a lot of what you are saying is completely untrue. Laravel is a very capable framework for this kind of thing. PHP has come a long way since the days of PHP4, and Laravel/Symfony 2 are leading the way in that sense.

> Unfortunately there are still many frameworks used nowadays, that are missing very important things around groups, ACLs / RBAC and collaboration.

The framework doesn't give you everything, but there is a huge community out there for these kinds of things. For example, there is a package that plugs right into Laravel called Entrust: https://github.com/Zizaco/entrust.

> An experienced developer will of course identify these weak points of a framework immediately

What other weak points do you see in Laravel?

> Laravel is ok for a quick and dirty prototype that helps you to model your ideas, like a brainstorming session, but should not be used for a real project.

This seems like an extremely biased opinion again.

I am not trying to start a framework or language flamewar, but it just seems like you are more comfortable with Java or Python and as such you see those as being better. Objectively I think that is far from the truth.

It seems to me, that the project chose LAMP to make it easy for everyone slightly technical to host an instance on a shared web server.

I am the first to criticize PHP, but I would never argue, that it is only good for prototyping. Of course you can use it in production. Also I do not see why you could prototype anything beyond a contact form faster in PHP than in another language, i certainly can not.

Flask has in no way integrated RBAC, you have to use plugins for that. I do not know Laravel very well but Google told me, that there are authentication plugins to implement role-based access, too, just like you would expect from any web framework that anyone has heard of.

After looking at the code for a second it's quite comical that you're suggesting switching framework + language as a way to speed up development, since it would entail a complete rewrite which is almost always the worst thing you can do.

OPs code also looks clean and well documented so I see no reason to make such a recommendation other than PHPhobia.