It must be confessed that both programmers and especially sales managers sometimes have a desire “to break off the relations” with Bitrix CMS, curtail it into a tubule and send for completion.
And what’s in fact?
In fact we’ve got the following data. In November 2014 in total 4 884 633 - 0,42% of the RU-zone domain names were polled. 54,2% -3,6 of the domain names responded within 30 seconds, and the CMS is found for 23,5% +1,1 domain names. The share of paid production CMS is about 12,9% of the general share of the found CMS, and the share of highly specialized* ones is 6,5%.
Let’s have a look at the general rating of CMS in Russia.
Now look at the rating of exclusively commercial CMS in Russia.
And this is the analysis of RU-CENTER.
If we look at the market of the European CMS, we will see that their platforms of development differ in greater variety. Here you have either ColdFusion, and Java, and .NET, Python, and Perl. In Russia 80% of the known CMS are written on PHP4. Of course, PHP is in demand also abroad, but generally only in the 5th version.
Also about a half of the European systems use a linking of XML + XSLT. Many of them promote it as one of the principal advantages. In Russia the latter technology wasn't widely adopted. But the most interesting thing about this situation is that some participants of the CMS market preach XSLT to be inefficient in CMS, contrary to world tendencies and common sense.
No, I don't urge just to take and throw out your current CMS. Let’s try and look at it from another point of view. Bitrix is a very much developed CMS. It gives an opportunity to a man being far from programming to configure any applications freely. However the more difficult system is, the more knowledge and abilities for this person are necessary. A paradox!
On the one hand, it’s simplicity of configuring for a programmer, and on the other one, increase of necessary level of knowledge for an administrator. We will call it inevitability in the development of society and technologies. Recall at least the era of mobile phones when a person “talking to himself” going down the street shocked people around. Never mind, got used to it.
Such way Bitrix gradually takes us away from the era of coding to the era of design and configuration. How fast this process is going to be? Depends on how fast Bitrix gets rid of the principal disadvantages:
1. The cost of an adequate edition begins from 30 000 rub.
2. Quite strict system requirements and an old PHP version.
3. A large number of bugs and defects along with not always clear documentation.
Is there an alternative? Of course! These are frameworks. They are created just to write the productive, pure, beautiful, easily developed code.
At the moment there’re three leaders in PHP:
All of them have big infrastructure, good support and accompanying documentation. Nevertheless it is not a CMS. It’s more likely a set of bricks and stones which need to be put.
On the example of Symfony you can say that the system without tree-structured administrative section can be created with the use of standard and moderately edited bundles in a week. Thus this system gives in to automated testing, automated documenting and be supported by any expert familiar with structure of a framework.
The sense is still the same – every tool is good for its task. You won’t pour soup with a hammer, will you? Bitrix is good for online store and Symfony – for a site without developed administrative panel (though it can be written in 50 hours).
In more detail about Bitrix. Bitrix is a highly secure CMS, though every file can be an entry point there.
Operation of the CMS requires only such minimum tree:
Therewith index.php is a home page, and an administrative panel is completely operable and located in the folder “bitrix”.
The whole Bitrix is constructed on the term “information block” – this is some kind of class in standard terminology of OOP. In turn info blocks represent the data structures storing practically all data of the site: from text information to pictures.
All info blocks are of its own type. That means it’s impossible to create an info block without type. The type of an info block is a logical interrelation between info blocks.
Another key concept is a component. Component is a logically isolated part of code which can be used on absolutely every page of a website.
Certainly, it has special interface and special structure. Therefore changing of a code of the component is required in rare instances. Usually it is enough to select the correct component, correctly choose its parameters and correctly change its template.
There’re simple and complex components. The simple ones configure the page, and the complex ones configure the section of the site. So if you wish to display a tree-structured info block of news, just create the page with a complex component of news. After setup you will see the section where you can go to subsections, view detail pages and even some other preset features.
Bitrix is a CMS with lots of entry points. To create a page you should just create a folder with a file index.php in it and that’s it. On the one hand it’s convenient, on the other one – it’s not.
Convenient, if there’re not many static pages. But what should you do if there’re many of them, moreover, if they’re mixed with dynamic ones in the same section? In this case you have to create your own complex components.
What is really convenient about Bitrix, that is operations with the data. They’re structured into info blocks and there’s no need to seek anything else but them. Operation through API is convenient and transparent in most cases. The only thing to mention – the productivity is lower than in case of direct request to basis, by the way, it’s impossible to apply JOIN to info blocks.
Nevertheless in reality Bitrix is Bitrix. It’s neither good nor bad. The CMS developers permanently work on improving of the code, but the process is very slow. Hopefully, in the short run we will see the transition from PHP 5.3 to PHP 5.5, and also Dependency Injections and Namespace, a good structure approximate to MVC. For the time being we should just set up under it and create our own beautiful components.
Author: Georgy Ionov, a programmer of web development department