PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดฎเตเตปเดตเดพเดšเด•เด‚

เดžเดพเตป เด’เดฐเต เดนเต‹เดฌเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดŽเดจเตเดฑเต† เดตเต†เดฌเตโ€Œเดธเตˆเดฑเตเดฑเต, เดฐเดธเด•เดฐเดฎเดพเดฏ เดนเต‹เด‚ เดชเต‡เดœเตเด•เดณเตเด‚ เดตเตเดฏเด•เตเดคเดฟเด—เดค เดธเตˆเดฑเตเดฑเตเด•เดณเตเด‚ เดนเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฃเต เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดŽเดจเตเดฑเต† เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดฏเดพเดคเตเดฐเดฏเตเดŸเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดคเดจเตเดจเต† เดˆ เดตเดฟเดทเดฏเด‚ เดŽเดจเดฟเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเดพเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ; เดคเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เด…เดตเดฐเตเดŸเต† เดนเต‹เดฌเดฟเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดŽเดดเตเดคเตเดจเตเดจ เดฎเดฟเด•เดšเตเดš เดชเตเดฐเตŠเดซเดทเดฃเดฒเตเด•เดณเต† เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเตฝ เด† เดจเดฟเดฎเดฟเดทเด‚ เดžเดพเตป เด†เด•เตผเดทเดฟเดšเตเดšเต. เด…เดต เดŽเดจเดฟเด•เตเด•เดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจ เดถเต€เดฒเด‚ เด‡เดจเตเดจเตเด‚ เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเดจเตเดจเต: เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพ เดตเดพเดฃเดฟเดœเตเดฏ เดธเตˆเดฑเตเดฑเตเด•เดณเดฟเดฒเตเด‚, เดตเดณเดฐเต† เดตเดพเดฃเดฟเดœเตเดฏเดชเดฐเดฎเดพเดฏ เดธเตˆเดฑเตเดฑเตเด•เดณเดฟเดฒเตเด‚, เดฐเดšเดฏเดฟเดคเดพเด•เตเด•เตพเด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ เดžเดพเตป เด…เดŸเดฟเด•เตเด•เตเดฑเดฟเดชเตเดชเดฟเตฝ เดจเต‹เด•เตเด•เตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเดจเตเดจเต.

เด†เดถเดฏเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ

เด†เดฆเตเดฏ เดชเดคเดฟเดชเตเดชเต เดŽเดจเตเดฑเต† เดธเตเดตเด•เดพเดฐเตเดฏ เดตเต†เดฌเตโ€Œเดธเตˆเดฑเตเดฑเดฟเดฒเต† เด’เดฐเต html เดชเต‡เดœเต เดฎเดพเดคเตเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดตเดฟเดŸเต† เดžเดพเตป เด’เดชเตเดชเตเด•เดณเตเดณเตเดณ เดฒเดฟเด™เตเด•เตเด•เตพ เด’เดฐเต ul เดฒเดฟเดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด‡เดŸเตเดŸเต. เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เด•เดพเดฒเดฏเดณเดตเดฟเตฝ 20 เดชเต‡เดœเตเด•เตพ เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดคเดคเดฟเดจเดพเตฝ, เด‡เดคเต เดตเดณเดฐเต† เดซเดฒเดชเตเดฐเดฆเดฎเดฒเตเดฒเต†เดจเตเดจเต เดžเดพเตป เดšเดฟเดจเตเดคเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ, เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดธเตเดฑเตเดฑเดพเด•เตเด•เตเด“เดตเตผเดซเตเดฒเต‹เดฏเดฟเตฝ, เดชเดฒเดฐเตเด‚ เด…เดตเดฐเตเดŸเต† เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เดณเดฟเตฝ เดธเตˆเดฑเตเดฑเตเด•เตพ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเดšเตเดšเต, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป php-เตฝ เด’เดฐเต เดชเดพเดดเตเดธเตผ เดŽเดดเตเดคเดฟ, เด†เดฆเตเดฏเดคเตเดคเต‡เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเดšเตเดšเต เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เดณเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เดฏเดฟ (เด‡เดจเตเดจเต เดตเดฐเต† SO-เดฏเดฟเดฒเต† เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฃเต: `/users/1` ), เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดŸเดพเด—เดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดฟเด™เตเด•เตเด•เตพ เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเต เด…เดคเต SQLite-เตฝ เดšเต‡เตผเดคเตเดคเต.

