{"id":83549,"date":"2024-11-12T19:20:39","date_gmt":"2024-11-12T15:50:39","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/"},"modified":"2024-11-12T19:20:39","modified_gmt":"2024-11-12T15:50:39","slug":"building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/","title":{"rendered":"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0686\u062a \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Laravel Reverb \u0648 Vue"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0648\u0632\u0627\u0631\u06cc\u0648 \u062f\u06cc \u06a9\u06cc\u0627\u0631\u0627\u270f\ufe0f<\/p>\n<p>Laravel Reverb \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0648\u0628 \u0633\u0648\u06a9\u062a \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0627\u0633\u062a \u06a9\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u067e\u062e\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u06cc\u0646 \u0645\u0634\u062a\u0631\u06cc\u0627\u0646 \u0645\u062a\u0635\u0644 \u0628\u062f\u0648\u0646 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u062c\u062f\u062f \u0635\u0641\u062d\u0647 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. Vue \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a \u06a9\u0647 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u0638\u0627\u0647\u0631\u06cc \u0648\u0627\u06a9\u0646\u0634\u06cc \u0648 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0645\u0624\u0644\u0641\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. <\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0633\u0627\u062e\u062a\u0646 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0686\u062a \u06a9\u0627\u0645\u0644\u0627\u064b \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648 \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0627\u0637\u0646 Laravel Reverb \u0648 Frontend \u0648\u0627\u06a9\u0646\u0634\u06cc Vue \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0637\u0628\u0642 \u0645\u0639\u0645\u0648\u0644\u060c \u06a9\u062f \u0646\u0647\u0627\u06cc\u06cc \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062e\u0632\u0646 GitHub \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a.<\/p>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc Laravel \u0648 Vue<\/p>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u062a\u0648\u0633\u0639\u0647\u060c \u0628\u0627\u06cc\u062f \u0645\u062d\u06cc\u0637\u06cc \u0645\u062a\u0634\u06a9\u0644 \u0627\u0632 \u062f\u0648 \u0645\u0624\u0644\u0641\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f: \u0644\u0627\u0631\u0627\u0648\u0644 \u06a9\u0647 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 PHP \u0627\u0633\u062a \u0648 \u0645\u0624\u0644\u0641\u0647 Vue\/Node.<\/p>\n<p>    PHP: \u0646\u0633\u062e\u0647 8.2 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 (\u0627\u062c\u0631\u0627 \u0634\u0648\u062f php -v \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0646\u0633\u062e\u0647)<br \/>\n    \u0622\u0647\u0646\u06af\u0633\u0627\u0632 (\u0627\u062c\u0631\u0627 composer \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0648\u062c\u0648\u062f \u0622\u0646)<br \/>\n    Node.js: \u0646\u0633\u062e\u0647 20 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 (\u0627\u062c\u0631\u0627 \u0634\u0648\u062f node -v \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0646\u0633\u062e\u0647)<\/p>\n<p>\u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0632\u06cc\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u062f\u0633\u062a\u0648\u0631 \u0628\u0627\u0644\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u0648\u06cc\u0646\u062f\u0648\u0632 \u0645\u0646 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>\u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u0645\u0627 \u0627\u0632 SQLite \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c \u067e\u0633 \u062d\u062a\u0645\u0627 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f php.ini \u0641\u0627\u06cc\u0644 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062a\u0645\u0627\u0645 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0627\u0633\u0627\u0633\u06cc \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<p>&gt; composer create-project laravel\/laravel:^11.0 laravel_chat_demo<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u062a\u0648\u0633\u0639\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0646\u0635\u0628 \u0628\u0631\u062e\u06cc \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0647 \u0645\u062d\u06cc\u0637 \u062e\u0627\u0635 \u0634\u0645\u0627 \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627\u060c \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc\u060c \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f composer \u062f\u0633\u062a\u0648\u0631 happy (\ud83d\ude42)\u060c \u0627\u06af\u0631 \u0634\u06a9\u0627\u06cc\u062a \u06a9\u0631\u062f (\u06cc\u0627 \u0641\u0642\u0637 \u0628\u0647 \u0634\u0645\u0627 \u0647\u0634\u062f\u0627\u0631 \u062f\u0627\u062f) \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0627\u06cc \u0627\u0632 \u062f\u0633\u062a \u0631\u0641\u062a\u0647 \u0627\u0633\u062a\u060c \u0622\u0646 \u0628\u0633\u062a\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f (Google \u062f\u0648\u0633\u062a \u0634\u0645\u0627\u0633\u062a). <\/p>\n<p>\u0648\u0642\u062a\u06cc \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631\u0633\u062a \u0634\u062f\u060c \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p> &gt; php artisan serve<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0631\u0648\u0634\u0646 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>  \u0633\u0627\u062e\u062a \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0686\u062a<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 (\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645) \u062e\u0648\u0628 \u0627\u0633\u062a\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u06cc \u0628\u062e\u0634 \u0645\u062d\u0631\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0646\u0648\u0634\u062a\u0646 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0686\u062a \u0647\u0633\u062a\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645. \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u06a9\u0627\u0645\u0644\u0627\u064b \u062c\u062f\u06cc\u062f \u062f\u0631 \u0642\u0633\u0645\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 \/app\/Models \u06a9\u0647 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0631\u062f \u0648 \u0628\u062f\u0644 \u0634\u062f\u0647 \u062f\u0631 \u0686\u062a \u0645\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<p> &gt; php artisan make:model -m Message<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u06a9\u0644\u0627\u0633 \u062e\u0627\u0644\u06cc \u0627\u0633\u062a. \u0645\u0627 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u062a\u062e\u0635\u0635\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f Message.php \u0628\u0627 \u06a9\u062f \u0632\u06cc\u0631:<\/p>\n<p>namespace App\\Models;<\/p>\n<p>use Illuminate\\Database\\Eloquent\\Factories\\HasFactory;<br \/>\nuse Illuminate\\Database\\Eloquent\\Model;<br \/>\nuse Illuminate\\Database\\Eloquent\\Relations\\BelongsTo;<\/p>\n<p>class Message extends Model<br \/>\n{<br \/>\n    use HasFactory;<\/p>\n<p>    public $table = &#8216;messages&#8217;;<br \/>\n    protected $fillable = [&#8216;id&#8217;, &#8216;user_id&#8217;, &#8216;text&#8217;];<\/p>\n<p>    public function user(): BelongsTo<br \/>\n    {<br \/>\n        return $this-&gt;belongsTo(User::class, &#8216;user_id&#8217;);<br \/>\n    }<\/p>\n<p>    public function getTimeAttribute(): string<br \/>\n    {<br \/>\n        return date(<br \/>\n            &#8220;d M Y, H:i:s&#8221;,<br \/>\n            strtotime($this-&gt;attributes[&#8216;created_at&#8217;])<br \/>\n        );<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06a9\u062f \u0628\u0627\u0644\u0627 \u067e\u06cc\u0627\u0645\u06cc \u0631\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f: \u067e\u06cc\u0627\u0645 \u0647\u0627 \u062f\u0631 \u062c\u062f\u0648\u0644\u06cc \u06a9\u0647 \u0646\u0627\u0645\u0634 \u0630\u06a9\u0631 \u0634\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f messages; \u0647\u0631 \u067e\u06cc\u0627\u0645 \u0634\u0627\u0645\u0644 \u0633\u0647 \u0642\u0633\u0645\u062a \u0627\u0633\u062a: id\u060c user_id\u060c \u0648 text. \u0628\u0642\u06cc\u0647 \u06a9\u062f \u062f\u0648 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f: \u062a\u0627\u0628\u0639\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u06a9\u062f \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f user \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u067e\u06cc\u0627\u0645 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 BelongsTo \u0635\u0641\u062a\u060c \u0648 \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0641\u06cc\u0644\u062f \u0631\u0627 \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u062f created_at \u062f\u0631 \u0642\u0627\u0644\u0628 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u0642\u0627\u0628\u0644 \u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u0631\u0627\u06cc \u0627\u0646\u0633\u0627\u0646. \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0647\u0631 \u067e\u06cc\u0627\u0645 \u062f\u0631 \u06a9\u0627\u062f\u0631 \u0686\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. <\/p>\n<p>\u0645\u062f\u0644\u06cc \u06a9\u0647 \u0645\u0627 \u0646\u0648\u0634\u062a\u06cc\u0645 \u0628\u0647 Eloquent (ORM \u0644\u0627\u0631\u0627\u0648\u0644) \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc \u062f\u0647\u062f\u060c \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u062c\u062f\u0648\u0644 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u0645\u0647\u0627\u062c\u0631\u062a \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645\u060c \u06cc\u0639\u0646\u06cc \u0642\u0637\u0639\u0647 \u0627\u06cc \u0627\u0632 \u06a9\u062f \u06a9\u0647 \u062c\u062f\u0648\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<p> &gt; php artisan make:migration create_message_table<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u0647\u0627\u062c\u0631\u062a \u062e\u0627\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f database\\migrations\\ \u06a9\u0647 \u0646\u0627\u0645\u0634 \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 _create_message_table.php. \u0641\u0627\u06cc\u0644 \u0634\u0627\u0645\u0644 \u062f\u0648 \u0631\u0648\u0634 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0633\u062a: up \u0648 down. \u0627\u06cc\u0646 up \u0645\u062a\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u06cc \u0631\u0627 \u062f\u0631 \u0637\u0631\u062d \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u062c\u062f\u0627\u0648\u0644 \u062c\u062f\u06cc\u062f\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u0647\u0627 \u06cc\u0627 \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u0627\u06cc\u0647 \u0647\u0627. <\/p>\n<p>\u0628\u0631\u0639\u06a9\u0633\u060c down \u0646\u0642\u0634 \u0645\u062a\u062f \u062e\u0646\u062b\u06cc \u06a9\u0631\u062f\u0646 \u06cc\u0627 \u0645\u0639\u06a9\u0648\u0633 \u06a9\u0631\u062f\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0645\u0631\u0628\u0648\u0637\u0647 \u0627\u0633\u062a up \u0631\u0648\u0634\u060c \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0628\u0647 \u0639\u0642\u0628 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f. \u0645\u0627 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u06a9\u062f \u0632\u06cc\u0631 \u062a\u062e\u0635\u0635\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<p>use Illuminate\\Database\\Migrations\\Migration;<br \/>\nuse Illuminate\\Database\\Schema\\Blueprint;<br \/>\nuse Illuminate\\Support\\Facades\\Schema;<\/p>\n<p>return new class extends Migration {<br \/>\n    public function up(): void {<br \/>\n        Schema::create(&#8216;messages&#8217;, function (Blueprint $table) {<br \/>\n            $table-&gt;id();<br \/>\n            $table-&gt;timestamps();<\/p>\n<p>            $table-&gt;foreignId(&#8216;user_id&#8217;)-&gt;constrained();<br \/>\n            $table-&gt;text(&#8216;text&#8217;)-&gt;nullable();<br \/>\n        });<br \/>\n    }<\/p>\n<p>    public function down(): void {<br \/>\n        Schema::dropIfExists(&#8216;messages&#8217;);<br \/>\n    }<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u0627\u0646\u062a\u0642\u0627\u0644 \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0631\u0627 \u0628\u0627 \u0686\u0646\u062f \u0641\u06cc\u0644\u062f \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f: \u0634\u0646\u0627\u0633\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u0644\u06cc\u062f \u0627\u0635\u0644\u06cc\u060c user_id \u06a9\u0647 \u0628\u0647 \u062c\u062f\u0648\u0644 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0646 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0628\u0627 \u0641\u0631\u0633\u062a\u0646\u062f\u0647 \u0622\u0646\u0647\u0627 \u0648 \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0645\u062a\u0646\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0627\u0631\u062c\u0627\u0639 \u0645\u06cc \u062f\u0647\u062f. <\/p>\n<p>\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0627\u0631\u0627\u06cc \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u0645\u0647\u0631 \u0632\u0645\u0627\u0646\u06cc \u0627\u0633\u062a \u062a\u0627 \u0632\u0645\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0647\u0631 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u0631\u062f\u06cc\u0627\u0628\u06cc \u06a9\u0646\u062f. \u0645\u0647\u0631\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u06cc \u0627\u06cc\u0646 \u062f\u0648 \u0641\u06cc\u0644\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f created_at \u0648 updated_at. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0642\u062f\u0627\u0645 \u0627\u062d\u062a\u06cc\u0627\u0637\u06cc\u060c \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u0631\u0648\u0634 \u0645\u0639\u06a9\u0648\u0633 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062c\u062f\u0648\u0644 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u062f \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0628\u0627\u0632\u06af\u0634\u062a \u0622\u0633\u0627\u0646 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0646\u062f. <\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645:<\/p>\n<p> &gt; php artisan migrate:fresh<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u062c\u062f\u06cc\u062f \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f. \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u0622\u0646 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f database\\database.sqlite \u0641\u0627\u06cc\u0644<\/p>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u062b\u0628\u062a \u0646\u0627\u0645 \u0648 \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0641\u0636\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062f\u0627\u0631\u06cc\u0645\u060c \u0646\u0648\u0628\u062a \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a. \u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0633\u0639\u0647 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644\u060c \u0634\u0645\u0627 \u062f\u0648 \u06af\u0632\u06cc\u0646\u0647 \u0627\u0635\u0644\u06cc \u062f\u0627\u0631\u06cc\u062f: \u0627\u0648\u0644\u06cc \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 PHP \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0638\u0627\u0647\u0631 \u062e\u0648\u062f \u0627\u0633\u062a. \u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c \u062f\u0648\u0645\u06cc \u0627\u0632 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0645\u0627\u0646\u0646\u062f Vue \u06cc\u0627 React \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. <\/p>\n<p>\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 Vue \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0632 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0639\u0638\u06cc\u0645 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 npm \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f. \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0628\u0633\u062a\u0647 \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645:<\/p>\n<p> &gt; composer require laravel\/ui<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06cc\u06a9 \u0628\u0627\u0631 laravel\/ui \u0628\u0633\u062a\u0647 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0627\u0631\u0628\u0633\u062a \u062c\u0644\u0648\u06cc\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f artisan \u062f\u0633\u062a\u0648\u0631: \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062b\u0628\u062a \u0646\u0627\u0645 \u0648 \u0648\u0631\u0648\u062f \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0641\u0642\u0637 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0686\u0642\u062f\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0627\u0634\u062f \u0627\u06af\u0631 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u0631\u0627 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u0648 \u0686\u0642\u062f\u0631 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<p> &gt; php artisan ui vue &#8211;auth<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0645\u0627 \u062f\u0648 \u0646\u06cc\u0645\u0647 \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u062f\u0627\u0631\u06cc\u0645: PHP \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 PHP artisan serve \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a. \u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0628\u062e\u0634 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a:<\/p>\n<p> &gt; npm install<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0647\u0631 \u062f\u0648 \u0642\u0633\u0645\u062a \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627\u0634\u0646\u062f\u060c \u062f\u0648 \u067e\u0646\u062c\u0631\u0647 \u067e\u0648\u0633\u062a\u0647 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u06cc\u06a9\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 artisan \u062f\u0633\u062a\u0648\u0631 \u0648 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631:<\/p>\n<p> &gt; npm run dev<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u062c\u0644\u0648\u06cc \u0635\u0641\u062d\u0647 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f \u0648 \u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062f\u0648\u0628\u0627\u0631\u0647 \u0622\u0646 \u0631\u0627 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. <\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u060c \u0628\u062f\u0648\u0646 \u0646\u0648\u0634\u062a\u0646 \u06cc\u06a9 \u062e\u0637 \u06a9\u062f\u060c \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a \u06a9\u0627\u0645\u0644\u0627\u064b \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u062f\u0627\u0631\u06cc\u0645. \u0628\u0631\u0627\u06cc \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u06cc\u062f \u0628\u0647 http:\/\/127.0.0.1:8000\/register \u0628\u0631\u0648\u06cc\u062f \u0648 \u0648\u0627\u0631\u062f \u0648\u0628\u0633\u0627\u06cc\u062a \u0634\u0648\u06cc\u062f:<\/p>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0633\u06cc\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc API \u067e\u06cc\u0627\u0645 \u0686\u062a<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0628\u0627\u06cc\u062f \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc API \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u06a9\u0647 \u0642\u0631\u0627\u0631 \u0627\u0633\u062a \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<p>  \/home  \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc &#8211; \u0627\u06cc\u0646 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f<br \/>\n  \/message\u060c \u06cc\u06a9 \u0631\u0648\u0634 POST HTTP \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u062c\u062f\u06cc\u062f<br \/>\n  \/messages  \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u0645\u0627\u0645 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f<\/p>\n<p>\u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \/routes\/web.php \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631<\/p>\n<p>use Illuminate\\Support\\Facades\\Auth;<br \/>\nuse Illuminate\\Support\\Facades\\Route;<br \/>\nuse App\\Http\\Controllers\\HomeController;<\/p>\n<p>Route::get(&#8220;https:\/\/dev.to\/&#8221;, function () { return view(&#8216;welcome&#8217;); });<\/p>\n<p>Auth::routes();<\/p>\n<p>Route::get(&#8216;\/home&#8217;, [HomeController::class, &#8216;index&#8217;])<br \/>\n    -&gt;name(&#8216;home&#8217;);<br \/>\nRoute::get(&#8216;\/messages&#8217;, [HomeController::class, &#8216;messages&#8217;])<br \/>\n    -&gt;name(&#8216;messages&#8217;);<br \/>\nRoute::post(&#8216;\/message&#8217;, [HomeController::class, &#8216;message&#8217;])<br \/>\n    -&gt;name(&#8216;message&#8217;);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0646\u0648\u0634\u062a\u0646 \u0627\u0633\u062a HomeController \u06a9\u0647 API \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u06cc\u0645 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<p>namespace App\\Http\\Controllers;<\/p>\n<p>use App\\Jobs\\SendMessage;<br \/>\nuse App\\Models\\Message;<br \/>\nuse App\\Models\\User;<br \/>\nuse Illuminate\\Http\\JsonResponse;<br \/>\nuse Illuminate\\Http\\Request;<\/p>\n<p>class HomeController extends Controller<br \/>\n{<br \/>\n    public function __construct()<br \/>\n    {<br \/>\n        $this-&gt;middleware(&#8216;auth&#8217;);<br \/>\n    }<\/p>\n<p>    public function index()<br \/>\n    {<br \/>\n        $user = User::where(&#8216;id&#8217;, auth()-&gt;id())-&gt;select([<br \/>\n            &#8216;id&#8217;,<br \/>\n            &#8216;name&#8217;,<br \/>\n            &#8217;email&#8217;,<br \/>\n        ])-&gt;first();<\/p>\n<p>        return view(&#8216;home&#8217;, [<br \/>\n            &#8216;user&#8217; =&gt; $user,<br \/>\n        ]);<br \/>\n    }<\/p>\n<p>    public function messages(): JsonResponse<br \/>\n    {<br \/>\n        $messages = Message::with(&#8216;user&#8217;)-&gt;get()-&gt;append(&#8216;time&#8217;);<\/p>\n<p>        return response()-&gt;json($messages);<br \/>\n    }<\/p>\n<p>    public function message(Request $request): JsonResponse<br \/>\n    {<br \/>\n        $message = Message::create([<br \/>\n            &#8216;user_id&#8217; =&gt; auth()-&gt;id(),<br \/>\n            &#8216;text&#8217; =&gt; $request-&gt;get(&#8216;text&#8217;),<br \/>\n        ]);<br \/>\n        SendMessage::dispatch($message);<\/p>\n<p>        return response()-&gt;json([<br \/>\n            &#8216;success&#8217; =&gt; true,<br \/>\n            &#8216;message&#8217; =&gt; &#8220;Message created and job dispatched.&#8221;,<br \/>\n        ]);<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0646\u0637\u0642 \u067e\u0634\u062a API\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>    \u062f\u0631 \/home \u0631\u0648\u0634\u060c \u0645\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 User \u0645\u062f\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f<br \/>\n    \u062f\u0631 \/messages \u0631\u0648\u0634\u060c \u0645\u0627 \u0647\u0645\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 Message \u0645\u062f\u0644\u060c \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0645\u0631\u062a\u0628\u0637\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 time \u0641\u06cc\u0644\u062f (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 Accessor) \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u062f\u0627\u0645 message\u0648 \u0645\u062c\u0645\u0648\u0639\u0647 \u06a9\u0627\u0645\u0644 \u0631\u0627 \u0628\u0647 view \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f<br \/>\n    \u062f\u0631 \/message \u0631\u0648\u0634\u060c \u0645\u0627 \u06cc\u06a9 \u0631\u0648\u0634 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f message \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Message \u0645\u062f\u0644 \u0648 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f SendMessage \u06a9\u0627\u0631 \u0635\u0641<\/p>\n<p>\u0648\u0642\u062a\u06cc \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0635\u0641 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u062a\u0628\u0627\u062f\u0644 \u0648 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u06a9\u0627\u0631 \u0635\u0641<\/p>\n<p>\u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u0635\u0641 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0648\u0638\u0627\u06cc\u0641 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. <\/p>\n<p>\u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u0646\u062f \u06a9\u0647 \u0627\u0639\u0645\u0627\u0644 \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062e\u0627\u0635\u06cc \u0631\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u062a\u0639\u0631\u06cc\u0641 \u0648 \u067e\u062e\u0634 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0634\u0646\u0648\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0633\u067e\u0633 \u0628\u0647 \u0622\u0646\u0647\u0627 \u067e\u0627\u0633\u062e \u062f\u0647\u0646\u062f. \u0645\u0634\u0627\u063a\u0644 \u0635\u0641 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u06a9\u0627\u0631\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u200c\u0628\u0631\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u0631\u0633\u0627\u0644 \u0627\u06cc\u0645\u06cc\u0644 \u06cc\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0628\u0632\u0631\u06af\u060c \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0645\u0646\u062f\u0627\u0646 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u067e\u0627\u0633\u062e\u06af\u0648 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f. <\/p>\n<p>\u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0628\u0627 \u0647\u0645\u060c \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0644\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u0646\u062f. \u0645\u0627 \u0627\u0632 \u0647\u0631 \u062f\u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f: event \u0627\u0633\u0627\u0633\u0627 \u06cc\u06a9 \u0645\u062d\u0641\u0638\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f \u0648 QueueListener \u062a\u0639\u062f\u0627\u062f \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u062a\u0638\u0631 \u0627\u0631\u0633\u0627\u0644 \u0647\u0633\u062a\u0646\u062f \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f. <\/p>\n<p>\u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631\u060c \u0645\u0627 \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 Event \u06a9\u0644\u0627\u0633 \u062f\u0631 \/app\/Events \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc:<\/p>\n<p> &gt; php artisan make:event GotMessage<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0633\u067e\u0633 \u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0648 \u0686\u06cc\u0632 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645: \u0633\u0627\u0632\u0646\u062f\u0647 \u0627\u06cc \u06a9\u0647 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u0628\u0627\u0631 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0686\u06cc\u0633\u062a \u0648 broadcastOn() \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u0639\u06cc\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u062f\u0631 \u06a9\u062f\u0627\u0645 \u06a9\u0627\u0646\u0627\u0644 \u067e\u062e\u0634 \u0634\u0648\u0646\u062f:<\/p>\n<p>namespace App\\Events;<\/p>\n<p>use Illuminate\\Broadcasting\\InteractsWithSockets;<br \/>\nuse Illuminate\\Broadcasting\\PrivateChannel;<br \/>\nuse Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast;<br \/>\nuse Illuminate\\Foundation\\Events\\Dispatchable;<br \/>\nuse Illuminate\\Queue\\SerializesModels;<\/p>\n<p>class GotMessage implements ShouldBroadcast {<br \/>\n    use Dispatchable, InteractsWithSockets, SerializesModels;<\/p>\n<p>    public function __construct() {<br \/>\n    }<\/p>\n<p>    public function broadcastOn() {<br \/>\n        return  new PrivateChannel(&#8220;channel_for_everyone&#8221;);<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0646\u0627\u0645 \u06a9\u0627\u0646\u0627\u0644 (&#8220;channel_for_everyone&#8221;) \u062f\u0631 \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 WebSocket \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f (\u0628\u0647 \u0632\u06cc\u0631 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0627\u0646\u0627\u0644 \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0628\u06cc\u0646 \u0647\u0631 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0686\u062a \u0648 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0633\u0627\u0632\u0646\u062f\u0647 \u0647\u06cc\u0686 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u06cc \u0631\u0627 \u0646\u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0647\u06cc\u0686 \u0627\u0634\u0627\u0631\u0647 \u0627\u06cc \u0628\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0646\u062f\u0627\u0631\u062f: \u0627\u06cc\u062f\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0632\u0645\u0627\u0646\u06cc \u067e\u062e\u0634 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u062c\u062f\u06cc\u062f \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f\u060c \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0634\u062a\u0631\u06cc \u0622\u0646 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u060c \u0622\u0646\u0647\u0627 \u0641\u0642\u0637 \u0644\u06cc\u0633\u062a \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u062f\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0628\u0648\u062f\u06cc\u0645 \u0628\u0647 \u0633\u0631\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f. <\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f QueueListener\u060c \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<p> &gt; php artisan make:job SendMessage<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u06a9\u0646\u062f SendMessage.php \u0641\u0627\u06cc\u0644 \u062f\u0631 \/app\/Jobs \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0686\u0627\u0631\u0686\u0648\u0628 \u0644\u0627\u0631\u0627\u0648\u0644 \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f GotMessage \u0631\u0648\u06cc\u062f\u0627\u062f\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u0645:<\/p>\n<p>namespace App\\Jobs;<\/p>\n<p>use App\\Events\\GotMessage;<br \/>\nuse App\\Models\\Message;<br \/>\nuse Illuminate\\Bus\\Queueable;<br \/>\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;<br \/>\nuse Illuminate\\Foundation\\Bus\\Dispatchable;<br \/>\nuse Illuminate\\Queue\\InteractsWithQueue;<br \/>\nuse Illuminate\\Queue\\SerializesModels;<\/p>\n<p>class SendMessage implements ShouldQueue {<br \/>\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;<\/p>\n<p>    public function __construct(public Message $message) {<br \/>\n        \/\/<br \/>\n    }<\/p>\n<p>    public function handle(): void {<br \/>\n        GotMessage::dispatch([<br \/>\n            &#8216;id&#8217; =&gt; $this-&gt;message-&gt;id,<br \/>\n            &#8216;user_id&#8217; =&gt; $this-&gt;message-&gt;user_id,<br \/>\n            &#8216;text&#8217; =&gt; $this-&gt;message-&gt;text,<br \/>\n            &#8216;time&#8217; =&gt; $this-&gt;message-&gt;time,<br \/>\n        ]);<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 handle() \u0631\u0648\u0634 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f GotMessage \u0631\u0648\u06cc\u062f\u0627\u062f \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f \u067e\u06cc\u0627\u0645 id\u060c user_id\u060c text\u060c \u0648 timestamp. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647\u060c \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u06a9\u0627\u0646\u0627\u0644 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f\u060c \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0622\u0645\u062f \u0648\u0638\u0627\u06cc\u0641 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f\u060c \u0639\u0645\u0648\u0645\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f $message \u0648\u06cc\u0698\u06af\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0633\u0627\u0632\u0646\u062f\u0647\u061b \u0627\u06cc\u0646 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0635\u0641 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f (\u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f). <\/p>\n<p>\u0628\u0627 \u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0627\u062c\u0632\u0627\u06cc \u062f\u06cc\u06af\u0631\u060c \u0627\u06a9\u0646\u0648\u0646 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0639\u0646\u0635\u0631 PHP \u0646\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645: WebSocket.<\/p>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 Laravel Reverb<\/p>\n<p>Laravel Reverb \u06cc\u06a9 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0628\u0644\u0627\u062f\u0631\u0646\u06af WebSocket \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 WebSockets \u0628\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f. \u0628\u0627 Reverb\u060c \u0627\u0645\u06a9\u0627\u0646 \u067e\u062e\u0634 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u0645\u060c \u062f\u0631 \u0647\u0631 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0645\u062a\u0635\u0644 \u0645\u0646\u0639\u06a9\u0633 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u062c\u062f\u062f \u0635\u0641\u062d\u0647. \u0637\u0628\u0642 \u0645\u0639\u0645\u0648\u0644\u060c \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0628\u0633\u06cc\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0627 \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0633\u0627\u062f\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<p> &gt; php artisan install:broadcasting<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0627 \u067e\u0630\u06cc\u0631\u0641\u062a\u0646 \u06af\u0632\u06cc\u0646\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c \u0647\u0645 \u0642\u0633\u0645\u062a PHP \u0628\u0631\u0627\u06cc backend \u0648 \u0647\u0645 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc Node \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 frontend \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f. <\/p>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0686\u0646\u062f\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f: \u06cc\u06a9 \u0628\u062e\u0634 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f .env \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc Reverb\u060c \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 reverb.php \u0641\u0627\u06cc\u0644 \u062f\u0631 \/config \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u06cc\u0646 \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u060c \u0648 \u0645\u0647\u0645\u062a\u0631 \u0627\u0632 \u0647\u0645\u0647\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 channels.php \u0641\u0627\u06cc\u0644 \u062f\u0631 \/routes. \u062f\u0631 \u0627\u06cc\u0646 channels.php Reverb \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0622\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 channel_for_everyone \u06a9\u0627\u0646\u0627\u0644 \u0631\u0627 \u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u062f \u0632\u06cc\u0631:<\/p>\n<p>Broadcast::channel(&#8216;channel_for_everyone&#8217;, function ($user) {<br \/>\n    return true;<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631 \u0642\u0633\u0645\u062a \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0633\u0631 \u062c\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u06cc \u0642\u0633\u0645\u062a \u062c\u0644\u0648\u06cc\u06cc \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>  \u0633\u0627\u062e\u062a \u062c\u0644\u0648\u06cc\u06cc Vue<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0633\u0627\u062f\u0647 \u0628\u0627 \u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc\u060c \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u0627\u06cc\u0644\u060c \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc \u0641\u0648\u0646\u062a \u0648 \u063a\u06cc\u0631\u0647 \u0637\u0631\u0627\u062d\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645 \u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u06cc\u0637 Vue \u0627\u0633\u062a:<\/p>\n<p>&gt; npm install vue vue-router @vitejs\/plugin-vue&#8220;`<br \/>\n{% endraw %}<\/p>\n<p>Now we can focus on three files to integrate a Vue template in Laravel. The first one is {% raw %}`resources\/js\/app.js`{% endraw %}, which will instantiate the Vue component that contains our app:<br \/>\n{% raw %}<\/p>\n<p>&#8220;`javascript<br \/>\nimport &#8216;.\/bootstrap&#8217;;<br \/>\nimport App from &#8216;.\/App.vue&#8217;<br \/>\nimport { createApp } from &#8216;vue&#8217;;<\/p>\n<p>const app = createApp({});<\/p>\n<p>app.component(&#8216;app&#8217;, App);<\/p>\n<p>app.mount(&#8220;#app&#8221;);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06a9\u062f \u0633\u0627\u062f\u0647 \u0627\u0633\u062a: App.vue \u0627\u0644\u06af\u0648\u06cc Vue \u0645\u0627 \u0627\u0633\u062a \u0648 \u0645\u0627 \u0641\u0642\u0637 \u0622\u0646 \u0631\u0627 \u0628\u0627 div \u06a9\u0647 id \u0627\u0633\u062a #app \u062f\u0631 blade \u0641\u0627\u06cc\u0644 (\u0628\u0647 \u0642\u0637\u0639\u0647 \u06a9\u062f \u0628\u0639\u062f\u06cc \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f) \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0645\u0627 \u0631\u0627 \u0631\u0646\u062f\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0641\u0627\u06cc\u0644 \u0628\u0639\u062f\u06cc \u0627\u0633\u062a resources\/js\/App.vue\u060c \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0642\u0627\u0644\u0628 \u0627\u0633\u062a:<\/p>\n<p>&lt;script setup&gt;<br \/>\nconst props = defineProps({<br \/>\n    isAuth: {<br \/>\n        type: Boolean,<br \/>\n        default: false<br \/>\n    },<br \/>\n    user: {<br \/>\n        type: [Object, Array],<br \/>\n        required: false<br \/>\n    }<br \/>\n})<br \/>\n&lt;\/script&gt;<br \/>\n&lt;template&gt;<br \/>\n    &lt;h1&gt;Hello, {{ user.name }}&lt;\/h1&gt;<br \/>\n&lt;\/template&gt;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06a9\u062f \u062f\u0648 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f: \u0622\u0646 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f props \u0628\u0631\u0627\u06cc Vue \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u06a9\u0647 \u0627\u0632 \u0644\u0627\u0631\u0627\u0648\u0644 \u0645\u06cc \u0622\u06cc\u0646\u062f\u060c \u0648 \u0633\u067e\u0633 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u0633\u0627\u062f\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f\u060c \u0645\u0627 \u0628\u0647 \u062a\u0627\u0632\u06af\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0641\u0639\u0644\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u06cc\u0645 user \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f name. <\/p>\n<p>\u0622\u062e\u0631\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u06cc\u0646 \u0627\u0633\u062a blade \u06a9\u0647 \u0645\u0624\u0644\u0641\u0647 Vue \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0622\u0646 \u062a\u063a\u0630\u06cc\u0647 \u06a9\u0646\u06cc\u0645\u060c \u0628\u0647 \u0647\u0645 \u0645\u06cc\u200c\u0686\u0633\u0628\u0627\u0646\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0641\u0642\u0637 \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0642\u0633\u0645\u062a \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u0645 resources\\views\\welcome.blade.php \u0641\u0627\u06cc\u0644:<\/p>\n<p> Laravel + Vue Chat<br \/>\n @vite([&#8216;resources\/js\/app.js&#8217;])<\/p>\n<div data-article-id=\"2097141\" id=\"article-body\">\n<p><strong>\u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0648\u0632\u0627\u0631\u06cc\u0648 \u062f\u06cc \u06a9\u06cc\u0627\u0631\u0627\u270f\ufe0f<\/strong><\/p>\n<p>Laravel Reverb \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0648\u0628 \u0633\u0648\u06a9\u062a \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0627\u0633\u062a \u06a9\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u067e\u062e\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u06cc\u0646 \u0645\u0634\u062a\u0631\u06cc\u0627\u0646 \u0645\u062a\u0635\u0644 \u0628\u062f\u0648\u0646 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u062c\u062f\u062f \u0635\u0641\u062d\u0647 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. Vue \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a \u06a9\u0647 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u0638\u0627\u0647\u0631\u06cc \u0648\u0627\u06a9\u0646\u0634\u06cc \u0648 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0645\u0624\u0644\u0641\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. <\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0633\u0627\u062e\u062a\u0646 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0686\u062a \u06a9\u0627\u0645\u0644\u0627\u064b \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648 \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0627\u0637\u0646 Laravel Reverb \u0648 Frontend \u0648\u0627\u06a9\u0646\u0634\u06cc Vue \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0637\u0628\u0642 \u0645\u0639\u0645\u0648\u0644\u060c \u06a9\u062f \u0646\u0647\u0627\u06cc\u06cc \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062e\u0632\u0646 GitHub \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C_Laravel_%D9%88_Vue\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc Laravel \u0648 Vue<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/#%D8%B3%D8%A7%D8%AE%D8%AA_%D9%85%D8%AF%D9%84_%D8%AF%D8%A7%D8%AF%D9%87_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%BE%DB%8C%D8%A7%D9%85_%D9%87%D8%A7%DB%8C_%DA%86%D8%AA\" >\u0633\u0627\u062e\u062a \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0686\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/#%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%AB%D8%A8%D8%AA_%D9%86%D8%A7%D9%85_%D9%88_%D9%88%D8%B1%D9%88%D8%AF_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1\" >\u0627\u0641\u0632\u0648\u062f\u0646 \u062b\u0628\u062a \u0646\u0627\u0645 \u0648 \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/#%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D9%85%D8%B3%DB%8C%D8%B1%D9%87%D8%A7_%D8%A8%D8%B1%D8%A7%DB%8C_API_%D9%BE%DB%8C%D8%A7%D9%85_%DA%86%D8%AA\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0633\u06cc\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc API \u067e\u06cc\u0627\u0645 \u0686\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/#%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF_%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84_%D9%88_%DA%A9%D8%A7%D8%B1_%D8%B5%D9%81\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u06a9\u0627\u0631 \u0635\u0641<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/#%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_Laravel_Reverb\" >\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 Laravel Reverb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/building-a-real-time-chat-app-using-laravel-reverb-and-vue-cfe\/#%D8%B3%D8%A7%D8%AE%D8%AA_%D8%AC%D9%84%D9%88%DB%8C%DB%8C_Vue\" >\u0633\u0627\u062e\u062a \u062c\u0644\u0648\u06cc\u06cc Vue<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C_Laravel_%D9%88_Vue\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc Laravel \u0648 Vue<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u062a\u0648\u0633\u0639\u0647\u060c \u0628\u0627\u06cc\u062f \u0645\u062d\u06cc\u0637\u06cc \u0645\u062a\u0634\u06a9\u0644 \u0627\u0632 \u062f\u0648 \u0645\u0624\u0644\u0641\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f: \u0644\u0627\u0631\u0627\u0648\u0644 \u06a9\u0647 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 PHP \u0627\u0633\u062a \u0648 \u0645\u0624\u0644\u0641\u0647 Vue\/Node.<\/p>\n<ul>\n<li>    PHP: \u0646\u0633\u062e\u0647 8.2 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 (\u0627\u062c\u0631\u0627 \u0634\u0648\u062f <code>php -v<\/code> \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0646\u0633\u062e\u0647)<\/li>\n<li>    \u0622\u0647\u0646\u06af\u0633\u0627\u0632 (\u0627\u062c\u0631\u0627 <code>composer<\/code> \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0648\u062c\u0648\u062f \u0622\u0646)<\/li>\n<li>    Node.js: \u0646\u0633\u062e\u0647 20 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 (\u0627\u062c\u0631\u0627 \u0634\u0648\u062f <code>node -v<\/code> \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0646\u0633\u062e\u0647)<\/li>\n<\/ul>\n<p>\u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0632\u06cc\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u062f\u0633\u062a\u0648\u0631 \u0628\u0627\u0644\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u0648\u06cc\u0646\u062f\u0648\u0632 \u0645\u0646 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<p><\/p>\n<p>\u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u0645\u0627 \u0627\u0632 SQLite \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c \u067e\u0633 \u062d\u062a\u0645\u0627 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f <code>php.ini<\/code> \u0641\u0627\u06cc\u0644 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062a\u0645\u0627\u0645 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0627\u0633\u0627\u0633\u06cc \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> composer create-project laravel\/laravel:^11.0 laravel_chat_demo\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u062a\u0648\u0633\u0639\u0647\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0646\u0635\u0628 \u0628\u0631\u062e\u06cc \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0628\u0647 \u0645\u062d\u06cc\u0637 \u062e\u0627\u0635 \u0634\u0645\u0627 \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627\u060c \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc\u060c \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f <code>composer<\/code> \u062f\u0633\u062a\u0648\u0631 happy (\ud83d\ude42)\u060c \u0627\u06af\u0631 \u0634\u06a9\u0627\u06cc\u062a \u06a9\u0631\u062f (\u06cc\u0627 \u0641\u0642\u0637 \u0628\u0647 \u0634\u0645\u0627 \u0647\u0634\u062f\u0627\u0631 \u062f\u0627\u062f) \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0627\u06cc \u0627\u0632 \u062f\u0633\u062a \u0631\u0641\u062a\u0647 \u0627\u0633\u062a\u060c \u0622\u0646 \u0628\u0633\u062a\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f (Google \u062f\u0648\u0633\u062a \u0634\u0645\u0627\u0633\u062a). <\/p>\n<p>\u0648\u0642\u062a\u06cc \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631\u0633\u062a \u0634\u062f\u060c \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan serve\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0631\u0648\u0634\u0646 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA_%D9%85%D8%AF%D9%84_%D8%AF%D8%A7%D8%AF%D9%87_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%BE%DB%8C%D8%A7%D9%85_%D9%87%D8%A7%DB%8C_%DA%86%D8%AA\"><\/span>\n<p>  \u0633\u0627\u062e\u062a \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0686\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 (\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645) \u062e\u0648\u0628 \u0627\u0633\u062a\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u06cc \u0628\u062e\u0634 \u0645\u062d\u0631\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0646\u0648\u0634\u062a\u0646 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0686\u062a \u0647\u0633\u062a\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645. \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u06a9\u0627\u0645\u0644\u0627\u064b \u062c\u062f\u06cc\u062f \u062f\u0631 \u0642\u0633\u0645\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>\/app\/Models<\/code> \u06a9\u0647 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0631\u062f \u0648 \u0628\u062f\u0644 \u0634\u062f\u0647 \u062f\u0631 \u0686\u062a \u0645\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan make:model <span class=\"nt\">-m<\/span> Message\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u06a9\u0644\u0627\u0633 \u062e\u0627\u0644\u06cc \u0627\u0633\u062a. \u0645\u0627 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u062a\u062e\u0635\u0635\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f <code>Message.php<\/code> \u0628\u0627 \u06a9\u062f \u0632\u06cc\u0631:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">App\\Models<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Database\\Eloquent\\Factories\\HasFactory<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Database\\Eloquent\\Model<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Database\\Eloquent\\Relations\\BelongsTo<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">Message<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Model<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"kn\">use<\/span> <span class=\"nc\">HasFactory<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"nv\">$table<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'messages'<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">protected<\/span> <span class=\"nv\">$fillable<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'id'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'user_id'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'text'<\/span><span class=\"p\">];<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">user<\/span><span class=\"p\">():<\/span> <span class=\"kt\">BelongsTo<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">belongsTo<\/span><span class=\"p\">(<\/span><span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'user_id'<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">getTimeAttribute<\/span><span class=\"p\">():<\/span> <span class=\"kt\">string<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nb\">date<\/span><span class=\"p\">(<\/span>\n            <span class=\"s2\">\"d M Y, H:i:s\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"nb\">strtotime<\/span><span class=\"p\">(<\/span><span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">attributes<\/span><span class=\"p\">[<\/span><span class=\"s1\">'created_at'<\/span><span class=\"p\">])<\/span>\n        <span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u062f \u0628\u0627\u0644\u0627 \u067e\u06cc\u0627\u0645\u06cc \u0631\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f: \u067e\u06cc\u0627\u0645 \u0647\u0627 \u062f\u0631 \u062c\u062f\u0648\u0644\u06cc \u06a9\u0647 \u0646\u0627\u0645\u0634 \u0630\u06a9\u0631 \u0634\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f <code>messages<\/code>; \u0647\u0631 \u067e\u06cc\u0627\u0645 \u0634\u0627\u0645\u0644 \u0633\u0647 \u0642\u0633\u0645\u062a \u0627\u0633\u062a: <code>id<\/code>\u060c <code>user_id<\/code>\u060c \u0648 <code>text<\/code>. \u0628\u0642\u06cc\u0647 \u06a9\u062f \u062f\u0648 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f: \u062a\u0627\u0628\u0639\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u06a9\u062f \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f <code>user<\/code> \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u067e\u06cc\u0627\u0645 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>BelongsTo<\/code> \u0635\u0641\u062a\u060c \u0648 \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0641\u06cc\u0644\u062f \u0631\u0627 \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>created_at<\/code> \u062f\u0631 \u0642\u0627\u0644\u0628 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u0642\u0627\u0628\u0644 \u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u0631\u0627\u06cc \u0627\u0646\u0633\u0627\u0646. \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u0647\u0631 \u067e\u06cc\u0627\u0645 \u062f\u0631 \u06a9\u0627\u062f\u0631 \u0686\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f. <\/p>\n<p>\u0645\u062f\u0644\u06cc \u06a9\u0647 \u0645\u0627 \u0646\u0648\u0634\u062a\u06cc\u0645 \u0628\u0647 Eloquent (ORM \u0644\u0627\u0631\u0627\u0648\u0644) \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc \u062f\u0647\u062f\u060c \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u062c\u062f\u0648\u0644 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u0645\u0647\u0627\u062c\u0631\u062a \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645\u060c \u06cc\u0639\u0646\u06cc \u0642\u0637\u0639\u0647 \u0627\u06cc \u0627\u0632 \u06a9\u062f \u06a9\u0647 \u062c\u062f\u0648\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan make:migration create_message_table\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u0647\u0627\u062c\u0631\u062a \u062e\u0627\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f <code>database\\migrations\\<\/code> \u06a9\u0647 \u0646\u0627\u0645\u0634 \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 <code><date and=\"\" time=\"\">_create_message_table.php<\/date><\/code>. \u0641\u0627\u06cc\u0644 \u0634\u0627\u0645\u0644 \u062f\u0648 \u0631\u0648\u0634 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0633\u062a: <code>up<\/code> \u0648 <code>down<\/code>. \u0627\u06cc\u0646 <code>up<\/code> \u0645\u062a\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u06cc \u0631\u0627 \u062f\u0631 \u0637\u0631\u062d \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u062c\u062f\u0627\u0648\u0644 \u062c\u062f\u06cc\u062f\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u0647\u0627 \u06cc\u0627 \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u0627\u06cc\u0647 \u0647\u0627. <\/p>\n<p>\u0628\u0631\u0639\u06a9\u0633\u060c <code>down<\/code> \u0646\u0642\u0634 \u0645\u062a\u062f \u062e\u0646\u062b\u06cc \u06a9\u0631\u062f\u0646 \u06cc\u0627 \u0645\u0639\u06a9\u0648\u0633 \u06a9\u0631\u062f\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0645\u0631\u0628\u0648\u0637\u0647 \u0627\u0633\u062a <code>up<\/code> \u0631\u0648\u0634\u060c \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0628\u0647 \u0639\u0642\u0628 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f. \u0645\u0627 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u06a9\u062f \u0632\u06cc\u0631 \u062a\u062e\u0635\u0635\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code> <span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Database\\Migrations\\Migration<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Database\\Schema\\Blueprint<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\Schema<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"kd\">class<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Migration<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">up<\/span><span class=\"p\">():<\/span> <span class=\"kt\">void<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nc\">Schema<\/span><span class=\"o\">::<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span><span class=\"s1\">'messages'<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span> <span class=\"p\">(<\/span><span class=\"kt\">Blueprint<\/span> <span class=\"nv\">$table<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n            <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">id<\/span><span class=\"p\">();<\/span>\n            <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">timestamps<\/span><span class=\"p\">();<\/span>\n\n            <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">foreignId<\/span><span class=\"p\">(<\/span><span class=\"s1\">'user_id'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">constrained<\/span><span class=\"p\">();<\/span>\n            <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">text<\/span><span class=\"p\">(<\/span><span class=\"s1\">'text'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">nullable<\/span><span class=\"p\">();<\/span>\n        <span class=\"p\">});<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">down<\/span><span class=\"p\">():<\/span> <span class=\"kt\">void<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nc\">Schema<\/span><span class=\"o\">::<\/span><span class=\"nf\">dropIfExists<\/span><span class=\"p\">(<\/span><span class=\"s1\">'messages'<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0627\u0646\u062a\u0642\u0627\u0644 \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0631\u0627 \u0628\u0627 \u0686\u0646\u062f \u0641\u06cc\u0644\u062f \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f: \u0634\u0646\u0627\u0633\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u0644\u06cc\u062f \u0627\u0635\u0644\u06cc\u060c <code>user_id<\/code> \u06a9\u0647 \u0628\u0647 \u062c\u062f\u0648\u0644 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0646 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0628\u0627 \u0641\u0631\u0633\u062a\u0646\u062f\u0647 \u0622\u0646\u0647\u0627 \u0648 \u06cc\u06a9 \u0641\u06cc\u0644\u062f \u0645\u062a\u0646\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0627\u0631\u062c\u0627\u0639 \u0645\u06cc \u062f\u0647\u062f. <\/p>\n<p>\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0627\u0631\u0627\u06cc \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u0645\u0647\u0631 \u0632\u0645\u0627\u0646\u06cc \u0627\u0633\u062a \u062a\u0627 \u0632\u0645\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0647\u0631 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u0631\u062f\u06cc\u0627\u0628\u06cc \u06a9\u0646\u062f. \u0645\u0647\u0631\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u06cc \u0627\u06cc\u0646 \u062f\u0648 \u0641\u06cc\u0644\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f <code>created_at<\/code> \u0648 <code>updated_at<\/code>. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0642\u062f\u0627\u0645 \u0627\u062d\u062a\u06cc\u0627\u0637\u06cc\u060c \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u0631\u0648\u0634 \u0645\u0639\u06a9\u0648\u0633 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u062c\u062f\u0648\u0644 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u062f \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0628\u0627\u0632\u06af\u0634\u062a \u0622\u0633\u0627\u0646 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0646\u062f. <\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan migrate:fresh\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u062c\u062f\u06cc\u062f \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f. \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u0622\u0646 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>database\\database.sqlite<\/code> \u0641\u0627\u06cc\u0644<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%AB%D8%A8%D8%AA_%D9%86%D8%A7%D9%85_%D9%88_%D9%88%D8%B1%D9%88%D8%AF_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1\"><\/span>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u062b\u0628\u062a \u0646\u0627\u0645 \u0648 \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0641\u0636\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u062f\u0627\u0631\u06cc\u0645\u060c \u0646\u0648\u0628\u062a \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a. \u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0633\u0639\u0647 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644\u060c \u0634\u0645\u0627 \u062f\u0648 \u06af\u0632\u06cc\u0646\u0647 \u0627\u0635\u0644\u06cc \u062f\u0627\u0631\u06cc\u062f: \u0627\u0648\u0644\u06cc \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 PHP \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0638\u0627\u0647\u0631 \u062e\u0648\u062f \u0627\u0633\u062a. \u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c \u062f\u0648\u0645\u06cc \u0627\u0632 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0645\u0627\u0646\u0646\u062f Vue \u06cc\u0627 React \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. <\/p>\n<p>\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 Vue \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0632 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0639\u0638\u06cc\u0645 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 npm \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f. \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0628\u0633\u062a\u0647 \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> composer require laravel\/ui\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06cc\u06a9 \u0628\u0627\u0631 <code>laravel\/ui<\/code> \u0628\u0633\u062a\u0647 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0627\u0631\u0628\u0633\u062a \u062c\u0644\u0648\u06cc\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f <code>artisan<\/code> \u062f\u0633\u062a\u0648\u0631: \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062b\u0628\u062a \u0646\u0627\u0645 \u0648 \u0648\u0631\u0648\u062f \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0641\u0642\u0637 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0686\u0642\u062f\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0627\u0634\u062f \u0627\u06af\u0631 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u0631\u0627 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u0648 \u0686\u0642\u062f\u0631 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan ui vue <span class=\"nt\">--auth<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0645\u0627 \u062f\u0648 \u0646\u06cc\u0645\u0647 \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u062f\u0627\u0631\u06cc\u0645: PHP \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 PHP artisan serve \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a. \u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0628\u062e\u0634 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> npm <span class=\"nb\">install<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0647\u0631 \u062f\u0648 \u0642\u0633\u0645\u062a \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627\u0634\u0646\u062f\u060c \u062f\u0648 \u067e\u0646\u062c\u0631\u0647 \u067e\u0648\u0633\u062a\u0647 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u06cc\u06a9\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 <code>artisan<\/code> \u062f\u0633\u062a\u0648\u0631 \u0648 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> npm run dev\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u062c\u0644\u0648\u06cc \u0635\u0641\u062d\u0647 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f \u0648 \u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062f\u0648\u0628\u0627\u0631\u0647 \u0622\u0646 \u0631\u0627 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. <\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u060c \u0628\u062f\u0648\u0646 \u0646\u0648\u0634\u062a\u0646 \u06cc\u06a9 \u062e\u0637 \u06a9\u062f\u060c \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a \u06a9\u0627\u0645\u0644\u0627\u064b \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631 \u062f\u0627\u0631\u06cc\u0645. \u0628\u0631\u0627\u06cc \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u06cc\u062f \u0628\u0647 http:\/\/127.0.0.1:8000\/register \u0628\u0631\u0648\u06cc\u062f \u0648 \u0648\u0627\u0631\u062f \u0648\u0628\u0633\u0627\u06cc\u062a \u0634\u0648\u06cc\u062f:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1ymhh6gw4z7rhgegugd.png\" alt=\"\u0635\u0641\u062d\u0647 \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631\" loading=\"lazy\" width=\"800\" height=\"582\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D9%85%D8%B3%DB%8C%D8%B1%D9%87%D8%A7_%D8%A8%D8%B1%D8%A7%DB%8C_API_%D9%BE%DB%8C%D8%A7%D9%85_%DA%86%D8%AA\"><\/span>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0633\u06cc\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc API \u067e\u06cc\u0627\u0645 \u0686\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0628\u0627\u06cc\u062f \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc API \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u06a9\u0647 \u0642\u0631\u0627\u0631 \u0627\u0633\u062a \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<ul>\n<li>  <code>\/home<\/code>  \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc &#8211; \u0627\u06cc\u0646 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f<\/li>\n<li>  <code>\/message<\/code>\u060c \u06cc\u06a9 \u0631\u0648\u0634 POST HTTP \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u062c\u062f\u06cc\u062f<\/li>\n<li>  <code>\/messages<\/code>  \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u0645\u0627\u0645 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f<\/li>\n<\/ul>\n<p>\u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <code>\/routes\/web.php<\/code> \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\Auth<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\Route<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Http\\Controllers\\HomeController<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"s1\">\"https:\/\/dev.to\/\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span> <span class=\"p\">{<\/span> <span class=\"k\">return<\/span> <span class=\"nf\">view<\/span><span class=\"p\">(<\/span><span class=\"s1\">'welcome'<\/span><span class=\"p\">);<\/span> <span class=\"p\">});<\/span>\n\n<span class=\"nc\">Auth<\/span><span class=\"o\">::<\/span><span class=\"nf\">routes<\/span><span class=\"p\">();<\/span>\n\n<span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"s1\">'\/home'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nc\">HomeController<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'index'<\/span><span class=\"p\">])<\/span>\n    <span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'home'<\/span><span class=\"p\">);<\/span>\n<span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"s1\">'\/messages'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nc\">HomeController<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'messages'<\/span><span class=\"p\">])<\/span>\n    <span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'messages'<\/span><span class=\"p\">);<\/span>\n<span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">post<\/span><span class=\"p\">(<\/span><span class=\"s1\">'\/message'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"nc\">HomeController<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'message'<\/span><span class=\"p\">])<\/span>\n    <span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'message'<\/span><span class=\"p\">);<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0646\u0648\u0634\u062a\u0646 \u0627\u0633\u062a <code>HomeController<\/code> \u06a9\u0647 API \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u06cc\u0645 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">App\\Http\\Controllers<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Jobs\\SendMessage<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\Message<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\User<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Http\\JsonResponse<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Http\\Request<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">HomeController<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">Controller<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">__construct<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">middleware<\/span><span class=\"p\">(<\/span><span class=\"s1\">'auth'<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">index<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$user<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">User<\/span><span class=\"o\">::<\/span><span class=\"nf\">where<\/span><span class=\"p\">(<\/span><span class=\"s1\">'id'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">auth<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">id<\/span><span class=\"p\">())<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">select<\/span><span class=\"p\">([<\/span>\n            <span class=\"s1\">'id'<\/span><span class=\"p\">,<\/span>\n            <span class=\"s1\">'name'<\/span><span class=\"p\">,<\/span>\n            <span class=\"s1\">'email'<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">])<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">first<\/span><span class=\"p\">();<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"nf\">view<\/span><span class=\"p\">(<\/span><span class=\"s1\">'home'<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span>\n            <span class=\"s1\">'user'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$user<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">]);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">messages<\/span><span class=\"p\">():<\/span> <span class=\"kt\">JsonResponse<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$messages<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Message<\/span><span class=\"o\">::<\/span><span class=\"nf\">with<\/span><span class=\"p\">(<\/span><span class=\"s1\">'user'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">get<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"s1\">'time'<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"nf\">response<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">json<\/span><span class=\"p\">(<\/span><span class=\"nv\">$messages<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">message<\/span><span class=\"p\">(<\/span><span class=\"kt\">Request<\/span> <span class=\"nv\">$request<\/span><span class=\"p\">):<\/span> <span class=\"kt\">JsonResponse<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$message<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Message<\/span><span class=\"o\">::<\/span><span class=\"nf\">create<\/span><span class=\"p\">([<\/span>\n            <span class=\"s1\">'user_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">auth<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">id<\/span><span class=\"p\">(),<\/span>\n            <span class=\"s1\">'text'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$request<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"s1\">'text'<\/span><span class=\"p\">),<\/span>\n        <span class=\"p\">]);<\/span>\n        <span class=\"nc\">SendMessage<\/span><span class=\"o\">::<\/span><span class=\"nf\">dispatch<\/span><span class=\"p\">(<\/span><span class=\"nv\">$message<\/span><span class=\"p\">);<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"nf\">response<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">json<\/span><span class=\"p\">([<\/span>\n            <span class=\"s1\">'success'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n            <span class=\"s1\">'message'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">\"Message created and job dispatched.\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">]);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0646\u0637\u0642 \u067e\u0634\u062a API\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<ul>\n<li>    \u062f\u0631 <code>\/home<\/code> \u0631\u0648\u0634\u060c \u0645\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631 \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>User<\/code> \u0645\u062f\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f<\/li>\n<li>    \u062f\u0631 <code>\/messages<\/code> \u0631\u0648\u0634\u060c \u0645\u0627 \u0647\u0645\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0648\u0627\u06a9\u0634\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>Message<\/code> \u0645\u062f\u0644\u060c \u0634\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0645\u0631\u062a\u0628\u0637\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 <code>time<\/code> \u0641\u06cc\u0644\u062f (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 Accessor) \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u062f\u0627\u0645 <code>message<\/code>\u0648 \u0645\u062c\u0645\u0648\u0639\u0647 \u06a9\u0627\u0645\u0644 \u0631\u0627 \u0628\u0647 view \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f<\/li>\n<li>    \u062f\u0631 <code>\/message<\/code> \u0631\u0648\u0634\u060c \u0645\u0627 \u06cc\u06a9 \u0631\u0648\u0634 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <code>message<\/code> \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>Message<\/code> \u0645\u062f\u0644 \u0648 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f <code>SendMessage<\/code> \u06a9\u0627\u0631 \u0635\u0641<\/li>\n<\/ul>\n<p>\u0648\u0642\u062a\u06cc \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0635\u0641 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u062a\u0628\u0627\u062f\u0644 \u0648 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF_%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84_%D9%88_%DA%A9%D8%A7%D8%B1_%D8%B5%D9%81\"><\/span>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u06a9\u0627\u0631 \u0635\u0641<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u0635\u0641 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0648\u0638\u0627\u06cc\u0641 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. <\/p>\n<p>\u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u0646\u062f \u06a9\u0647 \u0627\u0639\u0645\u0627\u0644 \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062e\u0627\u0635\u06cc \u0631\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u062a\u0639\u0631\u06cc\u0641 \u0648 \u067e\u062e\u0634 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0634\u0646\u0648\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0633\u067e\u0633 \u0628\u0647 \u0622\u0646\u0647\u0627 \u067e\u0627\u0633\u062e \u062f\u0647\u0646\u062f. \u0645\u0634\u0627\u063a\u0644 \u0635\u0641 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u06a9\u0627\u0631\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u200c\u0628\u0631\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u0631\u0633\u0627\u0644 \u0627\u06cc\u0645\u06cc\u0644 \u06cc\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0628\u0632\u0631\u06af\u060c \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0645\u0646\u062f\u0627\u0646 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u067e\u0627\u0633\u062e\u06af\u0648 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f. <\/p>\n<p>\u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0628\u0627 \u0647\u0645\u060c \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0644\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc\u200c\u0628\u062e\u0634\u0646\u062f. \u0645\u0627 \u0627\u0632 \u0647\u0631 \u062f\u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f: <code>event<\/code> \u0627\u0633\u0627\u0633\u0627 \u06cc\u06a9 \u0645\u062d\u0641\u0638\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f \u0648 <code>QueueListener<\/code> \u062a\u0639\u062f\u0627\u062f \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u062a\u0638\u0631 \u0627\u0631\u0633\u0627\u0644 \u0647\u0633\u062a\u0646\u062f \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f. <\/p>\n<p>\u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631\u060c \u0645\u0627 \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>Event<\/code> \u06a9\u0644\u0627\u0633 \u062f\u0631 <code>\/app\/Events<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan make:event GotMessage\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0648 \u0686\u06cc\u0632 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645: \u0633\u0627\u0632\u0646\u062f\u0647 \u0627\u06cc \u06a9\u0647 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f \u0628\u0627\u0631 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0686\u06cc\u0633\u062a \u0648 <code>broadcastOn()<\/code> \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u0639\u06cc\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u062f\u0631 \u06a9\u062f\u0627\u0645 \u06a9\u0627\u0646\u0627\u0644 \u067e\u062e\u0634 \u0634\u0648\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">App\\Events<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Broadcasting\\InteractsWithSockets<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Broadcasting\\PrivateChannel<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Foundation\\Events\\Dispatchable<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Queue\\SerializesModels<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">GotMessage<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">ShouldBroadcast<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kn\">use<\/span> <span class=\"nc\">Dispatchable<\/span><span class=\"p\">,<\/span> <span class=\"nc\">InteractsWithSockets<\/span><span class=\"p\">,<\/span> <span class=\"nc\">SerializesModels<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">__construct<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">broadcastOn<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span>  <span class=\"k\">new<\/span> <span class=\"nc\">PrivateChannel<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"channel_for_everyone\"<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0646\u0627\u0645 \u06a9\u0627\u0646\u0627\u0644 (&#8220;<code>channel_for_everyone<\/code>&#8220;) \u062f\u0631 \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 WebSocket \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f (\u0628\u0647 \u0632\u06cc\u0631 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06a9\u0627\u0646\u0627\u0644 \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0628\u06cc\u0646 \u0647\u0631 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0686\u062a \u0648 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0633\u0627\u0632\u0646\u062f\u0647 \u0647\u06cc\u0686 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u06cc \u0631\u0627 \u0646\u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0647\u06cc\u0686 \u0627\u0634\u0627\u0631\u0647 \u0627\u06cc \u0628\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0646\u062f\u0627\u0631\u062f: \u0627\u06cc\u062f\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0632\u0645\u0627\u0646\u06cc \u067e\u062e\u0634 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u062c\u062f\u06cc\u062f \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f\u060c \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0634\u062a\u0631\u06cc \u0622\u0646 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u060c \u0622\u0646\u0647\u0627 \u0641\u0642\u0637 \u0644\u06cc\u0633\u062a \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u062f\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0628\u0648\u062f\u06cc\u0645 \u0628\u0647 \u0633\u0631\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f. <\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f <code>QueueListener<\/code>\u060c \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan make:job SendMessage\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u06a9\u0646\u062f <code>SendMessage.php<\/code> \u0641\u0627\u06cc\u0644 \u062f\u0631 <code>\/app\/Jobs<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0686\u0627\u0631\u0686\u0648\u0628 \u0644\u0627\u0631\u0627\u0648\u0644 \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f <code>GotMessage<\/code> \u0631\u0648\u06cc\u062f\u0627\u062f\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"><?php <\/span?>\n\n<span class=\"kn\">namespace<\/span> <span class=\"nn\">App\\Jobs<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Events\\GotMessage<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">App\\Models\\Message<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Bus\\Queueable<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Contracts\\Queue\\ShouldQueue<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Foundation\\Bus\\Dispatchable<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Queue\\InteractsWithQueue<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Queue\\SerializesModels<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">SendMessage<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">ShouldQueue<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kn\">use<\/span> <span class=\"nc\">Dispatchable<\/span><span class=\"p\">,<\/span> <span class=\"nc\">InteractsWithQueue<\/span><span class=\"p\">,<\/span> <span class=\"nc\">Queueable<\/span><span class=\"p\">,<\/span> <span class=\"nc\">SerializesModels<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">__construct<\/span><span class=\"p\">(<\/span><span class=\"k\">public<\/span> <span class=\"kt\">Message<\/span> <span class=\"nv\">$message<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c1\">\/\/<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">handle<\/span><span class=\"p\">():<\/span> <span class=\"kt\">void<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nc\">GotMessage<\/span><span class=\"o\">::<\/span><span class=\"nf\">dispatch<\/span><span class=\"p\">([<\/span>\n            <span class=\"s1\">'id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">message<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">id<\/span><span class=\"p\">,<\/span>\n            <span class=\"s1\">'user_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">message<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user_id<\/span><span class=\"p\">,<\/span>\n            <span class=\"s1\">'text'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">message<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">text<\/span><span class=\"p\">,<\/span>\n            <span class=\"s1\">'time'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">message<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">time<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">]);<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 <code>handle()<\/code> \u0631\u0648\u0634 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f <code>GotMessage<\/code> \u0631\u0648\u06cc\u062f\u0627\u062f \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f \u067e\u06cc\u0627\u0645 <code>id<\/code>\u060c <code>user_id<\/code>\u060c <code>text<\/code>\u060c \u0648 <code>timestamp<\/code>. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647\u060c \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u06a9\u0627\u0646\u0627\u0644 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u062f\u060c \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0622\u0645\u062f \u0648\u0638\u0627\u06cc\u0641 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u062f\u0631 \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f\u060c \u0639\u0645\u0648\u0645\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f <code>$message<\/code> \u0648\u06cc\u0698\u06af\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0633\u0627\u0632\u0646\u062f\u0647\u061b \u0627\u06cc\u0646 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u0635\u0641 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f (\u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f). <\/p>\n<p>\u0628\u0627 \u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0627\u062c\u0632\u0627\u06cc \u062f\u06cc\u06af\u0631\u060c \u0627\u06a9\u0646\u0648\u0646 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0639\u0646\u0635\u0631 PHP \u0646\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645: WebSocket.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_Laravel_Reverb\"><\/span>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 Laravel Reverb<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Laravel Reverb \u06cc\u06a9 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0628\u0644\u0627\u062f\u0631\u0646\u06af WebSocket \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 WebSockets \u0628\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f. \u0628\u0627 Reverb\u060c \u0627\u0645\u06a9\u0627\u0646 \u067e\u062e\u0634 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u0645\u060c \u062f\u0631 \u0647\u0631 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0645\u062a\u0635\u0644 \u0645\u0646\u0639\u06a9\u0633 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u062c\u062f\u062f \u0635\u0641\u062d\u0647. \u0637\u0628\u0642 \u0645\u0639\u0645\u0648\u0644\u060c \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0628\u0633\u06cc\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0627 \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0633\u0627\u062f\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> <span class=\"o\">&gt;<\/span> php artisan <span class=\"nb\">install<\/span>:broadcasting\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u067e\u0630\u06cc\u0631\u0641\u062a\u0646 \u06af\u0632\u06cc\u0646\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c \u0647\u0645 \u0642\u0633\u0645\u062a PHP \u0628\u0631\u0627\u06cc backend \u0648 \u0647\u0645 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc Node \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 frontend \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f. <\/p>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0686\u0646\u062f\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f: \u06cc\u06a9 \u0628\u062e\u0634 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f <code>.env<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc Reverb\u060c \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 <code>reverb.php<\/code> \u0641\u0627\u06cc\u0644 \u062f\u0631 <code>\/config<\/code> \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u06cc\u0646 \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u060c \u0648 \u0645\u0647\u0645\u062a\u0631 \u0627\u0632 \u0647\u0645\u0647\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 <code>channels.php<\/code> \u0641\u0627\u06cc\u0644 \u062f\u0631 <code>\/routes<\/code>. \u062f\u0631 \u0627\u06cc\u0646 <code>channels.php<\/code> Reverb \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0622\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>channel_for_everyone<\/code> \u06a9\u0627\u0646\u0627\u0644 \u0631\u0627 \u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u062f \u0632\u06cc\u0631:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"nc\">Broadcast<\/span><span class=\"o\">::<\/span><span class=\"nf\">channel<\/span><span class=\"p\">(<\/span><span class=\"s1\">'channel_for_everyone'<\/span><span class=\"p\">,<\/span> <span class=\"k\">function<\/span> <span class=\"p\">(<\/span><span class=\"nv\">$user<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631 \u0642\u0633\u0645\u062a \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0633\u0631 \u062c\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0631\u0648\u06cc \u0642\u0633\u0645\u062a \u062c\u0644\u0648\u06cc\u06cc \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA_%D8%AC%D9%84%D9%88%DB%8C%DB%8C_Vue\"><\/span>\n<p>  \u0633\u0627\u062e\u062a \u062c\u0644\u0648\u06cc\u06cc Vue<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u06cc\u06a9 \u0638\u0627\u0647\u0631 \u0633\u0627\u062f\u0647 \u0628\u0627 \u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc\u060c \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u0627\u06cc\u0644\u060c \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc \u0641\u0648\u0646\u062a \u0648 \u063a\u06cc\u0631\u0647 \u0637\u0631\u0627\u062d\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645 \u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u06cc\u0637 Vue \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"o\">&gt;<\/span> npm <span class=\"nb\">install <\/span>vue vue-router @vitejs\/plugin-vue<span class=\"sb\">```<\/span>\n<span class=\"o\">{<\/span>% endraw %<span class=\"o\">}<\/span>\n\n\nNow we can focus on three files to integrate a Vue template <span class=\"k\">in <\/span>Laravel. The first one is <span class=\"o\">{<\/span>% raw %<span class=\"o\">}<\/span><span class=\"sb\">`<\/span>resources\/js\/app.js<span class=\"sb\">`<\/span><span class=\"o\">{<\/span>% endraw %<span class=\"o\">}<\/span>, which will instantiate the Vue component that contains our app:\n<span class=\"o\">{<\/span>% raw %<span class=\"o\">}<\/span>\n\n\n<span class=\"sb\">```<\/span>javascript \nimport <span class=\"s1\">'.\/bootstrap'<\/span><span class=\"p\">;<\/span>\nimport App from <span class=\"s1\">'.\/App.vue'<\/span>\nimport <span class=\"o\">{<\/span> createApp <span class=\"o\">}<\/span> from <span class=\"s1\">'vue'<\/span><span class=\"p\">;<\/span>\n\nconst app <span class=\"o\">=<\/span> createApp<span class=\"o\">({})<\/span><span class=\"p\">;<\/span>\n\napp.component<span class=\"o\">(<\/span><span class=\"s1\">'app'<\/span>, App<span class=\"o\">)<\/span><span class=\"p\">;<\/span>\n\napp.mount<span class=\"o\">(<\/span><span class=\"s2\">\"#app\"<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u062f \u0633\u0627\u062f\u0647 \u0627\u0633\u062a: <code>App.vue<\/code> \u0627\u0644\u06af\u0648\u06cc Vue \u0645\u0627 \u0627\u0633\u062a \u0648 \u0645\u0627 \u0641\u0642\u0637 \u0622\u0646 \u0631\u0627 \u0628\u0627 <code>div<\/code> \u06a9\u0647 <code>id<\/code> \u0627\u0633\u062a <code>#app<\/code> \u062f\u0631 <code>blade<\/code> \u0641\u0627\u06cc\u0644 (\u0628\u0647 \u0642\u0637\u0639\u0647 \u06a9\u062f \u0628\u0639\u062f\u06cc \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f) \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0645\u0627 \u0631\u0627 \u0631\u0646\u062f\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0641\u0627\u06cc\u0644 \u0628\u0639\u062f\u06cc \u0627\u0633\u062a <code>resources\/js\/App.vue<\/code>\u060c \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0642\u0627\u0644\u0628 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"o\">&lt;<\/span><span class=\"nx\">script<\/span> <span class=\"nx\">setup<\/span><span class=\"o\">&gt;<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">props<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">defineProps<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">isAuth<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Boolean<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">default<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"na\">user<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"nb\">Object<\/span><span class=\"p\">,<\/span> <span class=\"nb\">Array<\/span><span class=\"p\">],<\/span>\n        <span class=\"na\">required<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">})<\/span>\n<span class=\"o\">&lt;<\/span><span class=\"sr\">\/script<\/span><span class=\"err\">&gt;\n<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">template<\/span><span class=\"o\">&gt;<\/span>\n    <span class=\"o\">&lt;<\/span><span class=\"nx\">h1<\/span><span class=\"o\">&gt;<\/span><span class=\"nx\">Hello<\/span><span class=\"p\">,<\/span> <span class=\"p\">{{<\/span> <span class=\"nx\">user<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span> <span class=\"p\">}}<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/h1<\/span><span class=\"err\">&gt;\n<\/span><span class=\"o\">&lt;<\/span><span class=\"sr\">\/template<\/span><span class=\"err\">&gt;\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u062f \u062f\u0648 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f: \u0622\u0646 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f <code>props<\/code> \u0628\u0631\u0627\u06cc Vue \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u06a9\u0647 \u0627\u0632 \u0644\u0627\u0631\u0627\u0648\u0644 \u0645\u06cc \u0622\u06cc\u0646\u062f\u060c \u0648 \u0633\u067e\u0633 \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u0633\u0627\u062f\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f\u060c \u0645\u0627 \u0628\u0647 \u062a\u0627\u0632\u06af\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0641\u0639\u0644\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u06cc\u0645 <code>user<\/code> \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f <code>name<\/code>. <\/p>\n<p>\u0622\u062e\u0631\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u06cc\u0646 \u0627\u0633\u062a <code>blade<\/code> \u06a9\u0647 \u0645\u0624\u0644\u0641\u0647 Vue \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0622\u0646 \u062a\u063a\u0630\u06cc\u0647 \u06a9\u0646\u06cc\u0645\u060c \u0628\u0647 \u0647\u0645 \u0645\u06cc\u200c\u0686\u0633\u0628\u0627\u0646\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0641\u0642\u0637 \u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0642\u0633\u0645\u062a \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u0645 <code>resources\\views\\welcome.blade.php<\/code> \u0641\u0627\u06cc\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"cp\"\/>\n\n<span class=\"nt\"\/> \n <span class=\"nt\"><title\/><\/span>Laravel + Vue Chat<span class=\"nt\"\/>\n @vite(['resources\/js\/app.js'])\n<span class=\"nt\"\/>\n\n<span class=\"nt\"\/>\n <span class=\"nt\"\/>\n<span class=\"nt\"\/>\n\n<span class=\"nt\"\/><\/code><\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0631\u0648\u0632\u0627\u0631\u06cc\u0648 \u062f\u06cc \u06a9\u06cc\u0627\u0631\u0627\u270f\ufe0f Laravel Reverb \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0648\u0628 \u0633\u0648\u06a9\u062a \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u0627\u0633\u062a \u06a9\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0647 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u067e\u062e\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0628\u0644\u0627\u062f\u0631\u0646\u06af \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u06cc\u0646 \u0645\u0634\u062a\u0631\u06cc\u0627\u0646 \u0645\u062a\u0635\u0644 \u0628\u062f\u0648\u0646 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u062c\u062f\u062f \u0635\u0641\u062d\u0647 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. Vue \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u062c\u0627\u0648\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":83550,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-83549","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/83549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=83549"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/83549\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/83550"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=83549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=83549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=83549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}