PHP technology stack

This article aims to give the novice to learn PHP is a general cognitive profile, in the heart of structured learning, targeted to avoid taking too many detours. Great God, please ignore.

Entry stage


1, master the basic HTML, JS, CSS syntax; familiar with Bootstrap.


Acceptance minimum standards: imitate or write first home screen content.

2, familiar with the Linux command line
familiar with common release system (CentOS, Ubuntu) Installation
familiar with common command-line operations, including file management, user management, rights management, firewall management and
familiar with the use of VIM

Acceptance minimum standards: master lnmp environmental structures.

PHP foundation

PHP mastered basic grammar, file uploading, cookie, Session, JSON.
Grasp the MySQL database connection: pdo use.
Master redis connection and simple application.
Master namespace.
Master the object-oriented programming ideas.


Learning Framework

Learn to use ThinkPHP framework. The framework mainly for domestic use penetration rate is too high. Getting started is not recommended for use Laravel because the framework uses a more syntactic sugar, third-party libraries, might be difficult for the novice.

Acceptance minimum standards: ThinkPHP can use the latest version as a starting framework, to write a simple blog. Page simply write on the line. Use TP between data display to render the page.

Learn to write interfaces

Society Charles capture, watercress interface to see data returned.
Learn to write interfaces (GET, POST) on the line.
Learn to use POSTMAN .

Standard Minimum acceptance criteria: the above blog project into separate front and rear ends, and asked to finish the interface (preferably with documentation), then use the ajax call interface data page.

At this point, you have a beginning. If you need to continue down, but also to learn.

second stage


Use composer install PHP third-party libraries
for PHP breakpoints very familiar with
learning common PHP extensions
using the SPL
master the PSR specification
grasp reflected the use of
master design patterns
familiar with common framework.
Most configuration options and understand the meaning of php and php-fpm.
Familiar with the HTTP protocol.
Familiar with regular expressions.


Some familiar MYSQL optimization techniques, such as MySQL performance tracing, including slow_log / explain and so on; for order by, limit, like some other pit can be avoided; able to skillfully use a common index; create the table structure for the choice of what type of data do to confidence and so on.
Familiar with common configuration, know how to tune.
Skilled master-slave configuration.


Master the use Redis: For classic common data structures using the scene is very familiar; understanding Redis transaction, RDB, AOF mechanisms.
Grasp the difference between using memcache, knowing with the redis.
Look at MongoDB.


Familiar with common text commands: for example wc, awk, split, diff, grep, sed , etc.
Familiar sort, uniq of use.
Master ps, netstat, top commands such use.
Familiar with Supervisor.
Familiar with how to write a shell script.
Be able to understand the meaning of Nginx configuration.

The third phase


The stage is already very familiar with PHP, with rapid development projects, the ability to quickly resolve the BUG. Psr code follows standard, high stability.
Familiar with the use of message queues, a suitable choice in many scenarios asynchronous message queue decoupled.
MYSQL familiar with how to use Elasticsearch instead of full-text search capabilities.
Familiar multi-process programming.
Familiar with socket programming, the network IO model has a certain awareness, familiar multiplexer (select / poll / epoll) technology.
Familiar swoole framework that can be applied to the project.
Does not limit itself to the framework, the framework of any day fast start.
Php working mechanism of the familiar, familiar with php-fpm life cycle.
PHP can know with respect to the performance of a strongly typed language such as c why slow.
For the realization of the principles of the internal PHP has some knowledge, for example, to achieve variable understand zend engine.
For PHP extensions have a certain awareness, you can write a simple extension.


Familiar with the large quantities of data import and export. For risk line operation may bring a large table have predicted.
Familiar sub-library sub-table.
For master-slave delay can be effectively resolved.
For some functions can be built MySQL skillfully use familiar triggers, using stored procedures.
Familiar with the core server performance optimization options innodb_log_buffer_size, back_log, table_open_cache, thread_cache_size, innodb_lock_wait_timeout and so on.
For the realization of the internal index of MySQL transaction isolation mechanisms have a certain awareness.


5 redis common data structures other than the data type should be able to have some. The bitmap, GEO, HyperLogLog, pub / sub like.
redis duties, and the pipeline, distributed lock can skillfully use.
For redis server configuration can have a certain awareness.
Familiar redis in how to use Lua.
Try reading redis source.


For nginx very familiar, fluent HTTPS configuration, load balancing, reverse proxy; can be used lua-nginx-module.
For awk / sed applications have fire pure blue, can freely operation control processing complex text statistical analysis data formats.
For tcpdump, gdb, ltrace, strace, lsof like skilled use.


Familiar Linux Application Programming: Familiar makefile use; familiar with the process, the signal, I / O knowledge; for the C language has a certain understanding.
Skilled elk.
For other languages (e.g., java, c, golang), other areas (large data) has some knowledge.
Familiar with RPC, micro-services architecture.
To support the normal development of ten million traffic website maintenance.


Technical endless, the future more likely.

This article first appeared in the public number "Snapshots shadow of the blog (fhyblog)", welcome attention.

Guess you like