PHP community in the CIS. It was bad - it got worse

I have been writing in PHP for 12 years, and I even saw the translation of projects from PHP 4 to PHP 5. Even then, after graduation, I realized how low the level of most people writing in PHP was. The heavy legacy of PHP 4, the low algorithmic and structural complexity of the projects (even with a large code base), the # 1 choice for small businesses, all this did its job. The community was unprofessional and I didn't like it. But what's going on now is even worse.







A short introduction for those who haven't followed PHP development in the last 10 years. Today the language resembles Java in terms of its capabilities and modern style of coding. We have good interfaces, classes, traits, namespaces, type-hinting, enterprise-level frameworks, a good package manager with dependency tracking. The interpreter was finalized and it gradually became possible to write long-lived daemons and asynchronous servers with good performance on it. Standard set of industrial programming language in 2020. Something is better, something worse, but everyone has flaws.







Together with the language, the character of those who write in it has also changed. People writing in the style of PHP 4 were and will be, although PHP 8 was released last month. But there are also those who could be called the least offensive astronauts of architecture. You've probably heard more than once about patterns, SOLID, KISS, DRY, YAGNI, the difference between an interface and an abstract class, etc. Until 5 years ago, this was more likely the norm for the C # / Java culture, but now these are typical topics in the PHP community.







It is good and wonderful that things from the world of big software engineering have come to our world too. The bad thing is that in 99% of cases it is not needed here. Even worse, many of the authors discussing the above abbreviations do not fully understand what they are dealing with. And, probably, the worst thing is that now the PHP world is not being denied by any academic practice, but deep theorists, academicians from the plow. Although the complexity of the projects available on the labor market has not changed dramatically, so that this academicity has a place to roam.







In a sense, now a typical large project in PHP is symfony / laravel + mysql / postgresql / mongo + redis + rabbitmq + elk. It can run on hundreds of servers, be crushed into microservices, but in the end there is neither structural nor algorithmic complexity. Nevertheless, if such a typical project begins to be described by the PHP programmer, which is discussed in the article, then we will fall asleep from a long list of patterns, and discussions about how it can be reorganized even more strongly following SOLID. That being said, there is usually no correlation between how well the best principles are applied and how easy it is to maintain a project.







, . , . , , . . , , β€” , () .







, . . -. , , . , , , -, .







SOLID . , . , mock- . , , . β€” . β€” .







, Drupal - . , ! - CMS , , , . , .







PHP , , . , , . , , . , , , . . PHP- Java- .







PHP Java β€” , , , . PHP . enterprise . , . β€” , - . , , -, .







PHP , Java, Javascript, . , web-. , , , . .







- . - , . Β« β€” Β» , . Β«SOLID Β», Β« Β». , . β€” , , - . , .








All Articles