
เชซเซเชฐเชตเชฐเซเชก
เชฎเชพเชฐเซ เชตเซเชฌเชธเชพเชเช, เชเซ เชนเซเช เชเช เชถเซเช เชคเชฐเซเชเซ เชเชฒเชพเชตเซเช เชเซเช, เชคเซ เชฐเชธเชชเซเชฐเชฆ เชนเซเชฎ เชชเซเช เช
เชจเซ เชตเซเชฏเชเซเชคเชฟเชเชค เชธเชพเชเชเซเชธเชจเซ เชนเซเชธเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชกเชฟเชเชพเชเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชฎเชพเชฐเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชธเชซเชฐเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เช เช เชตเชฟเชทเชฏ เชฎเชจเซ เชฐเชธ เชฒเซเชตเชพ เชฒเชพเชเซเชฏเซ; เชคเซ เชเซเชทเชฃเซ เชนเซเช เชเชตเชพ เชฎเชนเชพเชจ เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเชเซเชจเซ เชถเซเชงเซเชจเซ เชเชเชฐเซเชทเชฟเชค เชฅเชฏเซ เชเซ เชเซเช เชชเซเชคเชพเชจเชพ เชตเชฟเชถเซ, เชคเซเชฎเชจเชพ เชถเซเช เช
เชจเซ เชชเซเชฐเซเชเซเชเซเชเซเชธ เชตเชฟเชถเซ เชฒเชเซ เชเซ. เชฎเชพเชฐเชพ เชฎเชพเชเซ เชคเซเชฎเชจเซ เชถเซเชงเชตเชพเชจเซ เชเชฆเชค เชเชเซ เชชเชฃ เชเซ: เชฒเชเชญเช เชฆเชฐเซเช เชตเซเชฏเชตเชธเชพเชฏเชฟเช เช
เชจเซ เชเซเชฌ เช เชตเซเชฏเชตเชธเชพเชฏเชฟเช เชธเชพเชเช เชชเชฐ เชจเชนเซเช, เชนเซเช เชฒเซเชเชเซเชจเซ เชฒเชฟเชเชเซเชธเชจเซ เชถเซเชงเชฎเชพเช เชซเซเชเชฐ เชเซเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซเช เชเซเช.
เชตเชฟเชเชพเชฐเชจเซ เช เชฎเชฒ
เชชเซเชฐเชฅเชฎ เชธเชเชธเซเชเชฐเชฃ เชฎเชพเชฐเซ เชตเซเชฏเชเซเชคเชฟเชเชค เชตเซเชฌเชธเชพเชเช เชชเชฐ เชฎเชพเชคเซเชฐ เชเช HTML เชชเซเชทเซเช เชนเชคเซเช, เชเซเชฏเชพเช เชฎเซเช เชธเชนเซเช เชธเชพเชฅเซเชจเซ เชฒเชฟเชเชเซเชธ ul เชธเซเชเชฟเชฎเชพเช เชฎเซเชเซ เชนเชคเซ. เชธเชฎเชฏเชพเชเชคเชฐเซ 20 เชชเซเชทเซเช เซ เชเชพเชเชช เชเชฐเซเชฏเชพ เชชเชเซ, เชฎเซเช เชตเชฟเชเชพเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช เชเซ เช เชเซเชฌ เช เชธเชฐเชเชพเชฐเช เชจเชฅเซ เช เชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช. เชธเซเชเซเชเชเชตเชฐเชซเซเชฒเซ เชชเชฐ, เชฎเซเช เชเซเชฏเซเช เชเซ เชเชฃเชพ เชฒเซเชเซ เชคเซเชฎเชจเซ เชชเซเชฐเซเชซเชพเชเชฒเชฎเชพเช เชธเชพเชเชเซเชธ เชธเซเชเชตเซ เชเซ, เชคเซเชฅเซ เชฎเซเช php เชฎเชพเช เชเช เชชเชพเชฐเซเชธเชฐ เชฒเชเซเชฏเซเช, เชเซ เชซเชเซเชค เชชเซเชฐเชฅเชฎเชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ เชชเซเชฐเซเชซเชพเชเชฒเซเชธเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชฏเซเช (SO เชชเชฐ เชเช เชธเซเชงเซเชจเชพ เชธเชฐเชจเชพเชฎเชพเช เชเชจเชพ เชเซเชตเชพ เชเซ: `/users/1` ), เชเชเซเชเชฟเชค เชเซ เชเชฎเชพเชเชฅเซ เชฒเชฟเชเชเซเชธ เชเชพเชขเซ เช เชจเซ เชคเซเชจเซ SQLite เชฎเชพเช เชเชฎเซเชฐเซเชฏเซเช.
เชเชจเซ เชฌเซเชเซเช เชธเชเชธเซเชเชฐเชฃ เชเชนเซ เชถเชเชพเชฏ: SQLite เชเซเชทเซเชเชเชฎเชพเช เชนเชเชพเชฐเซ URL เชจเซ เชธเชเชเซเชฐเชน, เชเซเชฃเซ HTML เชฎเชพเช เชธเซเชฅเชฟเชฐ เชธเซเชเชฟเชจเซเช เชธเซเชฅเชพเชจ เชฒเซเชงเซเช. เชฎเซเช เช เชธเซเชเชฟ เชชเชฐ เชเช เชธเชฐเชณ เชถเซเชง เชเชฐเซ. เชเชพเชฐเชฃ เชเซ เชคเซเชฏเชพเช เชซเชเซเชค URL เชนเชคเชพ, เชชเชเซ เชถเซเชง เชซเชเซเชค เชคเซเชฎเชจเชพ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชนเชคเซ.
เช เชคเชฌเชเซเชเซ เชฎเซเช เชชเซเชฐเซเชเซเชเซเช เชเซเชกเซ เชฆเซเชงเซ เช เชจเซ เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชชเชเซ เชคเซเชจเชพ เชชเชฐ เชชเชพเชเซ เชซเชฐเซเชฏเซ. เช เชคเชฌเชเซเชเซ, เชฎเชพเชฐเซ เชเชพเชฐเซเชฏ เช เชจเซเชญเชต เชคเซเชฐเชฃ เชตเชฐเซเชทเชฅเซ เชตเชงเซเชจเซ เชนเชคเซ เช เชจเซ เชฎเชจเซ เชฒเชพเชเซเชฏเซเช เชเซ เชนเซเช เชเชเชเช เชตเชงเซ เชเชเชญเซเชฐ เชเชฐเซ เชถเชเซเช เชเซเช. เช เชเชชเชฐเชพเชเชค, เชชเซเชฐเชฎเชพเชฃเชฎเชพเช เชจเชตเซ เชคเชเชจเซเชเซเชฎเชพเช เชจเชฟเชชเซเชฃเชคเชพ เชฎเซเชณเชตเชตเชพเชจเซ เชฎเซเชเซ เชเชเซเชเชพ เชนเชคเซ.
เชเชงเซเชจเชฟเช เชธเชเชธเซเชเชฐเชฃ
เชกเซเชเชฐเชฎเชพเช เชคเซเชจเชพเชค, เชกเซเชเชพเชฌเซเช mongoDb เชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ, เช เชจเซ เชคเชพเชเซเชคเชฐเชฎเชพเช เช, เชฎเซเชณเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ, เชเซ เชถเชฐเซเชเชคเชฎเชพเช เชซเชเซเชค เชเซเชถเซเชเช เชฎเชพเชเซ เชนเชคเซ. PHP เชฎเชพเชเชเซเชฐเซเชซเซเชฐเซเชฎเชตเชฐเซเชเชฎเชพเชเชฅเซ เชเชเชจเซ เชเชชเชฏเซเช เชเชงเชพเชฐ เชคเชฐเซเชเซ เชฅเชพเชฏ เชเซ.
เชธเชฎเชธเซเชฏเชพ
เชจเชตเซ เชธเชพเชเชเซเชธ เชเชจเซเชธเซเชฒ เชเชฎเชพเชจเซเชก เชฆเซเชตเชพเชฐเชพ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชธเชฟเชเชเซเชฐเชจเชธ เชฐเซเชคเซ เชจเซเชเซเชจเชพ เชเชฐเซ เชเซ:
- URL เชฆเซเชตเชพเชฐเชพ เชธเชพเชฎเชเซเชฐเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชเซ
- HTTPS เชเชชเชฒเชฌเซเชง เชนเชคเซเช เชเซ เชเซเชฎ เชคเซ เชฆเชฐเซเชถเชพเชตเชคเซ เชงเซเชตเช เชธเซเช เชเชฐเซ เชเซ
- เชตเซเชฌเชธเชพเชเชเชจเซ เชธเชพเชฐ เชธเชพเชเชตเซ เชเซ
- เชธเซเชคเซเชฐเซเชค HTML เช เชจเซ เชนเซเชกเชฐเซ "เชเชจเซเชกเซเชเซเชธเซเชเช" เชเชคเชฟเชนเชพเชธเชฎเชพเช เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ
- เชธเชพเชฎเชเซเชฐเซเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซ เชเซ, เชถเซเชฐเซเชทเช เช เชจเซ เชตเชฐเซเชฃเชจ เช เชฐเซเช เชเชฐเซ เชเซ
- เชกเซเชเชพเชจเซ เช เชฒเช เชธเชเชเซเชฐเชนเชฎเชพเช เชธเชพเชเชตเซ เชเซ
เช เชซเชเซเชค เชธเชพเชเชเซเชธเชจเซ เชธเซเชเซเชฐ เชเชฐเชตเชพ เช เชจเซ เชคเซเชฎเชจเซ เชธเซเชเชฟเชฎเชพเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซเช เชนเชคเซเช:

