In my daily job as a PHP software developer I like to use frameworks because they are the result of community collaboration – so I don’t have to solve problems that have already been solved and focus on higher application layer. But at the same time every user, including me, can have an impact on them.

For my technology there are many frameworks available on the market so it’s not difficult to choose the most convenient for the particular project or individual preferences. But let’s take a look at all areas of programming where frameworks can be used.

The areas where we can use frameworks in IT are:

  • For compilers of different programming languages – programs for the automatic translation of code written in one language to the equivalent code in a second language.
  • Applications for financial modeling.
  • Applications for earth science modeling.
  • Decision support systems – systems that deliver information and knowledge.
  • Web applications – computer programs which work on servers through computer networks and connect with users’ computers by means of internet browser.
  • Middleware – software between different applications, services or systems.

On today’s software market we have many ready-to-use solutions, and most of them are based on frameworks, because they have to keep architecture at a high level of clarity and formalization to enable software developers to make further modifications. This features a high level of complexity, but it is worth learning new technologies and solutions because they can accelerate your work or that of your team. Let’s consider it in even greater detail and take a look at the list of pros and cons of frameworks.

Read also: Clean Architecture

Pros and cons of frameworks


  • Efficiency – building applications with frameworks requires the software developer to write less code,
  • Improved quality of code – because frameworks are designed to be flexible, they have good internal logic, and they impose the same logic on the created application,
  • Reliability – frameworks such as application skeletons are well-projected and tested.


  • Complexity – learning frameworks is difficult because of flexible and advanced usage,
  • Performance – instead of the flexible construction of the software which has been created, we often get a lower level of performance (at this point I have to mention cache systems that can improve the performance of frameworks in a large percentage of server responses).

As we can see, we have more pros than cons, which in my opinion is the biggest advantage of frameworks. However, we have to be aware that frameworks are not always the best solution. For example, if we need to create an application to display a single message on screen as a server response, the usage of frameworks will slow down the server response and the execution of our application. Such an application needs only one command to execute and no additional tools are necessary.

How to use frameworks properly?

Of course, I wouldn’t say that frameworks can resolve all our problems with software, but they can certainly help us with our daily tasks. On the other hand, we have to be careful here. Too many times I’ve seen fights on community forums dedicated to a given framework, where people try to prove that the framework which they have chosen is the best.

I believe that frameworks are like tools – the more tools you have, the more problems you can solve. If you only have a hammer, you can probably only hammer a nail. But if you have a shed full of tools you can do whatever you want.

Multi-framework approach

This approach is supported by the architecture of today’s applications, which are built from packages – separable modules with their own requirements that we can use to create any kind of application. That way, the application can be divided into smaller parts and is easier for more people to understand. Packages also organize the structure of applications and help to develop larger projects.



According to this idea, we can use packages as independent software and install them to build our application. There is no obstacle to the use of frameworks in the same way – each part of our application can be built on a different framework. Why? When we use libraries created for only one framework, we are not able to utilize software created for other frameworks. In summary – we should use the approach that allows us to remain open to other possibilities: the multi-framework approach.



The multi-framework approach can be seen in popular solutions like Magento (e-commerce platform), Sylius (e-commerce platform) or next generation e-commerce shop which calls Shopware, there is a not only e-commerce application – where we can see it, also at popular and highly flexible CMF frameworks such as Sulu. When you check the source code of these applications on GitHub, you will see that the authors have used packages from Zend & Symfony frameworks – those packages are manageable in PHP technology via a composer service. The proportions aren’t huge at first glance, but we can start to consider it a multi-framework usage and treat is as a conscious architectonic decision.

Rafał Baran

PHP developer at JCommerce, who specializes in open-source and dedicated e-commerce solutions. At work, he likes to getting know new frameworks and software architectures based on cloud computing better. Outside of work, he’s a big fan of open-source solutions. He spends his spare time with family and friends.

Dodaj komentarz



Would you like to learn more about the possibilities of cooperation? Do you have a question? Write to us!

I hereby agree that JCommerce Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as my name, surname, e-mail address, telephone number and company name, for commercial purposes.
I hereby agree that JCommerce Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as my name, surname, e-mail address, telephone number and company name, for marketing purposes.
I hereby agree that JCommerce Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as my name, surname, e-mail address, telephone number and company name, for recruitment purposes.
I hereby agree that JCommerce Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as my name, surname, e-mail address, telephone number and company name, for future recruitment purposes.
I have been informed by JCommerce Sp. z o.o., 3 Ks. Piotra Sciegiennego St. 40-114 Katowice – the personal data controller – that: - The provision of the aforementioned personal data is voluntary but essential for commercial purposes if I have chosen a request for proposal, or recruitment purposes, if I have chosen the remaining options;
- I have the right to access the content of my data, including to receive copies of it and correct it, delete it and limit the processing of it, as well as the right to transfer it, the right to object to the processing of it, and the right to withdraw my consent at any time. However, the withdrawal of my consent shall not affect the lawfulness of processing carried out on the basis of the consent in question prior to its withdrawal;
- A statement of withdrawal of my consent to the processing of personal data should be submitted to the headquarters of JCommerce Sp. z o.o. or sent to the following e-mail address: The withdrawal of consent to the processing of personal data shall result in the inability to fulfil the aforementioned processing purposes;
- The personal data provided shall be shared by JCommerce Sp. z o.o. with the company’s authorised employees and individuals collaborating with JC under civil-law contracts, who are involved in the implementation of the purpose of the processing;
- The data provided shall be processed on the basis of the relevant provisions of Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation), ‘GDPR’;
- Should you have any questions regarding the protection of your personal data, please contact us by e-mail:;
- The personal data provided shall be processed for the purpose for which it was supplied, or until I express my objection in this regard. In the event of filing an objection, JCommerce Sp. z o.o. shall no longer process my personal data for the aforementioned purposes, unless it can demonstrate that there are valid and legally justified grounds overriding my interests, rights and freedoms or my data is necessary to establish, pursue or defend a claim, if any;
- I have the right to file a complaint to the supervisory authority if I consider that the processing of the aforementioned personal data violates the provisions of the General Data Protection Regulation of 27 April 2016.