Knowledge structure of qualified PHP engineers
All of a sudden thought so much, follow-up thought of re-fill, please give us a lot of advice. Actually programming uses what language is not important, the most important is the thought, the programming idea.
Have a word hope that we share together: learning, learning is boundless
PHP's operating environment
Even if the environment can not get up, that is how you like PHP, it is useless, we started mostly using integrated environment software such as Xampp,wamp. As knowledge increases, you should learn to build your own environment, such as Linux (Ubuntu/centos), APACHE/NGINX,MYSQL,REDIS/MEMCACHED,PHP-FPM
Basic knowledge
PHP Programming: Variables, constants, strings, arrays, control structures, databases, classes, inheritance, polymorphism, cookies, Session
MySQL command: INSERT, UPDATE, DELETE, SELECT, GROUP, COUNT, JOIN, index
With the PHP base, the first output is Hello world please raise your hand (it feels so magical)
Q: What is OPCODE?
Front-end knowledge
If you think PHP is a back-end development engineer, then you are wrong, at least at present I contact the PHP engineer for the front end knowledge is also very deep
CSS: Do not require to reach the art level of the transduction, understand will change the line, will use debug accurate positioning troubleshooting
JS: At least form verification, jquery will use it
Front-end frame: Bootstrap or foundation at least you're familiar with a
PHP extensions
At the beginning of the process of using PHP, may not be the extension is what the thing, I know the memcache before I know that there is the concept of expansion, the most basic requirement for PHP extension is to learn to install and load, the higher the requirement is to understand the structure of the extension and to implement a simple extension, Recommend a website PHP extension development and kernel applications
Web Security
SQL injection, verification code, flush Commit, vulnerability scan, Dos attack, cross-domain attack, XSS these all need to understand, and learn the basic defense means, you will encounter these destructive
High performance MySQL
Rainy day PHP and MySQL very well, for the requirements of the database, the beginning is to use the basic statement on the line (increase and deletion), and secondly to have the ability to write efficient statements to optimize the database, sub-database sub-table strategy, master-slave architecture, finally need to understand the principle of index, recommend you read a book called "High Performance MySQL
MVC Framework
will use a framework this is the minimum requirement, and now the commercial company does not have a framework. Hopefully you can understand the MVC pattern and eventually implement a simple MVC framework yourself.
Introduction to MVC Patterns
View
Controller
Model
Modules and operations
Main entry file
MVC pattern Application
Server knowledge
As we learn more and more, it is necessary to find Linux knowledge, like Tangram, the total difference. For Linux knowledge requirements I think the "Bird's private Food" this book as a request.
Version control
The development of the version control is very important, because this involved in the progress of the smooth continuous integration, the first use of SVN, followed by git, wall crack recommend everyone to learn git, because Git is now a basic requirement for research and development
Cache
Cache in the current Internet site usage is very high, back-end is mainly used in cache database result set, reduce the pressure of the database, the current mainstream has memcache and Redis. Most of the front-end uses CDN, which can be loaded faster with a CDN for static resources. Regardless of the end, is to give users a better experience
Q: What is the difference between Memcache and Redis?
Large flow
The maximum number of requests I've ever touched is tens (daily), and the architecture used is basically a distributed approach, such as load balancing
High concurrency
High concurrency is now more popular, often see such a second kill activity, about high concurrency need to know several common solutions
Learn to use the IDE
No matter what IDE you use, please choose a suitable for your own, which can greatly improve your development efficiency, personal wall crack recommended Phpstorm
Learn to search
Many people like to ask other people this question ah, encountered the problem I suggest all first search, only seriously confirmed that really can not find a solution in looking for someone to ask. Without thinking and trying to grow
Functions that should be
Not to say that these features, you will be invincible, should be the basic requirements
-
Login, register module
-
Upload module
-
Image Verification code module
-
Mobile Verification Code module
-
Payment system
-
Order system
-
Statistics module
-
Cascading brushes
-
Public number development (preferably certified service number)
-
Mall inventory concurrency control