เด‡เดคเดฟเดจเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดชเดคเดฟเดชเตเดชเต เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดพเด‚: เด’เดฐเต SQLite เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เดชเดคเดฟเดจเดพเดฏเดฟเดฐเด•เตเด•เดฃเด•เตเด•เดฟเดจเต URL-เด•เดณเตเดŸเต† เด’เดฐเต เดถเต‡เด–เดฐเด‚, เด…เดคเต HTML-เดฒเต† เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดฒเดฟเดธเตเดฑเตเดฑเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดšเตเดšเต. เดˆ เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดžเดพเตป เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดคเดฟเดฐเดฏเตฝ เดจเดŸเดคเตเดคเดฟ. เด•เดพเดฐเดฃเด‚ URL-เด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเตเดณเตเดณเต‚, เดคเตเดŸเตผเดจเตเดจเต เดคเดฟเดฐเดฏเตฝ เด…เดตเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดžเดพเตป เดชเตเดฐเตŠเดœเด•เตเดฑเตเดฑเต เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดšเต เดตเดณเดฐเต†เด•เตเด•เดพเดฒเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เด…เดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เดฟ. เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดŽเดจเตเดฑเต† เดชเตเดฐเดตเตƒเดคเตเดคเดฟ เดชเดฐเดฟเดšเดฏเด‚ เด‡เดคเดฟเดจเด•เด‚ เดฎเต‚เดจเตเดจเต เดตเตผเดทเดคเตเดคเดฟเดฒเต‡เดฑเต†เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเดฟเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด—เต—เดฐเดตเดฎเตเดณเตเดณ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดคเต‹เดจเตเดจเดฟ. เด•เต‚เดŸเดพเดคเต†, เดคเดพเดฐเดคเดฎเตเดฏเต‡เดจ เดชเตเดคเดฟเดฏ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเด•เดณเดฟเตฝ เดชเตเดฐเดพเดตเต€เดฃเตเดฏเด‚ เดจเต‡เดŸเดพเดจเตเดณเตเดณ เดตเดฒเดฟเดฏ เด†เด—เตเดฐเดนเดฎเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เด†เดงเตเดจเดฟเด• เดชเดคเดฟเดชเตเดชเต

เดชเดฆเตเดงเดคเดฟ เดกเต‹เด•เตเด•เดฑเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเต, เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดฎเต‹เด‚เด—เต‹เดกเดฟเดฌเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟ, เด…เดŸเตเดคเตเดคเดฟเดŸเต† เดฑเดพเดกเดฟเดทเต เดšเต‡เตผเดคเตเดคเต, เด‡เดคเต เด†เดฆเตเดฏเด‚ เด•เดพเดทเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. PHP เดฎเตˆเด•เตเดฐเต‹เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เตเด•เดณเดฟเตฝ เด’เดจเตเดจเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตเดฐเดถเตเดจเด‚

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด•เตบเดธเต‹เตพ เด•เดฎเดพเตปเดกเต เดตเดดเดฟ เดชเตเดคเดฟเดฏ เดธเตˆเดฑเตเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต:

  • URL เดชเตเดฐเด•เดพเดฐเด‚ เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต
  • HTTPS เดฒเดญเตเดฏเดฎเดพเดฃเต‹ เดŽเดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดซเตเดฒเดพเด—เต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเดฟเดจเตเดฑเต† เดธเดพเดฐเดพเด‚เดถเด‚ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต
  • เด‰เดฑเดตเดฟเดŸ HTML เด‰เด‚ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เดณเตเด‚ "เด‡เตปเดกเด•เตเดธเดฟเด‚เด—เต" เดšเดฐเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดธเด‚เดฐเด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดถเต€เตผเดทเด•เดตเตเด‚ เดตเดฟเดตเดฐเดฃเดตเตเด‚ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เตเดจเตเดจเต
  • เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดถเต‡เด–เดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต

เดธเตˆเดฑเตเดฑเตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดต เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เดฎเดคเดฟเดฏเดพเด•เตเด‚:

PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเด‚ เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดธเต‚เดšเดฟเด•เดฏเดฟเดฒเดพเด•เตเด•เตเด•, เดคเดฐเด‚เดคเดฟเดฐเดฟเด•เตเด•เตเด•, เดฑเดพเด™เตเด•เต เดšเต†เดฏเตเดฏเตเด•, เดŽเดฒเตเดฒเดพเด‚ เด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด• เดŽเดจเตเดจ เด†เดถเดฏเด‚ เดˆ เดฎเดพเดคเตƒเด•เดฏเดฟเตฝ เดจเดจเตเดจเดพเดฏเดฟ เดฏเต‹เดœเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดชเต‡เดœเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดตเต†เดฌเต เดฐเต€เดคเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเต‹เดฒเตเด‚ เด•เต‹เดกเต เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ DDoS เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป เดคเดŸเดฏเดฒเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เดชเตŠเดคเตเดตเต‡, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดŽเดฒเตเดฒเดพเด‚ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเดšเตเดšเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เด•เต‚เดŸเดพเดคเต† เดตเต†เดฌเต เดฐเต€เดคเดฟเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต URL เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเตเดตเดดเดฟ เดญเดฏเด™เตเด•เดฐเดฎเดพเดฏ เดกเต†เดฎเตบ เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ URL-เด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดœเต‹เดฒเดฟเด•เดณเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดŸเตเดŸเตเด‚, เด‡เดตเดฟเดŸเต† เดชเต‹เดฒเตเด‚ "เด•เตเดฏเต‚" เดŽเดจเตเดจ เดตเดพเด•เตเด•เต เดธเตเดตเดฏเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เด•เตเดฏเต‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดŽเดฒเตเดฒเดพ เดœเต‹เดฒเดฟเด•เดณเตเด‚ เดตเดฟเดญเดœเดฟเดšเตเดšเต เด•เตเดฑเดžเตเดžเดคเต เด…เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเดฏเดฟ เดจเดฟเตผเดตเดนเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดคเต€เดฐเตเดฎเดพเดจเด‚

เดŽเดฒเตเดฒเดพ เดœเต‹เดฒเดฟเด•เดณเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เตเดฏเต‚เด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เด‡เดตเดจเตเดฑเต-เดกเตเดฐเตˆเดตเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•. เดตเดณเดฐเต†เด•เตเด•เดพเดฒเดฎเดพเดฏเดฟ เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เดฎเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

PHP-เดฏเดฟเตฝ Redis เดธเตเดŸเตเดฐเต€เดฎเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เด•เดพเดฐเดฃเด‚ เดŽเดจเตเดฑเต† เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต เดธเดฟเด‚เดซเดฃเดฟ, เดฒเดพเดฑเดตเต†เตฝ, เดฏเดฟ เดŽเดจเตเดจเต€ เดฎเต‚เดจเตเดจเต เดญเต€เดฎเตปเดฎเดพเดฐเดฟเตฝ เด’เดจเตเดจเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เด’เดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดชเด•เตเดทเต‡, เด…เดคเต เดฎเดพเดฑเดฟเดฏเดคเตเดชเต‹เดฒเต† (เด†เดฆเตเดฏ เดชเดฐเต€เด•เตเดทเดฏเดฟเตฝ), เดตเตเดฏเด•เตเดคเดฟเด—เดค เด—เตเดฐเตเดคเดฐเดฎเดพเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต. เด•เตเดฏเต‚เด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดŽเดฒเตเดฒเดพเด‚ เด’เดจเตเดจเตเด•เดฟเตฝ เด…เดžเตเดšเต เดตเตผเดทเด‚ เดฎเตเดฎเตเดชเต 3 เด•เดฎเตเดฎเดฟเดฑเตเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด†เดฃเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเตเดฏเด•เตเดคเดฟเด—เดค เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต† เดตเดฟเดคเดฐเดฃเด•เตเด•เดพเดฐเตป เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดธเดฟเด‚เดซเต‹เดฃเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดงเดพเดฐเดพเดณเด‚ เด•เต‡เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด…เดตเดฏเดฟเตฝ เดšเดฟเดฒเดคเต เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต†, Laravel-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดšเดฟเดฒ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด…เดตเดฏเตเดŸเต† ORM, เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดฑเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเต†.

เดธเดฟเด‚เดซเดฃเดฟ/เดฎเต†เดธเดžเตเดšเตผ

