Logo

If you can dream it - I can build it


Tahnini

This is the story about the current site

Technologies:
PHP
Symfony


Background

After I started to work at Taliaz we planned on replacing the current architecture. Up until then, their tools were developed by a 3rd party company. The products developed in Yii and the backend written in another framework (which I don’t remember) - pretty much a mess.

After working on the products - fixing some bugs, adding some minor features and preparing for some ISO standards - we, or should I say me, started to look deeper on how to replace the current architecture. Stay tuned, it’s going to be very interesting.

The idea

We needed to solve one a major problem. You might think that creating an API that can serve any kind of app - desktop, mobile, watch etc. - would be the problem. No, any API can do this. We needed to base the API on a framework which probably stays relevant for years, and won’t be obsolete, or make you twitch your nose once you hear the name, like YII.

I looked over the web for the best frameworks. My first choice was Symfony. Since version 4 was released a couple of months ago it looked like a good choice. Sure, laravel or lumen were considered, but, when I looked on the architecture of laravel something felt wrong to me:

  • The way you define a router in symfony is pretty much easy while in laravel you need to define a router manually (in addition for creating the class of the router).
  • Defining a service in symfony is very easy - just create the class in the src folder and you go to go while in laravel you need to manually specify it. When injecting a service to another service you need to write more code.
  • In laravel DB models interactions defined in two places: migration handlers for altering the DB and php classes for interacting with the ORM. In symfony, the entity class and the DB modeling happens in one class and the migration files generated by a nice command.

Those are three issues that look minor but when I want to develop something I’m looking for writing less code as I progress.

My CTO said to me: “Go for it. Start to write it with Symfony”. After two weeks I had an API with very basic stuff - user authentication based on access token and a couple of entities. Then, I got the bad news: I’m being fired due to financial issues the company is struggling with.

After digesting the bad news my CTO told me something good: “You can take the work and open source it. Just remove any logic that relates to us”. Yes, finally I can give back what I’ve done to the world. I don’t know if someone will use it, but it’s there.

I named the project§ tahini because I love it. tahini used me for another project - Financeular so the work I did never really went to the trashcan.

My two cents on the stack

Well, after working with Drupal for a long time, creating a slim API’s, DB architecture based on classes, and much more was very fun and delightful. I’m pretty sure that this would be a good selection for future products if someone wants to base their work on PHP.

Picture


Tahnini image