เชชเชฐเชเชคเซ เชฆเชฐเซเช เชตเชธเซเชคเซเชจเซเช เชเชชเชฎเซเชณเซ เช
เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ, เชตเชฐเซเชเซเชเชฐเชฃ เช
เชจเซ เชเซเชฐเชฎเชพเชเชเชฟเชค เชเชฐเชตเชพเชจเซ เชตเชฟเชเชพเชฐ, เชฆเชฐเซเช เชตเชธเซเชคเซเชจเซ เช
เชฆเซเชฏเชคเชจ เชฐเชพเชเชตเชพ, เช เชฆเชพเชเชฒเชพเชฎเชพเช เชธเชพเชฐเซ เชฐเซเชคเซ เชฌเชเชง เชฌเซเชธเชคเซ เชจเชฅเซ. เชธเชเชญเชตเชฟเชค DDoS เชจเซ เชเชพเชณเชตเชพ เชฎเชพเชเซ เชชเซเชทเซเช เซเชจเซ เชเชฐเซเชฐเซ เชเซเชก เชกเซเชชเซเชฒเชฟเชเซเชถเชจ เช
เชจเซ เช
เชตเชฐเซเชงเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชซเชเซเชค เชตเซเชฌ เชชเชฆเซเชงเชคเชฟ เชเชฎเซเชฐเชตเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เช เชฒเชฌเชคเซเชค, เชฌเชงเซเช เชธเชฟเชเชเซเชฐเชจเชธ เชฐเซเชคเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ, เช เชจเซ เชตเซเชฌ เชชเชฆเซเชงเชคเชฟเชฎเชพเช เชคเชฎเซ เชซเชเซเชค URL เชจเซ เชธเชพเชเชตเซ เชถเชเซ เชเซ เชเซเชฅเซ เชฐเชพเชเซเชทเชธเซ เชกเชฟเชฎเชจ เชธเซเชเชฟเชฎเชพเชเชฅเซ URL เชฎเชพเชเซเชจเชพ เชคเชฎเชพเชฎ เชเชพเชฐเซเชฏเซ เชเชฐเซ. เชชเชฐเชเชคเซ เชคเซเชฎ เชเชคเชพเช, เช เชนเซเช เชชเชฃ "เชเชคเชพเชฐ" เชถเชฌเซเชฆ เชชเซเชคเชพเชจเซ เชธเซเชเชตเซ เชเซ. เช เชจเซ เชเซ เชเชคเชพเชฐ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ เชชเชเซ เชฌเชงเชพ เชเชพเชฐเซเชฏเซเชจเซ เชตเชฟเชญเชพเชเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ เช เชจเซ เชเชเชพเชฎเชพเช เชเชเชพ เช เชธเซเชฎเซเชณ เชฐเซเชคเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชจเชฟเชฐเซเชฃเชฏ
เชคเชฎเชพเชฎ เชเชพเชฐเซเชฏเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชคเชพเชฐเซเชจเซ เช เชฎเชฒ เชเชฐเซ เช เชจเซ เชเชตเซเชจเซเช-เชเชงเชพเชฐเชฟเชค เชธเชฟเชธเซเชเชฎ เชฌเชจเชพเชตเซ. เช เชจเซ เชนเซเช เชฒเชพเชเชฌเชพ เชธเชฎเชฏเชฅเซ เชฐเซเชกเชฟเชธ เชธเซเชเซเชฐเซเชฎเซเชธ เช เชเชฎเชพเชตเชตเชพ เชฎเชพเชเชเซ เชเซเช.
PHP เชฎเชพเช Redis เชธเซเชเซเชฐเซเชฎเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ
เชเชพเชฐเชฃ เชเซ เชฎเชพเชฐเซเช เชฎเชพเชณเชเซเช เชคเซเชฐเชฃ เชเชพเชฏเชจเซเชเซเชธ เชธเชฟเชฎเซเชซเซเชจเซ, เชฒเชพเชฐเชพเชตเซเชฒ, เชฏเซเชเชเชฎเชพเชเชฅเซ เชเช เชจเชฅเซ, เชคเซเชฅเซ เชนเซเช เชเช เชธเซเชตเชคเชเชคเซเชฐ เชชเซเชธเซเชคเชเชพเชฒเชฏ เชถเซเชงเชตเชพ เชฎเชพเชเชเซ เชเซเช. เชชเชฐเชเชคเซ, เชเซเชฎ เชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ (เชชเซเชฐเชฅเชฎ เชชเชฐเซเชเซเชทเชพ เชชเชฐ), เชตเซเชฏเชเซเชคเชฟเชเชค เชเชเชญเซเชฐ เชชเซเชธเซเชคเชเชพเชฒเชฏเซ เชถเซเชงเชตเชพเชจเซเช เช เชถเชเซเชฏ เชเซ. เชเชคเชพเชฐเซเชจเซ เชฒเชเชคเซ เชฆเชฐเซเช เชตเชธเซเชคเซ เชเชพเช เชคเซ เชชเชพเชเช เชตเชฐเซเชท เชชเชนเซเชฒเชพ 3 เชเชฎเชฟเชเชจเซ เชชเซเชฐเซเชเซเชเซเช เชเซ, เช เชฅเชตเชพ เชซเซเชฐเซเชฎเชตเชฐเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒเซ เชเซ.
เชฎเซเช เชตเซเชฏเชเซเชคเชฟเชเชค เชเชชเชฏเซเชเซ เชเชเชเซเชจเชพ เชธเชชเซเชฒเชพเชฏเชฐ เชคเชฐเซเชเซ เชธเชฟเชฎเซเชซเซเชจเซ เชตเชฟเชถเซ เชเชฃเซเช เชธเชพเชเชญเชณเซเชฏเซเช เชเซ, เช เชจเซ เชนเซเช เชคเซเชฎเชพเชเชฅเซ เชเซเชเชฒเชพเชเชจเซ เชชเชนเซเชฒเซเชฅเซ เช เชเชชเชฏเซเช เชเชฐเซเช เชเซเช. เช เชจเซ เชฒเชพเชฐเชพเชตเซเชฒเชฎเชพเชเชฅเซ เชเซเชเชฒเซเช เชตเชธเซเชคเซเชเชจเซ เชชเชฃ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชคเซเชฎเชจเชพ ORM, เชซเซเชฐเซเชฎเชตเชฐเซเชเชจเซ เชนเชพเชเชฐเซ เชตเชฟเชจเชพ.
เชธเชฟเชฎเซเชซเซเชจเซ/เชฎเซเชธเซเชจเซเชเชฐ
เชชเซเชฐเชฅเชฎ เชเชฎเซเชฆเชตเชพเชฐ เชคเชฐเชค เช เชเชฆเชฐเซเชถ เชฒเชพเชเซเชฏเซ เช เชจเซ เชเซเช เชถเชเชเชพ เชตเชฟเชจเชพ เชฎเซเช เชคเซเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเซเช. เชชเชฐเชเชคเซ เชธเชฟเชฎเซเชซเซเชจเซเชจเซ เชฌเชนเชพเชฐเชจเชพ เชเชชเชฏเซเชเชจเชพ เชเชฆเชพเชนเชฐเชฃเซ เชเซเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซ เชตเชงเซ เชฎเซเชถเซเชเซเชฒ เชฌเชจเซเชฏเซเช. เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช, เช เชฐเซเชฅเชนเซเชจ เชจเชพเชฎเซ, เชธเชเชฆเซเชถเชพเช เชชเชธเชพเชฐ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชฌเชธ เช เชจเซ เชฐเซเชกเชฟเชธ เชชเชฐ เชชเชฃ เชตเชฐเซเชเซเชจเชพ เชธเชฎเซเชนเชฎเชพเชเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเชธเซเชฎเซเชฌเชฒ เชเชฐเชตเซเช?

