
Tina4
This is not a framework
We are in the process of testing the final release candidate which will be launched in May. I did some background checking on when I first started on this project and it will be 10 years in May since the first concept of the framework. A lot has changed since then but the core features we wanted to bring to life are there! New features are frozen at the moment and all that is being done is to refine and fix bugs. The website presence and documentation still needs work and that we are going to facilitate through video and wiki.
So I build the framework which is not a framework because I want people to have the freedom to organise their projects the way they want and in a structure that makes sense. Lo and behold on a project that I am working on I am now finding I can't find things easily. The issue lies in the grouping and organising of the functionality.
Best practice argues for separation of concern, but too much separation causes headaches in maintenance and finding things. It's great for while you're fresh with the project and everyone knows where everything is, but come back a couple of months later to 1000s of lines of code and you need to start remembering where you put things (And this is with a logical structure!!!).
In conclusion I woke up this morning and added some more features to Tina4 which will allow the mess to be more manageable. Hopefully I can save some other people from losing their minds when they need to find code. I also need to keep track of what features we have and so here is a short list of the most important ones and why:
- Twig Templates - mature, caches well, fast, extensible
- Simple ORM - why do you need 10000 lines of code to talk to a database?
- Annotated Tests - write your tests while you write the code, why wait for later or have the headaches of creating another application just for testing
- CRUD - Yeah, no developer likes to build simple code to add stuff to a database, Tina4 actually does this for you if you ask it nicely
- Migrations - A big thing of keeping sanity especially when you work with a database is changes, Tina4 helps you handle those with no third party additions
*Small - Tina4 is small and light weight which means it must have really good code in it to do so much with so little ;)
Happy coding everyone
1 Like
Comment
It doesn't matter how far or close I think the release point is going to be, it seems like there are always one or two more bugs to fix. At this point locking down the features that are needed for release are also critical, so we don't add more stuff which can be bugs and more things to test. At this stage in time we have between 20 and 30 adopters of the platform, it is difficult to day whether anyone is actually using the system for production sites but I can confirm now over 10 production systems have been rolled out on Tina4 and their performance is good.
The biggest learning curve for developers starting out it seems is to get their development environments up and working. As in any trade, having the best tools for developing is essential. We are fortunate to have Jetbrains sponsoring our teams development IDE's and that does help with finding issues.
We've announced the new version as coming on our existing website, lot's of fun with the Manga art - Tina has had a total facelift!
2 Likes
Comment
Tina4 version 2 is getting close to a release point, I am paying some one to do the documentation, we decided to use Docsify as the means to running the documentation from within the repository itself. A lot of things have changed in the last while, and the stack has definitely been put through its paces on some production systems. A lot of issues have been sorted out in the ORM and the database abstractions have been refactored. Somethings that are working really well:
- Annotated tests
- Annotated Open API docs
- Super easy ORM
- Paginated Database Abstraction
- Twig template engine ( with a few tweaks)
- Tina4 Modules - see https://packagist.org/packages/andrevanzuydam/tina4cms
2 Likes
Comment
Converted Tina4 to a composer package. Before a developer would have to clone the repository and configure it manually. Initially I thought of a "compiled" source base for the project which would run from a phar file but I have removed that for the moment as debugging is becoming crazy. Happy with the results so far as you just need to do a composer require for the library to work. Also leaning on getting the built in PHP web server working as a development tool so there is no need to run a web server or Docker environment if you want to do some quick development.
1 Like
Comment
Tina4 version 2 needs to be better than the first version, a lot of code needs to be simplified. Caching and templating need to be built in from the start. I decide to use Twig templating engine and phpcache as a base. I look into other frameworks, still not happy with the level of complexity they bring to the table in my opinion. One thing that is important is to be able to document route end points with annotations to create swagger documentation on the fly. Making swagger docs is way too complicated.
1 Like
Comment
The last version 1 release is released. It is stable and all the functionality works as it should. Tina4's own template engine is a bit difficult to work with but the routing, database abstraction and other code base seems to be good for production based systems.
1 Like
Comment
Tina4 working in a browser is difficult for other developers to work with and this is a big mind shift change. What is also missing is Routing. Came up with some ideas to make Tina4 a Manga themed framework, restructured the classes to be different girls, each one responsible for a different task. Ruth for routing, Debby for databases (Cross Database Engine), Cody for code and CRUD, Tessa for testing, Maggy for migrations. Olga for ORM.
1 Like
Comment
Tina4 version 1.0.0 targets PHP and is working with a web based editor so you change your code in the browser and then release versions. It has version control built into the system and makes use of a concept called interfaces to deliver different GUIs to the end user. It has taken close to 2 years to develop and is currently running 3 production systems. This version is not really package manager friendly and requires one to download and unzip the project on a windows machine to get started. Tina is like a "Laura Croft" of code, she needs to appeal to guys and girls a like.
1 Like
Comment
Tina4 concept is born, a development tool that will allow you to plugin code and remove it without leaving behind debris. It will have a dashboard where the plugins will appear with and install. Tina4 stands for - This is not a framework. The 4 substitutes the F in Framework. Why Tina4 ? Things like CakePHP, Symfony are too opinionated and not easy to get up and running. Adding new code is difficult if you do not know the whole paradigm of each frame work. Coding should be about dropping in some code and getting it running quickly!
2 Likes
Comment
About
There is a lot of complexity and bloat in frameworks for various languages, Tina4 started as a way to reduce the learning curve and provide a stepping stone to other frameworks as a rapid prototyping environment.

Comment