PHP เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

PHP เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

เจฎเฉเจ–เจฌเฉฐเจง

เจฎเฉ‡เจฐเฉ€ เจตเฉˆเจฌเจธเจพเจˆเจŸ, เจœเจฟเจธเจจเฉ‚เฉฐ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเจผเฉŒเจ• เจตเจœเฉ‹เจ‚ เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเจพเจ‚, เจฆเจฟเจฒเจšเจธเจช เจนเฉ‹เจฎ เจชเฉ‡เจœเจพเจ‚ เจ…เจคเฉ‡ เจจเจฟเฉฑเจœเฉ€ เจธเจพเจˆเจŸเจพเจ‚ เจฆเฉ€ เจฎเฉ‡เจœเจผเจฌเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ. เจ‡เจน เจตเจฟเจธเจผเจพ เจฎเฉ‡เจฐเฉ€ เจชเฉเจฐเฉ‹เจ—เฉเจฐเจพเจฎเจฟเฉฐเจ— เจฏเจพเจคเจฐเจพ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจคเฉ‹เจ‚ เจนเฉ€ เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจฆเจฟเจฒเจšเจธเจช เจนเฉ‹เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ†; เจ‰เจธ เจธเจฎเฉ‡เจ‚ เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจฌเจพเจฐเฉ‡, เจ†เจชเจฃเฉ‡ เจธเจผเฉŒเจ•เจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจฌเจพเจฐเฉ‡ เจฒเจฟเจ–เจฃ เจตเจพเจฒเฉ‡ เจฎเจนเจพเจจ เจชเฉ‡เจธเจผเฉ‡เจตเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญ เจ•เฉ‡ เจ†เจ•เจฐเจธเจผเจค เจนเฉ‹ เจ—เจฟเจ† เจธเฉ€เฅค เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจฒเจˆ เจ–เฉ‹เจœเจฃ เจฆเฉ€ เจ†เจฆเจค เจ…เฉฑเจœ เจคเฉฑเจ• เจฌเจฃเฉ€ เจนเฉ‹เจˆ เจนเฉˆ: เจฒเจ—เจญเจ— เจนเจฐ เจตเจชเจพเจฐเจ• เจ…เจคเฉ‡ เจฌเจนเฉเจค เจนเฉ€ เจตเจชเจพเจฐเจ• เจธเจพเจˆเจŸ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจฒเฉ‡เจ–เจ•เจพเจ‚ เจฆเฉ‡ เจฒเจฟเฉฐเจ•เจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจตเจฟเฉฑเจš เจซเฉเฉฑเจŸเจฐ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเจพเจ‚.

เจตเจฟเจšเจพเจฐ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ

เจชเจนเจฟเจฒเจพ เจธเฉฐเจธเจ•เจฐเจฃ เจฎเฉ‡เจฐเฉ€ เจจเจฟเฉฑเจœเฉ€ เจตเฉˆเจฌเจธเจพเจˆเจŸ 'เจคเฉ‡ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• html เจชเฉฐเจจเจพ เจธเฉ€, เจœเจฟเฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจนเจธเจคเจพเจ–เจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• ul เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจš เจฒเจฟเฉฐเจ• เจชเจพเจ‰เจ‚เจฆเจพ เจนเจพเจ‚. เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฎเจฟเจ†เจฆ เจตเจฟเฉฑเจš 20 เจชเฉฐเจจเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจŸเจพเจˆเจช เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฃ เจฒเฉฑเจ—เจพ เจ•เจฟ เจ‡เจน เจฌเจนเฉเจค เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจจเจนเฉ€เจ‚ เจธเฉ€ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจฒเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพเฅค เจธเจŸเฉˆเจ•เจ“เจตเจฐเจซเจฒเฉ‹ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจฆเฉ‡เจ–เจฟเจ† เจ•เจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฒเฉ‹เจ• เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจธเจพเจˆเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ php เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเจพเจฐเจธเจฐ เจฒเจฟเจ–เจฟเจ†, เจœเฉ‹ เจธเจฟเจฐเจซเจผ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฆเจพ เจนเฉˆ, เจชเจนเจฟเจฒเฉ‡ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ (SO 'เจคเฉ‡ เจ…เฉฑเจœ เจคเฉฑเจ• เจฆเฉ‡ เจชเจคเฉ‡ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจนเจจ: `/users/1` ), เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจŸเฉˆเจ— เจคเฉ‹เจ‚ เจฒเจฟเฉฐเจ• เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เฉ€เจคเฉ‡ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ SQLite เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ†เฅค