เด†เดฆเตเดฏเดคเตเดคเต† เด•เดพเตปเดกเดฟเดกเต‡เดฑเตเดฑเต เด‰เดŸเดจเดŸเดฟ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเดฟ, เดธเด‚เดถเดฏเดฎเดฟเดฒเตเดฒเดพเดคเต† เดžเดพเตป เด…เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต. เดŽเดจเตเดจเดพเตฝ เดธเดฟเด‚เดซเต‹เดฃเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเตเดณเตเดณ เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เด—เต‚เด—เดฟเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด•เต‚เดŸเตเดคเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ. เดธเดพเตผเดตเดคเตเดฐเดฟเด•เดตเตเด‚ เด…เตผเดคเตเดฅเดถเต‚เดจเตเดฏเดตเตเดฎเดพเดฏ เดชเต‡เดฐเตเด•เตพ, เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฌเดธเต, เด•เต‚เดŸเดพเดคเต† เดฑเต†เดกเดฟเดธเดฟเตฝ เดชเต‹เดฒเตเด‚ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เด•เตเดฒเดพเดธเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเด™เตเด™เดจเต† เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดพเด‚?

PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด”เดฆเตเดฏเต‹เด—เดฟเด• เดธเตˆเดฑเตเดฑเดฟเดฒเต† เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดตเดณเดฐเต† เดตเดฟเดถเดฆเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดธเดฟเด‚เดซเดฃเดฟเด•เตเด•เต เด…เดตเดฐเตเดŸเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ YML เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเด‚ เดธเดฟเด‚เดซเดฃเดฟเดธเตเดฑเตเดฑเต เด…เดฒเตเดฒเดพเดคเตเดคเดตเตผเด•เตเด•เดพเดฏเดฟ เดฎเดฑเตเดฑเต เดฎเดพเดœเดฟเด•เต เดฐเต€เดคเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดธเดฎเดพเดฐเด‚เดญเด‚ เดตเดฟเดตเดฐเดฟเดšเตเดšเดคเต. เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เดชเตเดคเตเดตเดคเตเดธเดฐ เด…เดตเดงเดฟเด•เตเด•เดพเดฒเดคเตเดคเต. เดชเด•เตเดทเต‡, เด…เดชเตเดฐเดคเต€เด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เดตเดณเดฐเต†เด•เตเด•เดพเดฒเดฎเดพเดฏเดฟ เดŽเดจเดฟเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต.

เดธเดฟเด‚เดซเต‹เดฃเดฟ เดธเตเดฐเต‹เดคเดธเตเดธเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดŽเด™เตเด™เดจเต† เดคเตฝเด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด•เตผเดถเดจเดฎเดพเดฏ เดธเดฎเดฏเดชเดฐเดฟเดงเดฟเด•เตเด•เตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดจเดฟเดธเตเดธเดพเดฐเดฎเดพเดฏ เดœเต‹เดฒเดฟเดฏเดฒเตเดฒ:

PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด†เดดเตเดจเตเดจเดฟเดฑเด™เตเด™เดฟ, เด•เตˆเด•เตŠเดฃเตเดŸเต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเดชเตเดชเต‹เตพ, เดžเดพเตป เด’เดฐเตเดคเดฐเด‚ เด•เตเดฐเดšเตเดšเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดŽเดจเตเดจ เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเดฒเต†เดคเตเดคเดฟ, เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต.

เดชเตเดฐเด•เดพเดถเดฟเดคเด‚/เด•เตเดฏเต‚

เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดฒเดพเดฑเดตเต†เตฝ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเตเดฎเดพเดฏเตเด‚ เดฎเดฑเตเดฑเต เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเดฎเดพเดฏเตเด‚ เด•เตผเดถเดจเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟ, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป เด…เดคเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเดฟเดฒเตเดฒ: เดžเดพเตป เด…เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต, เดจเต‹เด•เตเด•เดฟ, เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด•เดฃเตเดŸเต, เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ.

yiisoft/yii2-เด•เตเดฏเต‚

เดถเดฐเดฟ, เด‡เดตเดฟเดŸเต† เด‡เดคเต เด‰เดŸเตป เดคเดจเตเดจเต† เดชเต‡เดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเต, เดตเต€เดฃเตเดŸเตเด‚, Yii2 เดฒเต‡เด•เตเด•เต เด’เดฐเต เด•เตผเดถเดจเดฎเดพเดฏ เด•เดฃเด•เตเดทเตป. เดŽเดจเดฟเด•เตเด•เต เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต, เด…เดคเต เดฎเต‹เดถเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด‡เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ Yii2-เดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดšเดฟเดจเตเดคเดฟเดšเตเดšเดฟเดฒเตเดฒ.

เดฌเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดต

GitHub-เตฝ เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏ เดฎเดฑเตเดฑเต†เดฒเตเดฒเดพเด‚ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดฒเตเดฒเดพเดคเตเดคเดคเตเด‚ เด•เดพเดฒเดนเดฐเดฃเดชเตเดชเต†เดŸเตเดŸเดคเตเด‚ เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเด‚ เดซเต‹เตผเด•เตเด•เตเด•เดณเตเด‚ เดงเดพเดฐเดพเดณเด‚ เด•เดฎเตเดฎเดฟเดฑเตเดฑเตเด•เดณเตเด‚ เด‡เดฒเตเดฒเดพเดคเตเดคเดคเตเดฎเดพเดฏ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดพเดฃเต.

เดธเดฟเด‚เดซเดฃเดฟ/เดฎเต†เดธเดžเตเดšเตผ, เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เดŽเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•

เดŽเดจเดฟเด•เตเด•เต เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต, เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเด‚ เดšเดฟเดฒเดตเดดเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚ เดŽเดจเดฟเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต. เดŽเดฒเตเดฒเดพเด‚ เดคเดฟเด•เดšเตเดšเตเด‚ เดธเด‚เด•เตเดทเดฟเดชเตเดคเดตเตเด‚ เดฒเดณเดฟเดคเดตเตเดฎเดพเดฃเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเดฟ. เดฌเดธเต เดคเตฝเด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเดพเตป, เดžเดพเตป เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดซเดพเด•เตเดŸเดฑเดฟ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟ, เด•เดพเดฐเดฃเด‚... เดŽเดจเดฟเด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เดŸเดฏเดฑเตเด•เดณเตเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดค เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดเดคเดพเดจเตเด‚ เด˜เดŸเตเดŸเด™เตเด™เตพ เดฎเดพเดคเตเดฐเด‚:

  • เดžเด™เตเด™เตพ เดฎเต†เดธเต‡เดœเต เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดตเดฟเดณเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต
  • เดžเด™เตเด™เตพ เด…เดตเดฏเต† HandlerDescriptor-เตฝ เดชเตŠเดคเดฟเดฏเตเดจเตเดจเต (เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เตเดฒเดพเดธเต)
  • เดžเด™เตเด™เตพ เดˆ "เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฑเตเด•เตพ" เด’เดฐเต HandlersLocator เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดชเตŠเดคเดฟเดฏเตเดจเตเดจเต
  • MessageBus เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต HandlersLocator เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต
  • SendersLocator-เดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ เด’เดฐเต เดธเต†เดฑเตเดฑเต `SenderInterface` เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต, เดŽเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ `เดฑเต†เดกเดฟเดธเตโ€ŒเดŸเตเดฐเดพเตปเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเต' เด•เตเดฒเดพเดธเตเด•เดณเตเดŸเต† เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ
  • MessageBus เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต SendersLocator เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

MessageBus-เดจเต เด’เดฐเต `->เดกเดฟเดธเตโ€Œเดชเดพเดšเตเดšเต()` เดฐเต€เดคเดฟเดฏเตเดฃเตเดŸเต, เด…เดคเต HandlersLocator-เตฝ เด‰เดšเดฟเดคเดฎเดพเดฏ เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เดณเต† เด•เดฃเตเดŸเต†เดคเตเดคเดฟ เด…เดตเตผเด•เตเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต, เดฌเดธเต (เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เดฎเตเด•เตพ) เดตเดดเดฟ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด…เดจเตเดฌเดจเตเดง `เดธเต†เตปเดกเตผ เด‡เดจเตเดฑเตผเดซเต‡เดธเต` เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต.

เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ (เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ 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-เตฝ เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค โ€œเดŸเตเดฐเดพเตปเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเตเด•เตพโ€ เดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดตเดฏเดฟเตฝ เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เด…เดจเตเดฌเดจเตเดง เดธเตเดŸเตเดฐเต€เดฎเตเด•เดณเตเดฎเดพเดฏเดฟ เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เด•เดฃเด•เตเดทเดจเตเดฃเตเดŸเต.

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฌเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดฐเดธเตเดชเดฐเด‚ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจ เดฎเต‚เดจเตเดจเต เดกเต†เดฎเดฃเตเด•เดณเตเดŸเต† เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเตเดฐเด•เดŸเดฎเดพเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดกเต†เดฎเต‹ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดžเดพเตป เด‰เดฃเตเดŸเดพเด•เตเด•เดฟ: https://github.com/backend-university/products/tree/master/products/02-redis-streams-bus.

เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เด‰เดชเดญเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดŽเด™เตเด™เดจเต† เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเดพเตป เด•เดพเดฃเดฟเดšเตเดšเตเดคเดฐเดพเด‚:

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();

เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดˆ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดŽเดจเตเดฑเต† เดฌเดพเด•เตเด•เต†เตปเดกเดฟเตฝ เดฌเดธเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚, เดžเดพเตป เดชเดดเดฏ เดธเดฟเตปเด•เตเดฐเดฃเดธเต เด•เดฎเดพเตปเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเด•เตเดคเดฟเด—เดค เด˜เดŸเตเดŸเด™เตเด™เตพ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเต เดชเตเดฐเดคเตเดฏเต‡เด• เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟ, เด“เดฐเต‹เดฐเตเดคเตเดคเดฐเตเด‚ เด…เดตเดฐเดตเดฐเตเดŸเต† เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดชเตเดคเดฟเดฏ เดธเตˆเดฑเตเดฑเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตˆเดชเตเดชเตเดฒเตˆเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดŸเต:

PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด‰เดŸเตป เดคเดจเตเดจเต†, เดชเตเดคเดฟเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเดฟเด•เตเด•เต เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟ. เด•เดพเดฐเดฃเด‚ เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเด•เตเด•เต เดฏเดฅเดพเตผเดคเตเดฅ เด‰เดณเตเดณเดŸเด•เตเด•เดตเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เดคเตเดŸเตผเดจเตเดจเต WebsiteIndexHistoryPersistor เดชเต‹เดฒเต†เดฏเตเดณเตเดณ RSS เดฒเดฟเด™เตเด•เต เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตเดฑเตเดฑเตผ เดนเดพเตปเดกเตโ€Œเดฒเตผ "เด‰เดณเตเดณเดŸเด•เตเด•เด‚/HtmlContent" เดธเดจเตเดฆเต‡เดถเด‚ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดคเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถเด‚ เด…เดคเดฟเดจเตเดฑเต† เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดฒเต‚เดŸเต† เด•เต‚เดŸเตเดคเตฝ เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

PHP เดฌเดพเด•เตเด•เต†เตปเดกเต เดฑเต†เดกเดฟเดธเต เดธเตเดŸเตเดฐเต€เด‚เดธเต เดฌเดธเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด’เดฐเต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต-เดธเตเดตเดคเดจเตเดคเตเดฐ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด…เดตเดธเดพเดจเด‚, เดžเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดกเต†เดฎเดฃเตเด•เดณเดฟเตฝ เด…เดตเดธเดพเดจเดฟเดšเตเดšเต, เด…เดตเดฏเดฟเตฝ เด“เดฐเต‹เดจเตเดจเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดคเตเดฐเด‚ เด•เดฃเด•เตเดทเดจเตเด•เตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เด’เดฐเต เดญเต‚เดคเด‚ เด•เตเดฐเดพเดณเตผเดฎเดพเดฐเตเด‚ เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเดจเดพเดฏเดฟ เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เต‡เดฃเตเดŸ เดŽเดฒเตเดฒเดพ เดนเดพเตปเดกเตโ€Œเดฒเดฑเตเด•เดณเตเด‚ เดกเต†เดฎเดฃเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดจเดฟเดฐเตเดฌเดจเตเดงเด‚เดชเดฟเดŸเดฟเด•เตเด•เตเด• เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เด•เดฃเด•เตเดทเตป เด•เตˆเดตเดถเด‚ เดตเดฏเตเด•เตเด•เตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ, เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚, เดชเต†เตผเดธเดฟเดธเตเดฑเตเดฑเตผ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดคเดฟเดจเต เดถเต‡เดทเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดเดกเดฟเด•เตพ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดนเดพเตปเดกเตโ€Œเดฒเตผเดฎเดพเตผเด•เตเด•เตเด‚ เดฌเดธเต เดตเดดเดฟ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•