In 2012 we asked ourselves: how can we reduce the development time? At the same time have the ability to increase the functionality of our applications and web services, to facilitate code maintenance and team interaction, with clear and understandable architecture.
We did not want to invent a new bike for several reasons:
- No free resources, developing of framework took a lot of time and money;
- The newly created architecture can be non-obvious to new developers ;
- For the same reason, need a long time to developer colleagues understand the principles of building applications and working with their framwork.
As they say, Google in help. We started looking for a suitable framework. Many bloggers like to describe my flour search, nude of the heroic choice, we do not have long tormented. The choice almost immediately fell on Yii. Requirements framework in fact there were three:
- The presence of at least basic documentation in Russian not to waste time on translation for developers without knowing the language (you hear a voice from the back of the room, saying the developer needs to read in English, but believe me half of the cases the availability of information in Russian much faster learning process);
- Security, WordPress then rattled in all bug trackers, even newbe hackers learned how to do XSS attack.
- The speed, of course it conditionally, but what Russian does not love fast driving!
Remember, we are talking about 2012. For understanding we give here the graph of interest to the frameworks in php according to Google:
Yii has been on the rise and he answered our main three requirements plus:
- The framework actively developed, has already formed a competent Russian-speaking community;
- Even the volume of the repository is clear of its lightness in comparison with monsters such as Zend and Symfony;
- Many sources pointed to the rapidity and relative safety of the framework, we will focus on this below;
Basic chips of Yii also well known:
- Model-View-Controller (MVC) design pattern;
- DAO и ActiveRecord;
- Generation of complex WSDL service specifications and management of Web service request handling;
- Layered caching scheme, which supports data caching, page caching, fragment caching and dynamic content. The storage medium of caching can be changed;
- Error handling and logging;
- AJAX support and jQuery;
- Security measures include prevention of cross-site scripting (XSS), cross-site request forgery (CSRF) and cookie tampering;
- Unit and functionality testing based on PHPUnit and Selenium;
- Automatic code generation for the skeleton application, CRUD applications, through the Gii tool;
- Support of REST
Few words about Yii
Information form wiki:
"Yii started an attempt to fix drawbacks of the PRADO framework: Slow handling of complex pages, steep learning curve and difficulty to customize many controls. In October 2006, after ten months of private development, the first alpha version of Yii was released, followed by the formal 1.00 release in December 2008.
Yii 1.1 was released in January 2010 adding a form builder, relational Active record queries, a unit testing framework and more. In May 2011 the developers decided to use new PHP versions and fix architectural mistakes. This led to version 2.0 to which the first commit was made in the same month. In May 2013 the Yii 2.0 code went public, followed by the first stable release of Yii 2.0 in October 2014. The current version 2.0.7 also supports PHP7.
Yii comes with a collection of official documentation, such as a tutorial to develop a simple blog application, a guide that gives the description of every feature and a class reference which gives every detail about properties, methods and events.
At the moment Yiipresense with version 2.0. Last release - 2.0.8 from 28 April 2016.
Framework continues to develop.the
Comparison with other frameworks
Lines of code
This value can be indirectly judged from the complexity of the framework/CMS. Let's start with the biggest:
- Symfony - 10 000 000 (10 millions, Carl!)
- Zend - 4 200 000
- Yii - 280 000
- CodeIgniter - 40 000
- Kohana - 12 000
- Fat Free Framework - 4 000
- Joomla - 800 000
- Drupal - 180 000
- Wordpress - 140 000
Lines in OS code, for examples:
- Debian - 65 000 000
- Gentoo - 5 500 000
- OpenOffice - 25 000 000
- Basic hello world test for Yii1.
As can be seen in a simple test Yii1 still showed a performance advantage.
- Data from php-framework-benchmark
Fresh test data with the official page of the benchmark. Yiiahead of only microframworks, but it is irrational to use them to create a slightly more complicated systems.
- Compare with CMS Drupal.
Of course we are talking about compared to a full-fledged CMS, but it just pushed us to the writing of our custom framework Taskon base on Уіі2.
- Test yii1 compared to other frameworks from the official site:
The Yii2 release in 2015 have further strengthened our confidence in the chosen framework. Having accumulated a large store of knowledge, we have created our custom framemork "Taskon" based on Yii2, for information systems and web applications. We call it "Taskon framework" and not a CMS, because CMS has a more narrow use is often limited by the website or online store. Creating Taskon, we tried to expand the boundaries of functionality.
By the way our Taskon, you are free to try to create websites and web applications, moreover, it is well documented. More details can be read on a special Taskon page.