LinuxAccra-UserGroup / linuxaccra-www

The official website for Linux Accra User Group.
3 stars 2 forks source link

Regarding framework(s) to use #3

Open lcabrini opened 8 years ago

lcabrini commented 8 years ago

I think we need to decide on the framework(s) and libraries to use. We have different types of frameworks available:

  1. server-side MVC frameworks (in PHP
  2. database abstraction/ORM frameworks
  3. javascript libraries
  4. client-side MVC frameworks (in javascript)
  5. templating systems
  6. others, such as CSSLess, CoffeeScript, etc.

Personally, I think we should develop our own server-side PHP MVC frameworks. My reasoning is simple:

  1. It gives us a lot of control over the framework. Since we write it ourselves, we will be know exactly what part does what.
  2. The learning experience. Writing our own framework forces us to all learn more about front-controllers, root controllers, models, submodels, etc. Not to mention how to avoid various types of common attacks against web sites.

As a counter-argument, you may feel that it will take time to write our own MVC framework. And that is true. But, first we shouldn't be in a rush. At LinuxAccra, I believe we should always value learning experiences more than anything else. Second, we don't have to write a full-blown generic framework. Just enough for our own needs.

I am personally not a big fan of ORMs. I prefer to do straight SQL. But let's hear the arguments.

For javascript libraries, we could look into jQuery. It is popular and does a lot. An alternative is to "roll our own".

I don't have too much experience with client-side MVC frameworks, but have played a bit with angular.js. Do we want to make our site "responsive" our do we stick to a more traditional approach?

I like templating systems. It helps to keep logic out of the presentation layer (at least to a degree). I have more experience with python-based templating, such as Jinja2 and the django templating engine. But I have played around a bit with Twig and like it. Again, we could choose to roll our own.

This is getting long. Maybe we should have on issue opened per item (one for PHP framework discussion, on for database abstraction, one for templating system, etc)

elvisron commented 8 years ago

With regards with building our own MVC framework, I believe is a great idea mostly because of the learning experience. Lorenzo can you lead us in this. I'm sure we can learn alot from you.

lcabrini commented 8 years ago

Sure, that wouldn't be a problem. That is, if we all agree that this is a good idea.

laudb commented 8 years ago

@lcabrini I'll go with your counter-argument for the reasons you mentioned and these concerns too:

  1. I think for so long we've still not had an active go-to website, so we should have a stable foundation as a starting point. The basic features also forms kind of a spine and also the face for our Linux Accra activities, let's get it up and running, with little hitches.
  2. This will still be a learning experience just that it'll be centered around the framework, it's pros and cons. We can also be modifying it, trying to break it and could be preparation for when we start to build our own framework.

but this is just my thoughts.

lcabrini commented 8 years ago

@laudb: as a counter-counter argument the (1) I could raise that, using sprints we should be able to get something up and running fairly quickly. We can then add more features as we go on.

However, (2) convinces me. Learning a platform is a learning experience as well. For those who are interested in learning how to build their own MVC framework, we can always look at launching another project at a later date.

So, if we were to all decide that using an existing framework is a good idea, then we need to list candidate frameworks. There are about 9.8 billion PHP frameworks out there, and new ones seem to pop up all the time.

Off the top off my head I know of these.

Full-featured:

Light-weight:

There is a host of others. I must confess that I am not too up-to-date with PHP frameworks, since I tend to use python instead. Maybe somebody can help fill out this list. Then we can discuss their relative merits.