เช
เชงเชฟเชเซเชค เชธเชพเชเช เชชเชฐเชจเชพ เชฆเชธเซเชคเชพเชตเซเชเซ เชเซเชฌ เชตเชฟเชเชคเชตเชพเชฐ เชนเชคเชพ, เชชเชฐเชเชคเซ เชเชฐเชเชญเชจเซเช เชตเชฐเซเชฃเชจ เชซเชเซเชค เชธเชฟเชฎเซเชซเซเชจเซ เชฎเชพเชเซ เชคเซเชฎเชจเชพ เชฎเชจเชชเชธเชเชฆ YML เช
เชจเซ เชฌเชฟเชจ-เชธเชฟเชฎเซเชซเซเชจเชฟเชธเซเช เชฎเชพเชเซ เช
เชจเซเชฏ เชเชพเชฆเซ เชชเชฆเซเชงเชคเชฟเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช. เชฎเชจเซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เช เชเซเช เชฐเชธ เชจเชนเซเชคเซ, เชเชพเชธ เชเชฐเซเชจเซ เชจเชตเชพ เชตเชฐเซเชทเชจเซ เชฐเชเชพเช เชฆเชฐเชฎเชฟเชฏเชพเชจ. เชชเชฐเชเชคเซ เชฎเชพเชฐเซ เช เช
เชจเชชเซเชเซเชทเชฟเชค เชฐเซเชคเซ เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ เชเชฐเชตเซเช เชชเชกเซเชฏเซเช.
เชธเชฟเชฎเซเชซเซเชจเซ เชธเซเชคเซเชฐเซเชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชฟเชธเซเชเชฎเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชจเซเชธเซเชเชจเซเชเซเช เชเชฐเชตเซ เชคเซ เชถเซเชงเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเซ เช เชชเชฃ เชเซเชธเซเชค เชธเชฎเชฏเชฎเชฐเซเชฏเชพเชฆเชพ เชฎเชพเชเซ เชธเซเชฅเซ เชคเซเชเซเช เชเชพเชฐเซเชฏ เชจเชฅเซ:

เช เชฌเชงเชพเชจเซ เชคเชชเชพเชธ เชเชฐเซเชฏเชพ เชชเชเซ เช
เชจเซ เชฎเชพเชฐเชพ เชนเชพเชฅเชฅเซ เชเชเชเช เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเชพ เชชเชเซ, เชนเซเช เชเชตเชพ เชจเชฟเชทเซเชเชฐเซเชท เชชเชฐ เชเชตเซเชฏเซ เชเซ เชนเซเช เชเซเช เชชเซเชฐเชเชพเชฐเชจเซ เชเซเชฐเซเช เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช เช
เชจเซ เชเชเชเช เชฌเซเชเซเช เช
เชเชฎเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช.
เชชเซเชฐเชเชพเชถเชฟเชค/เชเชคเชพเชฐ
เชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ เชเซ เช เชชเซเชธเซเชคเชเชพเชฒเชฏ เชฒเชพเชฐเชพเชตเซเชฒ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ เช เชจเซ เช เชจเซเชฏ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเชพ เชธเชฎเซเชน เชธเชพเชฅเซ เชเซเชธเซเชคเชชเชฃเซ เชเซเชกเชพเชฏเซเชฒเซเช เชเซ, เชคเซเชฅเซ เชฎเซเช เชคเซเชจเชพ เชชเชฐ เชตเชงเซ เชธเชฎเชฏ เชชเชธเชพเชฐ เชเชฐเซเชฏเซ เชจเชฅเซ: เชฎเซเช เชคเซเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเซเช, เชคเซเชจเซ เชเซเชฏเซเช, เช เชตเชฒเชเชฌเชจ เชเซเชฏเซเช เช เชจเซ เชคเซเชจเซ เชเชพเชขเซ เชจเชพเชเซเชฏเซเช.
yiisoft/yii2-เชเชคเชพเชฐ
เช เซเช เชเซ, เช เชนเซเช เชคเซ เชคเชฐเชค เช เชจเชพเชฎ เชชเชฐเชฅเซ เชงเชพเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช, เชซเชฐเซเชฅเซ, Yii2 เชธเชพเชฅเซ เชเชกเช เชเซเชกเชพเชฃ. เชฎเชพเชฐเซ เช เชฒเชพเชเชฌเซเชฐเซเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชชเชกเซเชฏเซ เชนเชคเซ เช เชจเซ เชคเซ เชเชฐเชพเชฌ เชจเชนเซเชคเซเช, เชชเชฐเชเชคเซ เชฎเซเช เช เชนเชเซเชเชค เชตเชฟเชถเซ เชตเชฟเชเชพเชฐเซเชฏเซเช เชจ เชนเชคเซเช เชเซ เชคเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ Yii2 เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเซ.
เชฌเชพเชเซเชจเชพ
GitHub เชชเชฐ เชฎเชจเซ เชเซ เชฌเซเชเซเช เชฌเชงเซเช เชฎเชณเซเชฏเซเช เชคเซ เช เชตเชฟเชถเซเชตเชธเชจเซเชฏ, เชเซเชจเชพ เช เชจเซ เชคเซเชฏเชเซ เชฆเซเชตเชพเชฏเซเชฒเชพ เชชเซเชฐเซเชเซเชเซเชเซเชธ เชนเชคเชพ เชเซเชฎเชพเช เชคเชพเชฐเชพเช, เชซเซเชฐเซเช เช เชจเซ เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชเชฎเชฟเช เชจเชฅเซ.
เชธเชฟเชฎเซเชซเซเชจเซ/เชฎเซเชธเซเชจเซเชเชฐ, เชคเชเชจเซเชเซ เชตเชฟเชเชคเซ เชชเชฐ เชชเชพเชเชพ เชซเชฐเซ
เชฎเชพเชฐเซ เช เชชเซเชธเซเชคเชเชพเชฒเชฏเชจเซ เชถเซเชง เชเชฐเชตเซ เชนเชคเซ เช เชจเซ เชฅเซเชกเซ เชตเชงเซ เชธเชฎเชฏ เชตเชฟเชคเชพเชตเซเชฏเชพ เชชเชเซ, เชนเซเช เชธเชเซเชทเชฎ เชฌเชจเซเชฏเซ. เชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ เชเซ เชฌเชงเซเช เชเชเชฆเชฎ เชธเชเชเซเชทเชฟเชชเซเชค เช เชจเซ เชธเชฐเชณ เชนเชคเซเช. เชฌเชธ เชเชพเชฒเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เชฎเซเช เชเช เชจเชพเชจเซเช เชเชพเชฐเชเชพเชจเซเช เชฌเชจเชพเชตเซเชฏเซเช, เชเชพเชฐเชฃ เชเซ... เชฎเชพเชฐเซ เชชเชพเชธเซ เชเชฃเชพ เชเชพเชฏเชฐ เช เชจเซ เชเซเชฆเชพ เชเซเชฆเชพ เชนเซเชจเซเชกเชฒเชฐเซเชธ เชนเซเชตเชพเชจเชพ เชนเชคเชพ.