เจ‡เจธเจจเฉ‚เฉฐ เจฆเฉ‚เจœเจพ เจธเฉฐเจธเจ•เจฐเจฃ เจ•เจฟเจนเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: เจ‡เฉฑเจ• SQLite เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจนเจœเจผเจพเจฐเจพเจ‚ URL เจฆเจพ เจธเฉฐเจ—เฉเจฐเจนเจฟ, เจœเจฟเจธ เจจเฉ‡ html เจตเจฟเฉฑเจš เจธเจฅเจฟเจฐ เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ‡เจธ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€. เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจฟเจฐเจซ URL เจธเจจ, เจซเจฟเจฐ เจ–เฉ‹เจœ เจ‰เจนเจจเจพเจ‚ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค เจธเฉ€เฅค

เจ‡เจธ เจชเฉœเจพเจ… 'เจคเฉ‡ เจฎเฉˆเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจ…เจคเฉ‡ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฌเจพเจ…เจฆ เจ‡เจธ 'เจคเฉ‡ เจตเจพเจชเจธ เจ†เจ‡เจ†เฅค เจ‡เจธ เจชเฉœเจพเจ… 'เจคเฉ‡, เจฎเฉ‡เจฐเจพ เจ•เฉฐเจฎ เจฆเจพ เจคเจœเจฐเจฌเจพ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจคเจฟเฉฐเจจ เจธเจพเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเฉ€ เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจฎเจนเจฟเจธเฉ‚เจธ เจ•เฉ€เจคเจพ เจ•เจฟ เจฎเฉˆเจ‚ เจ•เฉเจ เจนเฉ‹เจฐ เจ—เฉฐเจญเฉ€เจฐ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚. เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจจเจตเฉ€เจ†เจ‚ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจฎเฉเจนเจพเจฐเจค เจนเจพเจธเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฌเจนเฉเจค เจ‡เฉฑเจ›เจพ เจธเฉ€.

เจ†เจงเฉเจจเจฟเจ• เจธเฉฐเจธเจ•เจฐเจฃ

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจกเฉŒเจ•เจฐ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจค, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ mongoDb เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจนเจพเจฒ เจนเฉ€ เจตเจฟเฉฑเจš, เจฎเฉ‚เจฒเฉ€ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจชเจนเจฟเจฒเจพเจ‚ เจธเจฟเจฐเจซเจผ เจ•เฉˆเจšเจฟเฉฐเจ— เจฒเจˆ เจธเฉ€เฅค PHP เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเฉ‚เฉฐ เจ†เจงเจพเจฐ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจธเจฎเฉฑเจธเจฟเจ†

เจจเจตเฉ€เจ†เจ‚ เจธเจพเจˆเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฐเจธเฉ‹เจฒ เจ•เจฎเจพเจ‚เจก เจฆเฉเจ†เจฐเจพ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเฉ‹ เจธเจฎเจ•เจพเจฒเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ:

  • URL เจฆเฉเจ†เจฐเจพ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจฆเจพ เจนเฉˆ
  • เจ‡เฉฑเจ• เจซเจฒเฉˆเจ— เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ HTTPS เจ‰เจชเจฒเจฌเจง เจธเฉ€
  • เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจฆเฉ‡ เจคเฉฑเจค เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ
  • เจธเจฐเฉ‹เจค HTML เจ…เจคเฉ‡ เจธเจฟเจฐเจฒเฉ‡เจ– "เจ‡เฉฐเจกเฉˆเจ•เจธเจฟเฉฐเจ—" เจ‡เจคเจฟเจนเจพเจธ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ
  • เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจธเจฟเจฐเจฒเฉ‡เจ– เจ…เจคเฉ‡ เจตเจฐเจฃเจจ เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ
  • เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจฆเจพ เจนเฉˆ

เจ‡เจน เจธเจฟเจฐเจซเจผ เจธเจพเจˆเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจซเฉ€ เจธเฉ€:

PHP เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

