Implement PSR3 and PHP Monolog (#19)

* feat: install monolog composer lib
* feat: implement psr3 and monolog
* feat: display logs in frontend
* fix: tests
* build: update cicd to run tests for PR
* build: add phpcs to cicd
* refactor: fix phpcs problems
This commit is contained in:
2025-11-17 15:00:54 +03:00
committed by GitHub
parent 770ec81fdc
commit d6db083dea
66 changed files with 466 additions and 337 deletions

View File

@@ -29,6 +29,10 @@
<li :class="{active: route.name === 'mainpage'}">
<RouterLink :to="{name: 'mainpage'}">Главная страница</RouterLink>
</li>
<li :class="{active: route.name === 'logs'}">
<RouterLink :to="{name: 'logs'}">Журнал событий</RouterLink>
</li>
</ul>
<section class="form-horizontal tab-content">

View File

@@ -1,9 +1,6 @@
@layer theme, base, components, utilities;
@import "tailwindcss/theme.css" layer(theme) prefix(tw);
@import "tailwindcss/utilities.css" layer(utilities) prefix(tw);
@plugin "daisyui" {
prefix: 'd-'
}
@layer components {
.tw\:d-toggle {
@@ -24,7 +21,6 @@ html {
font-size: 14px;
}
.p-toast .p-toast-message-success {
color: #3c763d;
background-color: #dff0d8;

View File

@@ -0,0 +1,18 @@
<template>
<textarea v-text="rows" rows="40" class="tw:w-full"/>
</template>
<script setup>
import {onMounted, ref} from "vue";
import {apiGet} from "@/utils/http.js";
const rows = ref('');
onMounted(async () => {
const response = await apiGet('getLogs');
rows.value = response.data;
});
</script>
<style scoped>
</style>

View File

@@ -6,6 +6,7 @@ import TelegramView from "@/views/TelegramView.vue";
import MetricsView from "@/views/MetricsView.vue";
import StoreView from "@/views/StoreView.vue";
import MainPageView from "@/views/MainPageView.vue";
import LogsView from "@/views/LogsView.vue";
const router = createRouter({
history: createMemoryHistory(),
@@ -17,6 +18,7 @@ const router = createRouter({
{path: '/metrics', name: 'metrics', component: MetricsView},
{path: '/store', name: 'store', component: StoreView},
{path: '/mainpage', name: 'mainpage', component: MainPageView},
{path: '/logs', name: 'logs', component: LogsView},
],
});

View File

@@ -0,0 +1,8 @@
<template>
<LogsViewer/>
</template>
<script setup>
import LogsViewer from "@/components/LogsViewer.vue";
</script>