เชฎเชพเชคเซเชฐ เชฅเซเชกเชพ เชชเชเชฒเชพเช:
- เช เชฎเซ เชฎเซเชธเซเช เชนเซเชจเซเชกเชฒเชฐเซเชธ เชฌเชจเชพเชตเซเช เชเซเช เชเซ เชซเชเซเชค เชเซเชฒ เชเชฐเชตเชพ เชฏเซเชเซเชฏ เชนเซเชตเชพ เชเซเชเช
- เช เชฎเซ เชคเซเชฎเชจเซ เชนเซเชจเซเชกเชฒเชฐเชกเซเชธเซเชเซเชฐเซเชชเซเชเชฐเชฎเชพเช เชฒเชชเซเชเซเช เชเซเช (เชฒเชพเชเชฌเซเชฐเซเชฐเซเชฎเชพเชเชฅเซ เชตเชฐเซเช)
- เช เชฎเซ เช "เชตเชฐเซเชฃเชจเชเชฐเซเชคเชพเช" เชจเซ เชนเซเชจเซเชกเชฒเชฐเซเชธเชฒเซเชเซเชเชฐ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชฒเชชเซเชเซเช เชเซเช
- เชนเซเชจเซเชกเชฒเชฐเซเชธเชฒเซเชเซเชเชฐเชจเซ เชฎเซเชธเซเชเชฌเชธ เชฆเชพเชเชฒเชพเชฎเชพเช เชเชฎเซเชฐเซ เชฐเชนเซเชฏเชพ เชเซ
- เช เชฎเซ เชธเซเชจเซเชกเชฐเชฒเซเชเซเชเชฐเชจเซ `เชธเซเชจเซเชกเชฐเชเชเชเชฐเชซเซเชธ`เชจเซ เชธเชฎเซเชน เชชเชธเชพเชฐ เชเชฐเซเช เชเซเช, เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช `เชฐเซเชกเชฟเชธเชเซเชฐเชพเชจเซเชธเชชเซเชฐเซเช` เชตเชฐเซเชเซเชจเชพ เชเชฆเชพเชนเชฐเชฃเซ, เชเซ เชธเซเชชเชทเซเช เชฐเซเชคเซ เชเซเช เชตเซเชฒ เชเซ.
- MessageBus เชเชฆเชพเชนเชฐเชฃเชฎเชพเช SendersLocator เชเชฎเซเชฐเชตเชพเชจเซเช
เชฎเซเชธเซเชเชฌเชธ เชชเชพเชธเซ `->เชกเชฟเชธเซเชชเซเช()` เชชเชฆเซเชงเชคเชฟ เชเซ เชเซ เชนเซเชจเซเชกเชฒเชฐเซเชธเชฒเซเชเซเชเชฐเชฎเชพเช เชฏเซเชเซเชฏ เชนเซเชจเซเชกเชฒเชฐเซเชธเชจเซ เชเซเช เชเซ เช เชจเซ เชฌเชธ (เชฐเซเชกเซเชธ เชธเซเชเซเชฐเซเชฎเซเชธ) เชฆเซเชตเชพเชฐเชพ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ เช เชจเซเชฐเซเชช `เชธเซเชจเซเชกเชฐ เชเชจเซเชเชฐเชซเซเชธ` เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชฎเชจเซ เชธเชเชฆเซเชถ เชฎเซเชเชฒเซ เชเซ.
เชเชจเซเชเซเชจเชฐ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช (เช เชเชฟเชธเซเชธเชพเชฎเชพเช php-di), เช เชธเชฎเชเซเชฐ เชฌเชเชกเชฒ เช เชฐเซเชคเซ เชเซเช เชตเซ เชถเชเชพเชฏ เชเซ:
CONTAINER_REDIS_TRANSPORT_SECRET => function (ContainerInterface $c) {
return new RedisTransport(
$c->get(CONTAINER_REDIS_STREAM_CONNECTION_SECRET),
$c->get(CONTAINER_SERIALIZER))
;
},
CONTAINER_REDIS_TRANSPORT_LOG => function (ContainerInterface $c) {
return new RedisTransport(
$c->get(CONTAINER_REDIS_STREAM_CONNECTION_LOG),
$c->get(CONTAINER_SERIALIZER))
;
},
CONTAINER_REDIS_STREAM_RECEIVER_SECRET => function (ContainerInterface $c) {
return new RedisReceiver(
$c->get(CONTAINER_REDIS_STREAM_CONNECTION_SECRET),
$c->get(CONTAINER_SERIALIZER)
);
},
CONTAINER_REDIS_STREAM_RECEIVER_LOG => function (ContainerInterface $c) {
return new RedisReceiver(
$c->get(CONTAINER_REDIS_STREAM_CONNECTION_LOG),
$c->get(CONTAINER_SERIALIZER)
);
},
CONTAINER_REDIS_STREAM_BUS => function (ContainerInterface $c) {
$sendersLocator = new SendersLocator([
AppMessagesSecretJsonMessages::class => [CONTAINER_REDIS_TRANSPORT_SECRET],
AppMessagesDaemonLogMessage::class => [CONTAINER_REDIS_TRANSPORT_LOG],
], $c);
$middleware[] = new SendMessageMiddleware($sendersLocator);
return new MessageBus($middleware);
},
CONTAINER_REDIS_STREAM_CONNECTION_SECRET => function (ContainerInterface $c) {
$host = 'bu-02-redis';
$port = 6379;
$dsn = "redis://$host:$port";
$options = [
'stream' => 'secret',
'group' => 'default',
'consumer' => 'default',
];
return Connection::fromDsn($dsn, $options);
},
CONTAINER_REDIS_STREAM_CONNECTION_LOG => function (ContainerInterface $c) {
$host = 'bu-02-redis';
$port = 6379;
$dsn = "redis://$host:$port";
$options = [
'stream' => 'log',
'group' => 'default',
'consumer' => 'default',
];
return Connection::fromDsn($dsn, $options);
},
เช เชนเซเช เชคเชฎเซ เชเซเช เชถเชเซ เชเซ เชเซ SendersLocator เชฎเชพเช เช เชฎเซ เชฌเซ เช เชฒเช-เช เชฒเช เชธเชเชฆเซเชถเชพเช เชฎเชพเชเซ เช เชฒเช-เช เชฒเช "เชชเชฐเชฟเชตเชนเชจ" เช เชธเชพเชเชจ เชเชฐเซเชฏเชพ เชเซ, เชเซเชฎเชพเชเชจเชพ เชฆเชฐเซเชเชจเซเช เช เชจเซเชฐเซเชช เชธเซเชเซเชฐเซเชฎเซเชธ เชธเชพเชฅเซเชจเซเช เชชเซเชคเชพเชจเซเช เชเซเชกเชพเชฃ เชเซ.
เชฎเซเช เชจเซเชเซเชจเซ เชฌเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชเชฌเซเชเชพ เชธเชพเชฅเซ เชตเชพเชคเชเซเชค เชเชฐเชคเชพ เชคเซเชฐเชฃ เชกเชฟเชฎเชจเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฆเชฐเซเชถเชพเชตเชคเซ เชเช เช เชฒเช เชกเซเชฎเซ เชชเซเชฐเซเชเซเชเซเช เชฌเชจเชพเชตเซเชฏเซ: .
เชชเชฐเชเชคเซ เชนเซเช เชคเชฎเชจเซ เชฌเชคเชพเชตเซเชถ เชเซ เชเชชเชญเซเชเซเชคเชพเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชธเชเชฐเชเชฟเชค เชเชฐเซ เชถเชเชพเชฏ:
use AppMessagesDaemonLogMessage;
use SymfonyComponentMessengerHandlerHandlerDescriptor;
use SymfonyComponentMessengerHandlerHandlersLocator;
use SymfonyComponentMessengerMessageBus;
use SymfonyComponentMessengerMiddlewareHandleMessageMiddleware;
use SymfonyComponentMessengerMiddlewareSendMessageMiddleware;
use SymfonyComponentMessengerTransportSenderSendersLocator;
require_once __DIR__ . '/../vendor/autoload.php';
/** @var PsrContainerContainerInterface $container */
$container = require_once('config/container.php');
$handlers = [
DaemonLogMessage::class => [
new HandlerDescriptor(
function (DaemonLogMessage $m) {
error_log('DaemonLogHandler: message handled: / ' . $m->getMessage());
},
['from_transport' => CONTAINER_REDIS_TRANSPORT_LOG]
)
],
];
$middleware = [];
$middleware[] = new HandleMessageMiddleware(new HandlersLocator($handlers));
$sendersLocator = new SendersLocator(['*' => [CONTAINER_REDIS_TRANSPORT_LOG]], $container);
$middleware[] = new SendMessageMiddleware($sendersLocator);
$bus = new MessageBus($middleware);
$receivers = [
CONTAINER_REDIS_TRANSPORT_LOG => $container->get(CONTAINER_REDIS_STREAM_RECEIVER_LOG),
];
$w = new SymfonyComponentMessengerWorker($receivers, $bus, $container->get(CONTAINER_EVENT_DISPATCHER));
$w->run();
เชเชชเซเชฒเชฟเชเซเชถเชจเชฎเชพเช เช เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ
เชฌเชธเชจเซ เชฎเชพเชฐเชพ เชฌเซเชเชเชจเซเชกเชฎเชพเช เช เชฎเชฒเชฎเชพเช เชฎเซเชเซเชฏเชพ เชชเชเซ, เชฎเซเช เชเซเชจเชพ เชธเชฟเชเชเซเชฐเชจเชธ เชเชฎเชพเชจเซเชกเชฎเชพเชเชฅเซ เชตเซเชฏเชเซเชคเชฟเชเชค เชคเชฌเชเซเชเชพเชเชจเซ เช เชฒเช เชเชฐเซเชฏเชพ เช เชจเซ เช เชฒเช เชนเซเชจเซเชกเชฒเชฐเซเชธ เชฌเชจเชพเชตเซเชฏเชพ, เชเซเชฎเชพเชเชฅเซ เชฆเชฐเซเช เชชเซเชคเชชเซเชคเชพเชจเซเช เชเชพเชฎ เชเชฐเซ เชเซ.
เชกเซเชเชพเชฌเซเชเชฎเชพเช เชจเชตเซ เชธเชพเชเช เชเชฎเซเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชชเชพเชเชชเชฒเชพเชเชจ เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชคเซ เชนเชคเซ:

เช
เชจเซ เชคเซ เชชเชเซ เชคเชฐเชค เช, เชฎเชพเชฐเชพ เชฎเชพเชเซ เชจเชตเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชเชฎเซเชฐเชตเชพเชจเซเช เชเซเชฌ เชธเชฐเชณ เชฌเชจเซเชฏเซเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, Rss เชจเซ เชเชเซเชธเชเซเชฐเซเชเซเช เช
เชจเซ เชชเชพเชฐเซเชธเชฟเชเช. เชเชพเชฐเชฃ เชเซ เช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฎเชพเชเซ เชฎเซเชณ เชธเชพเชฎเชเซเชฐเซเชจเซ เชชเชฃ เชเชฐเซเชฐ เชชเชกเซ เชเซ, เชชเชเซ RSS เชฒเชฟเชเช เชเชเซเชธเชเซเชฐเซเชเซเชเชฐ เชนเซเชจเซเชกเชฒเชฐ, เชเซเชฎ เชเซ WebsiteIndexHistoryPersistor, "เชธเชพเชฎเชเซเชฐเซ/HtmlContent" เชธเชเชฆเซเชถเชจเซ เชธเชฌเซเชธเซเชเซเชฐเชพเชเชฌ เชเชฐเซ เชเซ, เชคเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ เช
เชจเซ เชเชเซเชเชฟเชค เชธเชเชฆเซเชถเชจเซ เชคเซเชจเซ เชชเชพเชเชชเชฒเชพเชเชจ เชธเชพเชฅเซ เชเชเชณ เชชเชธเชพเชฐ เชเชฐเซ เชเซ.