เจชเจฐ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ•เจฒเฉ€ เจ‡เฉฐเจกเฉˆเจ•เจธเจฟเฉฐเจ—, เจธเจผเฉเจฐเฉ‡เจฃเฉ€เจฌเฉฑเจง เจ…เจคเฉ‡ เจฆเจฐเจœเจพเจฌเฉฐเจฆเฉ€, เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ…เจช เจŸเฉ‚ เจกเฉ‡เจŸ เจฐเฉฑเจ–เจฃ เจฆเจพ เจตเจฟเจšเจพเจฐ, เจ‡เจธ เจชเฉˆเจฐเจพเจกเจพเจˆเจฎ เจตเจฟเฉฑเจš เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจซเจฟเฉฑเจŸ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ†เฅค เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจธเฉฐเจญเจพเจตเฉ€ DDoS เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ•เฉ‹เจก เจกเฉเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจฌเจฒเฉŒเจ• เจ•เจฐเจจ เจฒเจˆ เจชเฉฐเจจเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจตเฉˆเจฌ เจตเจฟเจงเฉ€ เจœเฉ‹เฉœเจจเจพ.

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฌเฉ‡เจธเจผเฉฑเจ•, เจธเจญ เจ•เฉเจ เจธเจฎเจ•เจพเจฒเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจตเฉˆเจฌ เจตเจฟเจงเฉ€ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ URL เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจ•เจฟ เจ…เจฆเจญเฉเจค เจกเฉˆเจฎเจจ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจšเฉ‹เจ‚ URL เจฒเจˆ เจธเจพเจฐเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เฉ‡เฅค เจชเจฐ เจซเจฟเจฐ เจตเฉ€, เจ‡เฉฑเจฅเฉ‡ เจตเฉ€ "เจ•เจคเจพเจฐ" เจธเจผเจฌเจฆ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจธเฉเจเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ. เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจ•เจคเจพเจฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจธเจพเจฐเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจซเฉˆเจธเจฒเฉ‡ เจฆเจพ

เจ•เจคเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจธเจพเจฐเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฒเจˆ เจ‡เฉฑเจ• เจ‡เจตเฉˆเจ‚เจŸ-เจธเฉฐเจšเจพเจฒเจฟเจค เจธเจฟเจธเจŸเจฎ เจฌเจฃเจพเจ“เฅค เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจฐเฉˆเจกเจฟเจธ เจธเจŸเฉเจฐเฉ€เจฎเจœเจผ เจจเฉ‚เฉฐ เจ…เจœเจผเจฎเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚.

