N
N
NeoCode2016-06-26 15:41:02
PHP
NeoCode, 2016-06-26 15:41:02

What to read about the architecture of applications and frameworks in php?

Good afternoon!
Interested in good literature (books, series of articles) on the architecture of applications and frameworks in php. Preferably in Russian for faster learning.
The problem is that I know the language itself, but I have absolutely no idea about the correct architecture of applications in php. And in most books, the syntax of the language is usually considered and some primitive examples are just to get acquainted with the syntax.
Before solving the frequently asked question here about choosing a framework or writing something of your own from scratch in pure php, it's a good idea to first familiarize yourself with the principles of organizing frameworks, with the tasks they solve; with design patterns in php; with best coding practices; study the analysis of common architectural mistakes that both beginners and professionals make; it would be ideal to have a detailed comparison of the internal structure of several frameworks, with a discussion of the pros and cons of a particular implementation, etc.
Is there such information?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
Sergey, 2016-06-26
Protko @Fesor

In general, I’ll upset you right away, what you want cannot be “sorted out” in a couple of months. This will take a couple of years. And the books that are worth reading on this topic are worth re-reading. Well, practice practice practice.
I also want to note that "architecture" is not something like that, but a general understanding of the development team about how the application functions. If you don't have this common understanding, you don't have an architecture. For many developers, understanding disappears after a couple of months of spontaneous development. So in addition to the architecture, it is also important to tighten up the development processes/methodologies.
It is also worth noting that all this follows one single goal - to make the development process efficient in the short and long term. If we say your entire application is built on procedures and global variables, support for such code will most likely be much more expensive.
"Correct" does not happen, it all depends on the task. The "correct" architecture is:
- understandable - that is, you can quickly figure it out. This is both code readability (reading McConnell's perfect code) and, in principle, system decomposition, separation of concerns, etc. (microservices, hexagonal architecture). Here you can advise to read Eric Evans.
- convenient in changes (thinking through everything is unrealistic, but it has become easier to do so that it would be more efficient to adapt to changes in requirements).
- Testable - that is, you can check the performance of the system at various levels. Here it is worth looking towards TDD or practices with the same idea (first we formulate how it works and how we will check it, and then we do it).
That's all. Further, there are already the principles of SOLID (read Robert Martin), GRASP (Craig Larman), GoF (it’s better to read head first design patterns here or even start with Matt Zandstra, in addition to patterns, he also briefly talks about processes).
Well, there is no point in all this if you have not yet fully realized what encapsulation and polymorphism are. Many can tell what these terms mean, but in practice they cannot apply this knowledge (encapsulation most often suffers)
Such a decision can only be made by a developer who already has at least five years of experience working with different (not just one) frameworks and languages. Otherwise, you will only be engaged in useless bicycle building.
Take Symfony or Zend and go. All other frameworks are "easier". That is, they hide more from the developer. After them, you can already take anything.
ps read more here: www.phptherightway.com

J
Jazzist, 2016-06-30
@Jazzist

  1. Martin Fowler "Refactoring"
    In a month or two, really understand and apply. If you practice, then faster.

X
xmoonlight, 2016-06-27
@xmoonlight

The problem is that I know the language itself, but I have absolutely no idea about the correct architecture of applications in php.
Regarding the website: basic architecture and all stages of development: https://sitecoder.blogspot.ru/p/blog-page_23.html

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question