เช
เชเชคเซ, เช
เชฎเซ เชเชฃเชพ เชกเชฟเชฎเชจ เชธเชพเชฅเซ เชธเชฎเชพเชชเซเชค เชฅเชฏเชพ, เชเซเชฎเชพเชเชฅเซ เชฆเชฐเซเช เชซเชเซเชค เชเชฐเซเชฐเซ เชธเชเชธเชพเชงเชจเซ เชธเชพเชฅเซ เชเซเชกเชพเชฃ เชเชพเชณเชตเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเช เชฐเชพเชเซเชทเชธ เชเซเชฐเซเชฒเชฐเซเชธ เชธเชพเชฎเชเซเชฐเซ เชฎเชพเชเซ เชเชจเซเชเชฐเชจเซเช เชชเชฐ เชเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชตเชพ เชคเชฎเชพเชฎ เชนเซเชจเซเชกเชฒเชฐเซเชธ เช
เชจเซ เชกเชฟเชฎเชจ เชธเชฎเชพเชตเซ เชเซ เชเชเซ เชฐเชนเซเชตเซเช เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฃ เชงเชฐเชพเชตเซ เชเซ.
เชนเชตเซ, เชกเซเชเชพเชฌเซเชเชฎเชพเชเชฅเซ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซ เชฌเชฆเชฒเซ, เชชเชฐเซเชธเชฟเชธเซเชเชฐ เชฆเซเชตเชพเชฐเชพ เชฆเชพเชเชฒ เชเชฐเซเชฏเชพ เชชเชเซ เชเชฐเซเชฐเซ เชเชเชกเซ เชฌเชธ เชฆเซเชตเชพเชฐเชพ เชฌเชงเชพ เชฐเชธ เชงเชฐเชพเชตเชคเชพ เชนเซเชจเซเชกเชฒเชฐเซเชธเชจเซ เชเซเชฐเชพเชจเซเชธเชฎเชฟเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชธเซเชฐเซเชธ: www.habr.com