PHP เจตเจฟเฉฑเจš Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉ‡เจฐเจพ เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจคเจฟเฉฐเจจ เจฆเจฟเฉฑเจ—เจœ เจธเจฟเจฎเจซเจจเฉ€, เจฒเจพเจฐเจตเฉ‡เจฒ, เจฏเฉ€เจ†เจˆ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเจนเฉ€เจ‚ เจนเฉˆ, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฒเฉฑเจญเจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค เจชเจฐ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจจเจฟเจ•เจฒเจฟเจ† (เจชเจนเจฟเจฒเฉ€ เจชเฉเจฐเฉ€เจ–เจฟเจ† 'เจคเฉ‡), เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจ—เฉฐเจญเฉ€เจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃเจพ เจ…เจธเฉฐเจญเจต เจนเฉˆ. เจ•เจคเจพเจฐเจพเจ‚ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจฐ เจšเฉ€เจœเจผ เจœเจพเจ‚ เจคเจพเจ‚ เจชเฉฐเจœ เจธเจพเจฒ เจชเจนเจฟเจฒเจพเจ‚ 3 เจ•เจฎเจฟเจŸ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจนเฉˆ, เจœเจพเจ‚ เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจจเจพเจฒ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ.

เจฎเฉˆเจ‚ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจญเจพเจ—เจพเจ‚ เจฆเฉ‡ เจธเจชเจฒเจพเจ‡เจฐ เจตเจœเฉ‹เจ‚ เจธเจฟเจฎเจซเจจเฉ€ เจฌเจพเจฐเฉ‡ เจฌเจนเฉเจค เจ•เฉเจ เจธเฉเจฃเจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉเจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚. เจ…เจคเฉ‡ เจฒเจพเจฐเจตเฉ‡เจฒ เจฆเฉ€เจ†เจ‚ เจ•เฉเจ เจšเฉ€เจœเจผเจพเจ‚ เจฆเฉ€ เจตเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจฆเจพ ORM, เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚เฅค

symfony/messenger

เจชเจนเจฟเจฒเจพ เจ‰เจฎเฉ€เจฆเจตเจพเจฐ เจคเฉเจฐเฉฐเจค เจ†เจฆเจฐเจธเจผ เจœเจพเจชเจฆเจพ เจธเฉ€ เจ…เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจผเฉฑเจ• เจฆเฉ‡ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ. เจชเจฐ เจธเจฟเจฎเจซเจจเฉ€ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจ—เฉ‚เจ—เจฒ เจ•เจฐเจจเจพ เจตเจงเฉ‡เจฐเฉ‡ เจฎเฉเจธเจผเจ•เจฒ เจนเฉ‹ เจ—เจฟเจ†เฅค เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฒ, เจ…เจฐเจฅเจนเฉ€เจฃ เจจเจพเจตเจพเจ‚, เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจฐเฉˆเจกเจฟเจธ 'เจคเฉ‡ เจตเฉ€ เจ•เจฒเจพเจธเจพเจ‚ เจฆเฉ‡ เจธเจฎเฉ‚เจน เจคเฉ‹เจ‚ เจธเฉฐเจฆเฉ‡เจธเจผ เจญเฉ‡เจœเจฃ เจฒเจˆ เจฌเฉฑเจธ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจเจพ เจนเฉˆ?

PHP เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

เจ…เจงเจฟเจ•เจพเจฐเจค เจธเจพเจˆเจŸ 'เจคเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจ•เจพเจซเจผเฉ€ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจธเจจ, เจชเจฐ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€เจ•เจฐเจฃ เจธเจฟเจฐเจซ เจธเจฟเจฎเจซเจจเฉ€ เจฒเจˆ เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ‡ เจฎเจจเจชเจธเฉฐเจฆ YML เจ…เจคเฉ‡ เจ—เฉˆเจฐ-เจธเจฟเจฎเจซเฉ‹เจจเจฟเจธเจŸ เจฒเจˆ เจนเฉ‹เจฐ เจœเจพเจฆเฉ‚ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจจเจนเฉ€เจ‚ เจธเฉ€, เจ–เจพเจธ เจ•เจฐเจ•เฉ‡ เจจเจตเฉ‡เจ‚ เจธเจพเจฒ เจฆเฉ€เจ†เจ‚ เจ›เฉเฉฑเจŸเฉ€เจ†เจ‚ เจฆเฉŒเจฐเจพเจจเฅค เจชเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจน เจ…เจšเจพเจจเจ• เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ•เจฐเจจเจพ เจชเจฟเจ†เฅค

เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจเจพ เจ•เจฟ เจธเจฟเจฎเจซเจจเฉ€ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ, เจ‡เฉฑเจ• เจคเฉฐเจ— เจธเจฎเจพเจ‚ เจธเฉ€เจฎเจพ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจฎเจพเจฎเฉ‚เจฒเฉ€ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจนเฉˆ:

PHP เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

เจ‡เจธ เจธเจญ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจนเฉฑเจฅเจพเจ‚ เจจเจพเจฒ เจ•เฉเจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจ‚ เจ‡เจธ เจธเจฟเฉฑเจŸเฉ‡ 'เจคเฉ‡ เจชเจนเฉเฉฐเจšเจฟเจ† เจ•เจฟ เจฎเฉˆเจ‚ เจ•เฉเจ เจ•เจฟเจธเจฎ เจฆเฉ€เจ†เจ‚ เจฌเฉˆเจธเจพเจ–เฉ€เจ†เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€ เจ…เจคเฉ‡ เจ•เฉเจ เจนเฉ‹เจฐ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ.

เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค/เจ•เจคเจพเจฐ

เจ‡เจน เจชเจคเจพ เจšเจฒเจฟเจ† เจ•เจฟ เจ‡เจน เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฒเจพเจฐเจตเฉ‡เจฒ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจเฉเฉฐเจก เจจเจพเจฒ เจฎเจœเจผเจฌเฉ‚เจคเฉ€ เจจเจพเจฒ เจœเฉเฉœเฉ€ เจนเฉ‹เจˆ เจธเฉ€, เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ‡เจธ 'เจคเฉ‡ เจœเจผเจฟเจ†เจฆเจพ เจธเจฎเจพเจ‚ เจจเจนเฉ€เจ‚ เจฌเจฟเจคเจพเจ‡เจ†: เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ, เจ‡เจธ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ†, เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ† เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเจฟเฉฑเจคเจพเฅค

yiisoft/yii2-เจ•เจคเจพเจฐ

เจ–เฉˆเจฐ, เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจคเฉเจฐเฉฐเจค เจจเจพเจฎ เจคเฉ‹เจ‚ เจฎเฉฐเจจเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจฆเฉเจฌเจพเจฐเจพ, Yii2 เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจ–เจค เจธเจฌเฉฐเจง. เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจธ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจชเจˆ เจ…เจคเฉ‡ เจ‡เจน เจฌเฉเจฐเจพ เจจเจนเฉ€เจ‚ เจธเฉ€, เจชเจฐ เจฎเฉˆเจ‚ เจ‡เจธ เจคเฉฑเจฅ เจฌเจพเจฐเฉ‡ เจจเจนเฉ€เจ‚ เจธเฉ‹เจšเจฟเจ† เจ•เจฟ เจ‡เจน เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ Yii2 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจฌเจพเจ•เฉ€

เจฌเจพเจ•เฉ€ เจธเจญ เจ•เฉเจ เจœเฉ‹ เจฎเฉˆเจ‚ เจ—เจฟเจŸเจนเจฌ 'เจคเฉ‡ เจชเจพเจ‡เจ† เจ‰เจน เจ…เจตเจฟเจธเจผเจตเจพเจธเจผเจฏเฉ‹เจ—, เจชเฉเจฐเจพเจฃเฉ‡ เจ…เจคเฉ‡ เจคเจฟเจ†เจ— เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเจจ, เจฌเจฟเจจเจพเจ‚ เจธเจฟเจคเจพเจฐเจฟเจ†เจ‚, เจ•เจพเจ‚เจŸเฉ‡ เจ…เจคเฉ‡ เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€ เจตเจฟเฉฑเจš เจ•เจฎเจฟเจŸ เจฆเฉ‡เฅค

เจธเจฟเจฎเจซเจจเฉ€/เจฎเฉˆเจธเฉ‡เจ‚เจœเจฐ, เจคเจ•เจจเฉ€เจ•เฉ€ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ 'เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจ“

เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจธ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃเจพ เจชเจฟเจ† เจ…เจคเฉ‡, เจ•เฉเจ เจนเฉ‹เจฐ เจธเจฎเจพเจ‚ เจฌเจฟเจคเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจ‚ เจฏเฉ‹เจ— เจนเฉ‹ เจ—เจฟเจ†. เจ‡เจน เจชเจคเจพ เจฒเฉฑเจ—เจพ เจ•เจฟ เจนเจฐ เจšเฉ€เจœเจผ เจ•เจพเจซเจผเฉ€ เจธเฉฐเจ–เฉ‡เจช เจ…เจคเฉ‡ เจธเจงเจพเจฐเจจ เจธเฉ€. เจฌเฉฑเจธ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจœเจฟเจนเฉ€ เจซเฉˆเจ•เจŸเจฐเฉ€ เจฌเจฃเจพเจˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ•เจˆ เจŸเจพเจ‡เจฐ เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจนเฉˆเจ‚เจกเจฒเจฐ เจนเฉ‹เจฃเฉ‡ เจธเจจเฅค

PHP เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

เจธเจฟเจฐเจซเจผ เจ•เฉเจ เจ•เจฆเจฎ:

  • เจ…เจธเฉ€เจ‚ เจธเฉเจจเฉ‡เจนเจพ เจนเฉˆเจ‚เจกเจฒเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจธเจฟเจฐเจซเจผ เจ•เจพเจฒ เจ•เจฐเจจ เจฏเฉ‹เจ— เจนเฉ‹เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ
  • เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ HandlerDescriptor (เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจคเฉ‹เจ‚ เจ•เจฒเจพเจธ) เจตเจฟเฉฑเจš เจฒเจชเฉ‡เจŸเจฆเฉ‡ เจนเจพเจ‚
  • เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจนเฉˆเจ‚เจกเจฒเจฐเจธเจฒเฉ‹เจ•เฉ‡เจŸเจฐ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš เจ‡เจนเจจเจพเจ‚ "เจตเฉ‡เจฐเจจเจพเจ•เจพเจฐเจพเจ‚" เจจเฉ‚เฉฐ เจฒเจชเฉ‡เจŸเจฆเฉ‡ เจนเจพเจ‚
  • เจนเฉˆเจ‚เจกเจฒเจฐเจธเจฒเฉ‹เจ•เฉ‡เจŸเจฐ เจจเฉ‚เฉฐ MessageBus เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเจจเจพ
  • เจ…เจธเฉ€เจ‚ 'SenderInterface' เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ SendersLocator เจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš 'RedisTransport' เจ•เจฒเจพเจธเจพเจ‚ เจฆเฉ‡ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚, เจœเฉ‹ เจ‡เฉฑเจ• เจธเจชเฉฑเจธเจผเจŸ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจ
  • MessageBus เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš SendersLocator เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเจจเจพ

MessageBus เจตเจฟเฉฑเจš เจ‡เฉฑเจ• `->เจกเจฟเจธเจชเฉˆเจš()` เจตเจฟเจงเฉ€ เจนเฉˆ เจœเฉ‹ เจนเฉˆเจ‚เจกเจฒเจฐเจธเจฒเฉ‹เจ•เฉ‡เจŸเจฐ เจตเจฟเฉฑเจš เจขเฉเจ•เจตเฉ‡เจ‚ เจนเฉˆเจ‚เจกเจฒเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจจเฉ‡เจนเจพ เจญเฉ‡เจœเจฆเฉ€ เจนเฉˆ, เจฌเฉฑเจธ (เจฐเฉ‡เจกเจฟเจธ เจธเจŸเฉเจฐเฉ€เจฎเจœเจผ) เจฐเจพเจนเฉ€เจ‚ เจญเฉ‡เจœเจฃ เจฒเจˆ เจธเฉฐเจฌเฉฐเจงเจฟเจค `เจธเฉ‡เจกเจฐ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ` เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจเฅค

เจ•เฉฐเจŸเฉ‡เจจเจฐ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš (เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš 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 เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

เจ…เจคเฉ‡ เจ‰เจธ เจคเฉ‹เจ‚ เจคเฉเจฐเฉฐเจค เจฌเจพเจ…เจฆ, เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจจเจตเฉ€เจ‚ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพ เจœเฉ‹เฉœเจจเจพ เจฌเจนเฉเจค เจธเฉŒเจ–เจพ เจนเฉ‹ เจ—เจฟเจ†, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, Rss เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจชเจพเจฐเจธ เจ•เจฐเจจเจพเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฒเจˆ เจฎเฉ‚เจฒ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ€ เจตเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจซเจฟเจฐ RSS เจฒเจฟเฉฐเจ• เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸเจฐ เจนเฉˆเจ‚เจกเจฒเจฐ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ WebsiteIndexHistoryPersistor, "เจธเจฎเฉฑเจ—เจฐเฉ€/HtmlContent" เจธเฉฐเจฆเฉ‡เจธเจผ เจฆเฉ€ เจ—เจพเจนเจ•เฉ€ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ, เจ‡เจธ 'เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผ เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฆเฉ‡ เจจเจพเจฒ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค

PHP เจฌเฉˆเจ•เจเจ‚เจก เจจเฉ‚เฉฐ Redis เจธเจŸเฉเจฐเฉ€เจฎ เจฌเฉฑเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎเจตเจฐเจ•-เจธเฉเจคเฉฐเจคเจฐ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเจพ

เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ•เจˆ เจกเฉˆเจฎเจจเจพเจ‚ เจจเจพเจฒ เจ–เจคเจฎ เจนเฉ‹เจ, เจœเจฟเจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐ เจ‡เฉฑเจ• เจธเจฟเจฐเจซ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจญเฉ‚เจค เจ•เฉเจฐเจพเจฒเจฐ เจ‡เจธ เจตเจฟเฉฑเจš เจ‰เจน เจธเจพเจฐเฉ‡ เจนเฉˆเจ‚เจกเจฒเจฐ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฒเจˆ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจคเฉ‡ เจœเจพเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจกเฉˆเจฎเจจ เจ•เจพเจ‡เจฎ เจฐเจนเจฟเจฃเจพ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค

เจนเฉเจฃ, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจšเฉเจฃเจจ เจฆเฉ€ เจฌเจœเจพเจ, เจชเจฐเจธเฉ€เจธเจŸเจฐ เจฆเฉเจ†เจฐเจพ เจธเฉฐเจฎเจฟเจฒเจฟเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจ†เจˆเจกเฉ€ เจฌเฉฑเจธ เจฆเฉเจ†เจฐเจพ เจธเจพเจฐเฉ‡ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฃ เจตเจพเจฒเฉ‡ เจนเฉˆเจ‚เจกเจฒเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