50 lines
1.0 KiB
PHP
50 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Model;
|
|
|
|
use App\Config;
|
|
|
|
ChatModel::init();
|
|
|
|
abstract class ChatModel
|
|
{
|
|
private static array $messages;
|
|
|
|
static function init()
|
|
{
|
|
if (!file_exists(Config::get('path_to_chat_json_file'))) {
|
|
file_put_contents(
|
|
Config::get('path_to_chat_json_file'),
|
|
json_encode([])
|
|
);
|
|
}
|
|
self::$messages = json_decode(
|
|
file_get_contents(Config::get('path_to_chat_json_file')),
|
|
true
|
|
);
|
|
}
|
|
|
|
static function get_messages(): array
|
|
{
|
|
return self::$messages;
|
|
}
|
|
|
|
static function save_message(string $nick, string $text)
|
|
{
|
|
if (count(self::$messages) > 100) {
|
|
array_pop($messages);
|
|
}
|
|
|
|
array_unshift(self::$messages, [
|
|
'nick' => $nick,
|
|
'date' => time(),
|
|
'text' => $text
|
|
]);
|
|
|
|
file_put_contents(Config::get('path_to_chat_json_file'),
|
|
json_encode(
|
|
self::$messages
|
|
)
|
|
);
|
|
}
|
|
} |