This commit is contained in:
team3
2026-06-03 22:05:20 +02:00
parent d7e8df6876
commit 40de56c27b
5119 changed files with 552560 additions and 24 deletions

View File

@@ -5,6 +5,8 @@ TEMPLATES_DIR = PROJECT_ROOT / "templates"
STORAGE_DIR = PROJECT_ROOT / "storage" STORAGE_DIR = PROJECT_ROOT / "storage"
FRONTEND_DIST = PROJECT_ROOT / "frontend" / "dist" FRONTEND_DIST = PROJECT_ROOT / "frontend" / "dist"
DB_PATH = STORAGE_DIR / "guides.db" DB_PATH = STORAGE_DIR / "guides.db"
PROJECTS_DIR = PROJECT_ROOT / "projects"
PROJECTS_CACHE_DIR = STORAGE_DIR / "projects"
ALLOWED_FORMATS = [ ALLOWED_FORMATS = [
"OnePager", "OnePager",
@@ -27,7 +29,8 @@ AGENT_TIMEOUT = 3600
MAX_CONCURRENT_GENERATIONS = 6 MAX_CONCURRENT_GENERATIONS = 6
CLAUDE_CLI = "claude" CLAUDE_CLI = "claude"
MODEL_GUIDE = "claude-opus-4-8" MODEL_GUIDE = "claude-opus-4-8[1m]"
MODEL_BAUSTEIN_GEN = "claude-sonnet-4-6" MODEL_BAUSTEIN_GEN = "claude-sonnet-4-6"
MODEL_BAUSTEIN_REWORK = "claude-sonnet-4-6" MODEL_BAUSTEIN_REWORK = "claude-sonnet-4-6"
MODEL_CHAT = "claude-sonnet-4-6" MODEL_CHAT = "claude-sonnet-4-6"
MODEL_PROJECT_INDEX = MODEL_BAUSTEIN_GEN

View File

@@ -17,6 +17,7 @@ from config import (
MODEL_BAUSTEIN_GEN, MODEL_BAUSTEIN_GEN,
MODEL_BAUSTEIN_REWORK, MODEL_BAUSTEIN_REWORK,
MODEL_CHAT, MODEL_CHAT,
MODEL_PROJECT_INDEX,
STORAGE_DIR, STORAGE_DIR,
) )
from database import ( from database import (
@@ -28,7 +29,7 @@ from database import (
update_baustein, update_baustein,
update_baustein_sort_orders, update_baustein_sort_orders,
) )
from paths import final_paths, temp_paths from paths import final_paths, temp_paths, project_dir, project_cache_path
_semaphore = asyncio.Semaphore(MAX_CONCURRENT_GENERATIONS) _semaphore = asyncio.Semaphore(MAX_CONCURRENT_GENERATIONS)
_active_processes: dict[str, asyncio.subprocess.Process] = {} _active_processes: dict[str, asyncio.subprocess.Process] = {}
@@ -94,15 +95,48 @@ async def _render_pdf(html_path: Path, pdf_path: Path) -> tuple[bool, str]:
return True, "" return True, ""
def _build_generator_prompt(topic: str, format_name: str, html_path: Path, instructions: str = "") -> str: def _build_project_index_prompt(name: str, cache_path: Path, has_cache: bool) -> str:
src = project_dir(name)
if has_cache:
return f"""Es existiert bereits eine verdichtete Wissensdatei zum Projekt "{name}" unter {cache_path}.
Prüfe sie gegen das echte Projekt unter {src}.
SCHRITT 1: Lies die bestehende Wissensdatei {cache_path}.
SCHRITT 2: Verschaffe dir mit Bash (ls/find) und Read einen vollständigen Überblick über {src}. Lies README, Doku-Ordner und den relevanten Quellcode.
SCHRITT 3: Ergänze fehlende oder veraltete wichtige Informationen. Ein früherer Lauf war evtl. schlampig und hat Wichtiges ausgelassen.
SCHRITT 4: Schreibe die vollständige, korrigierte Wissensdatei zurück nach {cache_path}.
Die Datei muss als alleinige Faktenbasis für einen Lern-Guide ausreichen. Erfasse: Zweck, Architektur, Abläufe, wichtige Dateien, Konfiguration, Befehle, Datenstrukturen, Besonderheiten. Schreibe NUR diese eine Datei."""
return f"""Lies das Projekt "{name}" vollständig ein und erstelle daraus eine verdichtete Wissensdatei.
SCHRITT 1: Verschaffe dir mit Bash (ls/find) einen Überblick über {src}.
SCHRITT 2: Lies README, Doku-Ordner und den relevanten Quellcode mit dem Read-Tool.
SCHRITT 3: Schreibe eine vollständige Wissensdatei nach {cache_path}.
Die Datei muss als alleinige Faktenbasis für einen Lern-Guide ausreichen. Erfasse: Zweck, Architektur, Abläufe, wichtige Dateien, Konfiguration, Befehle, Datenstrukturen, Besonderheiten. Lass nichts Wichtiges aus. Schreibe NUR diese eine Datei."""
def _build_generator_prompt(topic: str, format_name: str, html_path: Path, instructions: str = "", project_content: str | None = None) -> str:
spec = (TEMPLATES_DIR / "Format" / f"{format_name}.md").read_text(encoding="utf-8") spec = (TEMPLATES_DIR / "Format" / f"{format_name}.md").read_text(encoding="utf-8")
reference = (TEMPLATES_DIR / "Referenz" / f"{format_name}.md").read_text(encoding="utf-8") reference = (TEMPLATES_DIR / "Referenz" / f"{format_name}.md").read_text(encoding="utf-8")
extra = f"\n\nZUSÄTZLICHE ANWEISUNGEN VOM NUTZER:\n{instructions}\n" if instructions else "" extra = f"\n\nZUSÄTZLICHE ANWEISUNGEN VOM NUTZER:\n{instructions}\n" if instructions else ""
if project_content:
research_line = (
f'Die folgenden PROJEKT-INHALTE sind die Quelle der Wahrheit für "{topic}". '
"Nutze sie als primäre Faktenbasis. Recherchiere per Websuche nur ergänzend, "
"um fehlende oder sich ändernde Fakten (z. B. aktuelle Versionsnummern externer Tools) zu prüfen.\n\n"
f"PROJEKT-INHALTE (Quelle der Wahrheit):\n{project_content}"
)
else:
research_line = f'Recherchiere zuerst die aktuelle Version und aktuelle Fakten zu "{topic}" per Websuche, damit Versionsnummern und Angaben stimmen.'
return f"""Erstelle einen Lern-Guide zum Thema "{topic}" im Format "{format_name}". return f"""Erstelle einen Lern-Guide zum Thema "{topic}" im Format "{format_name}".
Recherchiere zuerst die aktuelle Version und aktuelle Fakten zu "{topic}" per Websuche, damit Versionsnummern und Angaben stimmen. {research_line}
Schreibe die HTML-Datei nach: {html_path} Schreibe die HTML-Datei nach: {html_path}
@@ -144,16 +178,29 @@ Führe KEIN weasyprint aus, erzeuge KEINE PDF.
""" """
def _build_content_review_prompt(topic: str, format_name: str, html_path: Path) -> str: def _build_content_review_prompt(topic: str, format_name: str, html_path: Path, project_content: str | None = None) -> str:
spec = (TEMPLATES_DIR / "Format" / f"{format_name}.md").read_text(encoding="utf-8") spec = (TEMPLATES_DIR / "Format" / f"{format_name}.md").read_text(encoding="utf-8")
if project_content:
check_step = (
"SCHRITT 2 — Fakten prüfen:\n"
f'Vergleiche den Inhalt mit den folgenden PROJEKT-INHALTEN (Quelle der Wahrheit) für "{topic}". '
"Stimmen die Projekt-Fakten? Fehlt Wichtiges aus dem Projekt? "
"Externe/aktuelle Fakten (Versionsnummern fremder Tools) ergänzend per WebSearch prüfen.\n\n"
f"PROJEKT-INHALTE:\n{project_content}"
)
else:
check_step = (
"SCHRITT 2 — Fakten per Websuche prüfen:\n"
f'Recherchiere mit WebSearch, ob Versionsnummern, Jahreszahlen und zentrale Fakten zu "{topic}" aktuell und korrekt sind.'
)
return f"""Prüfe den Inhalt der HTML-Datei {html_path} für den "{format_name}" zum Thema "{topic}". return f"""Prüfe den Inhalt der HTML-Datei {html_path} für den "{format_name}" zum Thema "{topic}".
SCHRITT 1 — HTML-Datei lesen: SCHRITT 1 — HTML-Datei lesen:
Öffne die Datei {html_path} mit dem Read-Tool. Öffne die Datei {html_path} mit dem Read-Tool.
SCHRITT 2 — Fakten per Websuche prüfen: {check_step}
Recherchiere mit WebSearch, ob Versionsnummern, Jahreszahlen und zentrale Fakten zu "{topic}" aktuell und korrekt sind.
SCHRITT 3 — Vollständigkeit prüfen anhand dieser Spezifikation: SCHRITT 3 — Vollständigkeit prüfen anhand dieser Spezifikation:
{spec} {spec}
@@ -178,7 +225,7 @@ FAIL
""" """
async def generate_guide(guide_id: str, topic: str, format_name: str, instructions: str = "") -> None: async def generate_guide(guide_id: str, topic: str, format_name: str, instructions: str = "", reindex: bool = False) -> None:
async with _semaphore: async with _semaphore:
now = datetime.now(timezone.utc).isoformat() now = datetime.now(timezone.utc).isoformat()
await update_guide(guide_id, status="generating", progress="Recherche…", updated_at=now) await update_guide(guide_id, status="generating", progress="Recherche…", updated_at=now)
@@ -192,9 +239,31 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio
current_step = "Generierung" current_step = "Generierung"
current_timeout = AGENT_TIMEOUT current_timeout = AGENT_TIMEOUT
# Step 0: Projekt einlesen (nur wenn topic ein Projekt ist)
project_content: str | None = None
if project_dir(topic).is_dir():
cache_path = project_cache_path(topic)
if reindex or not cache_path.exists():
await _set_progress(guide_id, "Lese Projekt…")
current_step = "Projekt-Einlesen"
index_prompt = _build_project_index_prompt(topic, cache_path, cache_path.exists())
returncode, idx_out, idx_err = await _run_claude(
guide_id, index_prompt, AGENT_TIMEOUT,
tools="Read,Bash,Write", model=MODEL_PROJECT_INDEX,
)
if guide_id in _cancelled:
return
if returncode != 0:
await _fail(guide_id, _claude_error("Projekt-Einlese-Fehler", returncode, idx_out, idx_err))
return
if not cache_path.exists():
await _fail(guide_id, "Projekt-Wissensdatei wurde nicht erstellt")
return
project_content = cache_path.read_text(encoding="utf-8")
# Step 1: Generator-Agent erstellt HTML # Step 1: Generator-Agent erstellt HTML
await _set_progress(guide_id, "Generiere HTML…") await _set_progress(guide_id, "Generiere HTML…")
gen_prompt = _build_generator_prompt(topic, format_name, html_path, instructions) gen_prompt = _build_generator_prompt(topic, format_name, html_path, instructions, project_content)
returncode, stdout, stderr = await _run_claude(guide_id, gen_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE) returncode, stdout, stderr = await _run_claude(guide_id, gen_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE)
if guide_id in _cancelled: if guide_id in _cancelled:
@@ -214,7 +283,7 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio
await _set_progress(guide_id, "Prüfe Inhalt…") await _set_progress(guide_id, "Prüfe Inhalt…")
current_step = "Inhalts-Review" current_step = "Inhalts-Review"
current_timeout = AGENT_TIMEOUT current_timeout = AGENT_TIMEOUT
content_prompt = _build_content_review_prompt(topic, format_name, html_path) content_prompt = _build_content_review_prompt(topic, format_name, html_path, project_content)
returncode, review_out, review_err = await _run_claude(guide_id, content_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE) returncode, review_out, review_err = await _run_claude(guide_id, content_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE)
if returncode != 0: if returncode != 0:

View File

@@ -3,7 +3,7 @@ from contextlib import asynccontextmanager
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from config import FRONTEND_DIST, STORAGE_DIR from config import FRONTEND_DIST, STORAGE_DIR, PROJECTS_CACHE_DIR
from database import init_db, close_db from database import init_db, close_db
from routes import router from routes import router
@@ -12,6 +12,7 @@ from routes import router
async def lifespan(app: FastAPI): async def lifespan(app: FastAPI):
(STORAGE_DIR / "html").mkdir(parents=True, exist_ok=True) (STORAGE_DIR / "html").mkdir(parents=True, exist_ok=True)
(STORAGE_DIR / "pdf").mkdir(parents=True, exist_ok=True) (STORAGE_DIR / "pdf").mkdir(parents=True, exist_ok=True)
PROJECTS_CACHE_DIR.mkdir(parents=True, exist_ok=True)
await init_db() await init_db()
yield yield
await close_db() await close_db()

View File

@@ -14,6 +14,12 @@ class GuideCreateRequest(BaseModel):
topic: str = Field(min_length=1, max_length=100) topic: str = Field(min_length=1, max_length=100)
format: FormatType format: FormatType
instructions: str = Field(default="", max_length=2000) instructions: str = Field(default="", max_length=2000)
reindex: bool = False
class ProjectResponse(BaseModel):
name: str
cached: bool
class GuideReworkRequest(BaseModel): class GuideReworkRequest(BaseModel):

View File

@@ -1,6 +1,6 @@
from pathlib import Path from pathlib import Path
from config import STORAGE_DIR from config import STORAGE_DIR, PROJECTS_DIR, PROJECTS_CACHE_DIR
def safe_basename(topic: str, format_name: str) -> str: def safe_basename(topic: str, format_name: str) -> str:
@@ -15,3 +15,11 @@ def final_paths(topic: str, format_name: str) -> tuple[Path, Path]:
def temp_paths(guide_id: str) -> tuple[Path, Path]: def temp_paths(guide_id: str) -> tuple[Path, Path]:
return STORAGE_DIR / "html" / f"{guide_id}.tmp.html", STORAGE_DIR / "pdf" / f"{guide_id}.tmp.pdf" return STORAGE_DIR / "html" / f"{guide_id}.tmp.html", STORAGE_DIR / "pdf" / f"{guide_id}.tmp.pdf"
def project_dir(name: str) -> Path:
return PROJECTS_DIR / name
def project_cache_path(name: str) -> Path:
return PROJECTS_CACHE_DIR / f"{name}.md"

View File

@@ -1,11 +1,12 @@
import asyncio import asyncio
import shutil
import uuid import uuid
from datetime import datetime, timezone from datetime import datetime, timezone
from fastapi import APIRouter, HTTPException from fastapi import APIRouter, HTTPException
from fastapi.responses import FileResponse from fastapi.responses import FileResponse
from config import FORMAT_META from config import FORMAT_META, PROJECTS_DIR
from database import ( from database import (
create_guide, delete_guide, get_guide, list_guides, create_guide, delete_guide, get_guide, list_guides,
create_baustein as db_create_baustein, list_bausteine, get_baustein, delete_baustein as db_delete_baustein, create_baustein as db_create_baustein, list_bausteine, get_baustein, delete_baustein as db_delete_baustein,
@@ -18,9 +19,9 @@ from models import (
BausteinCreateRequest, BausteinReworkRequest, BausteinSortRequest, BausteinResponse, SuggestionResponse, BausteinCreateRequest, BausteinReworkRequest, BausteinSortRequest, BausteinResponse, SuggestionResponse,
TopicSuggestRequest, TopicSuggestion, TopicSuggestRequest, TopicSuggestion,
GuideChatRequest, GuideChatResponse, GuideChatRequest, GuideChatResponse,
ProgressUpdate, ProgressResponse, ProgressUpdate, ProgressResponse, ProjectResponse,
) )
from paths import final_paths from paths import final_paths, project_dir, project_cache_path
router = APIRouter(prefix="/api") router = APIRouter(prefix="/api")
@@ -30,6 +31,34 @@ async def get_formats():
return FORMAT_META return FORMAT_META
def _safe_project_name(name: str) -> str:
if not name or "/" in name or "\\" in name or ".." in name or "\x00" in name:
raise HTTPException(400, "Ungültiger Projektname")
return name
@router.get("/projects", response_model=list[ProjectResponse])
async def list_projects():
if not PROJECTS_DIR.is_dir():
return []
result = []
for entry in sorted(PROJECTS_DIR.iterdir()):
if entry.is_dir():
result.append({"name": entry.name, "cached": project_cache_path(entry.name).exists()})
return result
@router.delete("/projects/{name}")
async def remove_project(name: str):
_safe_project_name(name)
pdir = project_dir(name)
if not pdir.is_dir():
raise HTTPException(404, "Projekt nicht gefunden")
shutil.rmtree(pdir)
project_cache_path(name).unlink(missing_ok=True)
return {"ok": True}
@router.post("/topic-suggestions", response_model=list[TopicSuggestion]) @router.post("/topic-suggestions", response_model=list[TopicSuggestion])
async def topic_suggestions(req: TopicSuggestRequest): async def topic_suggestions(req: TopicSuggestRequest):
guides = await list_guides() guides = await list_guides()
@@ -51,7 +80,7 @@ async def create(req: GuideCreateRequest):
"updated_at": now, "updated_at": now,
} }
await create_guide(guide) await create_guide(guide)
asyncio.create_task(generate_guide(guide["id"], guide["topic"], guide["format"], guide["instructions"])) asyncio.create_task(generate_guide(guide["id"], guide["topic"], guide["format"], guide["instructions"], req.reindex))
return guide return guide

View File

@@ -1,12 +1,13 @@
<script setup> <script setup>
import { ref, computed, onMounted, onUnmounted, nextTick } from 'vue' import { ref, computed, onMounted, onUnmounted, nextTick } from 'vue'
import { fetchGuides, createGuide as apiCreate, deleteGuide, cancelGuide as apiCancel, reworkGuide as apiRework, createBaustein as apiCreateBaustein } from './api.js' import { fetchGuides, createGuide as apiCreate, deleteGuide, cancelGuide as apiCancel, reworkGuide as apiRework, createBaustein as apiCreateBaustein, fetchProjects, deleteProject as apiDeleteProject } from './api.js'
import TopicSidebar from './components/TopicSidebar.vue' import TopicSidebar from './components/TopicSidebar.vue'
import TopicDetail from './components/TopicDetail.vue' import TopicDetail from './components/TopicDetail.vue'
import BausteineView from './components/BausteineView.vue' import BausteineView from './components/BausteineView.vue'
import HelpChat from './components/HelpChat.vue' import HelpChat from './components/HelpChat.vue'
const guides = ref([]) const guides = ref([])
const projects = ref([])
const manualTopics = ref([]) const manualTopics = ref([])
const selectedTopic = ref(null) const selectedTopic = ref(null)
const previewGuide = ref(null) const previewGuide = ref(null)
@@ -31,19 +32,26 @@ function onSidebarLeave() {
if (!sidebarPinned.value) sidebarSticky.value = false if (!sidebarPinned.value) sidebarSticky.value = false
} }
const projectNames = computed(() => projects.value.map((p) => p.name))
const topics = computed(() => { const topics = computed(() => {
const isProject = new Set(projectNames.value)
const topicDates = {} const topicDates = {}
for (const g of guides.value) { for (const g of guides.value) {
if (isProject.has(g.topic)) continue
if (!topicDates[g.topic] || g.created_at > topicDates[g.topic]) { if (!topicDates[g.topic] || g.created_at > topicDates[g.topic]) {
topicDates[g.topic] = g.created_at topicDates[g.topic] = g.created_at
} }
} }
for (const t of manualTopics.value) { for (const t of manualTopics.value) {
if (isProject.has(t)) continue
if (!topicDates[t]) topicDates[t] = new Date().toISOString() if (!topicDates[t]) topicDates[t] = new Date().toISOString()
} }
return Object.keys(topicDates).sort((a, b) => topicDates[b].localeCompare(topicDates[a])) return Object.keys(topicDates).sort((a, b) => topicDates[b].localeCompare(topicDates[a]))
}) })
const isProjectSelected = computed(() => projectNames.value.includes(selectedTopic.value))
const doneByFormat = computed(() => { const doneByFormat = computed(() => {
const map = {} const map = {}
for (const g of guides.value) { for (const g of guides.value) {
@@ -79,6 +87,14 @@ async function loadGuides() {
} }
} }
async function loadProjects() {
try {
projects.value = await fetchProjects()
} catch (e) {
console.error('Fehler beim Laden der Projekte:', e)
}
}
const FORMAT_ORDER = ['OnePager', 'Cheatsheet', 'MiniGuide', 'Guide', 'EndGuide'] const FORMAT_ORDER = ['OnePager', 'Cheatsheet', 'MiniGuide', 'Guide', 'EndGuide']
function autoPreview() { function autoPreview() {
@@ -113,13 +129,22 @@ function onHelpSelect(title) {
createTopic(title) createTopic(title)
} }
async function handleFormatClick({ format, instructions }) { async function handleFormatClick({ format, instructions, reindex }) {
if (!selectedTopic.value) return if (!selectedTopic.value) return
await apiCreate(selectedTopic.value, format, instructions) await apiCreate(selectedTopic.value, format, instructions, reindex || false)
await loadGuides() await loadGuides()
startPolling() startPolling()
} }
async function handleDeleteProject(name) {
await apiDeleteProject(name)
if (selectedTopic.value === name) {
selectedTopic.value = null
previewGuide.value = null
}
await loadProjects()
}
async function handleRework({ guideId, instructions }) { async function handleRework({ guideId, instructions }) {
await apiRework(guideId, instructions) await apiRework(guideId, instructions)
await loadGuides() await loadGuides()
@@ -193,7 +218,7 @@ function onVisibility() {
} }
onMounted(async () => { onMounted(async () => {
await loadGuides() await Promise.all([loadGuides(), loadProjects()])
if (!selectedTopic.value && topics.value.length) { if (!selectedTopic.value && topics.value.length) {
selectTopic(topics.value[0]) selectTopic(topics.value[0])
} }
@@ -211,6 +236,8 @@ onUnmounted(() => {
<div v-if="!sidebarPinned" class="hover-zone" @click="clickHoverZone"></div> <div v-if="!sidebarPinned" class="hover-zone" @click="clickHoverZone"></div>
<TopicSidebar <TopicSidebar
:topics="topics" :topics="topics"
:projects="projectNames"
:isProjectSelected="isProjectSelected"
:selectedTopic="selectedTopic" :selectedTopic="selectedTopic"
:doneByFormat="doneByFormat" :doneByFormat="doneByFormat"
:latestByFormat="latestByFormat" :latestByFormat="latestByFormat"
@@ -221,6 +248,7 @@ onUnmounted(() => {
@create="createTopic" @create="createTopic"
@formatClick="handleFormatClick" @formatClick="handleFormatClick"
@deleteTopic="handleDeleteTopic" @deleteTopic="handleDeleteTopic"
@deleteProject="handleDeleteProject"
@cancelGuide="handleCancel" @cancelGuide="handleCancel"
@deleteGuide="handleDeleteGuide" @deleteGuide="handleDeleteGuide"
@preview="handlePreview" @preview="handlePreview"

View File

@@ -10,15 +10,24 @@ export async function fetchGuide(id) {
return res.json() return res.json()
} }
export async function createGuide(topic, format, instructions = '') { export async function createGuide(topic, format, instructions = '', reindex = false) {
const res = await fetch(`${BASE}/guides`, { const res = await fetch(`${BASE}/guides`, {
method: 'POST', method: 'POST',
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ topic, format, instructions }), body: JSON.stringify({ topic, format, instructions, reindex }),
}) })
return res.json() return res.json()
} }
export async function fetchProjects() {
const res = await fetch(`${BASE}/projects`)
return res.json()
}
export async function deleteProject(name) {
await fetch(`${BASE}/projects/${encodeURIComponent(name)}`, { method: 'DELETE' })
}
export async function reworkGuide(id, instructions) { export async function reworkGuide(id, instructions) {
const res = await fetch(`${BASE}/guides/${id}/rework`, { const res = await fetch(`${BASE}/guides/${id}/rework`, {
method: 'POST', method: 'POST',

View File

@@ -3,6 +3,8 @@ import { ref, computed } from 'vue'
const props = defineProps({ const props = defineProps({
topics: { type: Array, required: true }, topics: { type: Array, required: true },
projects: { type: Array, default: () => [] },
isProjectSelected: { type: Boolean, default: false },
selectedTopic: { type: String, default: null }, selectedTopic: { type: String, default: null },
doneByFormat: { type: Object, default: () => ({}) }, doneByFormat: { type: Object, default: () => ({}) },
latestByFormat: { type: Object, default: () => ({}) }, latestByFormat: { type: Object, default: () => ({}) },
@@ -11,7 +13,9 @@ const props = defineProps({
pinned: { type: Boolean, default: true }, pinned: { type: Boolean, default: true },
}) })
const emit = defineEmits(['select', 'create', 'formatClick', 'deleteTopic', 'cancelGuide', 'deleteGuide', 'preview', 'rework', 'showBausteine', 'addBaustein', 'togglePin', 'sidebarLeave', 'openHelp']) const emit = defineEmits(['select', 'create', 'formatClick', 'deleteTopic', 'deleteProject', 'cancelGuide', 'deleteGuide', 'preview', 'rework', 'showBausteine', 'addBaustein', 'togglePin', 'sidebarLeave', 'openHelp'])
const reindex = ref(false)
const quickBausteinTitle = ref('') const quickBausteinTitle = ref('')
@@ -72,9 +76,10 @@ function toggleInput(format) {
function handlePlay(format) { function handlePlay(format) {
const text = activeInput.value === format ? inputText.value.trim() : '' const text = activeInput.value === format ? inputText.value.trim() : ''
emit('formatClick', { format, instructions: text }) emit('formatClick', { format, instructions: text, reindex: props.isProjectSelected && reindex.value })
activeInput.value = null activeInput.value = null
inputText.value = '' inputText.value = ''
reindex.value = false
} }
function handleRefresh(format) { function handleRefresh(format) {
@@ -128,6 +133,11 @@ function confirmDeleteTopic(topic) {
if (!confirm(`Thema "${topic}" und alle zugehörigen Guides löschen?`)) return if (!confirm(`Thema "${topic}" und alle zugehörigen Guides löschen?`)) return
emit('deleteTopic', topic) emit('deleteTopic', topic)
} }
function confirmDeleteProject(name) {
if (!confirm(`Projekt "${name}" entfernen?\n\nAchtung: Der Quellordner ./projects/${name} und der Cache werden gelöscht.`)) return
emit('deleteProject', name)
}
</script> </script>
<template> <template>
@@ -154,6 +164,10 @@ function confirmDeleteTopic(topic) {
<div class="progress-info" v-if="activeGenerations.length"> <div class="progress-info" v-if="activeGenerations.length">
<div v-for="(line, i) in activeGenerations" :key="i">{{ line }}</div> <div v-for="(line, i) in activeGenerations" :key="i">{{ line }}</div>
</div> </div>
<label v-if="isProjectSelected" class="reindex-toggle">
<input type="checkbox" v-model="reindex" />
<span>Projekt neu einlesen</span>
</label>
<div v-for="f in formats" :key="f.key"> <div v-for="f in formats" :key="f.key">
<div :class="['format-row', 'fmt-' + guideStatus(f.key)]"> <div :class="['format-row', 'fmt-' + guideStatus(f.key)]">
<button class="format-name" @click="handleFormatClick(f.key)"> <button class="format-name" @click="handleFormatClick(f.key)">
@@ -223,6 +237,18 @@ function confirmDeleteTopic(topic) {
<span>{{ t }}</span> <span>{{ t }}</span>
<button class="delete-topic" @click.stop="confirmDeleteTopic(t)" title="Löschen">&times;</button> <button class="delete-topic" @click.stop="confirmDeleteTopic(t)" title="Löschen">&times;</button>
</li> </li>
<template v-if="projects.length">
<li class="projects-divider">Projekte</li>
<li
v-for="p in projects"
:key="'project-' + p"
:class="{ active: p === selectedTopic, 'project-item': true }"
@click="emit('select', p)"
>
<span>{{ p }}</span>
<button class="delete-topic" @click.stop="confirmDeleteProject(p)" title="Projekt entfernen">&times;</button>
</li>
</template>
</ul> </ul>
</aside> </aside>
</template> </template>
@@ -348,6 +374,40 @@ function confirmDeleteTopic(topic) {
display: block; display: block;
} }
.projects-divider {
cursor: default;
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: #9ca3af;
font-weight: 700;
padding: 0.6rem 1rem 0.3rem;
margin-top: 0.4rem;
border-top: 1px solid #e2e5e9;
}
.projects-divider:hover {
background: none;
}
.topic-list li.project-item span::before {
content: '📁 ';
}
.reindex-toggle {
display: flex;
align-items: center;
gap: 6px;
padding: 0.4rem 0.75rem;
font-size: 0.8rem;
color: #4b5563;
cursor: pointer;
}
.reindex-toggle input {
cursor: pointer;
}
/* Format section */ /* Format section */
.format-section { .format-section {
flex-shrink: 0; flex-shrink: 0;

4456
projects/aak/Skript.pdf Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=39394fa79aef46ea9947b4f7198d689b
###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ###
DATABASE_URL="mysql://root:password@db:3306/priceservice"
###< doctrine/doctrine-bundle ###
###> symfony/messenger ###
# Choose one of the transports below
# MESSENGER_TRANSPORT_DSN=doctrine://default
# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
###< symfony/messenger ###
###> symfony/mailer ###
MAILER_DSN=null://null
###< symfony/mailer ###
###> symfony/lock ###
# Choose one of the stores below
# postgresql+advisory://db_user:db_password@localhost/db_name
LOCK_DSN=flock
###< symfony/lock ###
###> mitho vars ###
#IP list that are allowed to access the priceservice
MTO_ALLOWED_API_IPS="172.18.0.11,172.18.0.10,172.18.0.3,172.18.0.7,172.18.0.5,172.18.0.6,172.18.0.4,172.18.0.8,172.18.0.9"
MTO_ALLOWED_IMPORT_TRIGGER_IPS="172.18.0.13"
#Endpoint of the orm system for querying the current prices
MTO_ORM_IMPORT_ENDPOINT_URL="https://orm3stage.goldsilbershop.de/api/sw-prices.php"
MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1="https://orm3fallback.goldsilbershop.de/api/sw-prices.php"
MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2="https://orm3fallback.goldsilbershop.de/api/sw-prices.php"
MTO_ORM_IMPORT_USER="mitho"
MTO_ORM_IMPORT_PWD="+sw2014"
#Endpoint of the article management system
MTO_SWAG_API_ENDPOINT_URL="https://gss6.dev.mitho-media.de/api/"
MTO_SWAG_API_USER="admin"
MTO_SWAG_API_PWD="31OCqgsarLMXRGTRGGAcuFTqbPRVrIaDyO7T2skI"
### REDIS vars ###
REDIS_HOST="redis"
REDIS_PORT=6379
REDIS_PASS=""
MESSENGER_TRANSPORT_DSN=redis://redis:6379/messages
REDIS_CACHE_URL=redis://redis:6379

View File

@@ -0,0 +1,40 @@
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=39394fa79aef46ea9947b4f7198d689b
###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ###
DATABASE_URL=mysql://db:db@db:3306/db
###< doctrine/doctrine-bundle ###
###> symfony/mailer ###
MAILER_DSN=null://null
###< symfony/mailer ###
###> symfony/lock ###
# Choose one of the stores below
# postgresql+advisory://db_user:db_password@localhost/db_name
LOCK_DSN=flock
###< symfony/lock ###
###> mitho vars ###
#IP list that are allowed to access the priceservice
# DEV: ddev_default-Subnetz erlauben (Container-IPs wechseln bei restart)
MTO_ALLOWED_API_IPS="172.18.0.0/16"
MTO_ALLOWED_IMPORT_TRIGGER_IPS="172.18.0.0/16"
#Endpoint of the orm system for querying the current prices
MTO_ORM_IMPORT_ENDPOINT_URL="https://orm3stage.goldsilbershop.de/api/sw-prices.php"
MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1="https://orm3fallback.goldsilbershop.de/api/sw-prices.php"
MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2="https://orm3fallback2.goldsilbershop.de/api/sw-prices.php"
MTO_ORM_IMPORT_USER="mitho"
MTO_ORM_IMPORT_PWD="+sw2014"
#Endpoint of the article management system
MTO_SWAG_API_ENDPOINT_URL="https://gss6.ddev.site/api/"
MTO_SWAG_API_USER="admin"
MTO_SWAG_API_PWD="31OCqgsarLMXRGTRGGAcuFTqbPRVrIaDyO7T2skI"
### REDIS vars ###
REDIS_HOST="redis"
REDIS_PORT=6379
REDIS_PASS=""
MESSENGER_TRANSPORT_DSN=redis://redis:6379/messages
REDIS_CACHE_URL=redis://redis:6379

0
projects/priceservice/.gitignore vendored Normal file
View File

View File

@@ -0,0 +1,17 @@
#!/usr/bin/env php
<?php
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
}
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
return function (array $context) {
$kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
return new Application($kernel);
};

View File

@@ -0,0 +1,80 @@
{
"type": "project",
"license": "proprietary",
"minimum-stability": "stable",
"prefer-stable": true,
"require": {
"php": ">=8.1",
"ext-ctype": "*",
"ext-iconv": "*",
"doctrine/doctrine-bundle": "^2.11",
"doctrine/doctrine-migrations-bundle": "^3.3",
"doctrine/orm": "^3.0",
"symfony/console": "6.4.*",
"symfony/dotenv": "6.4.*",
"symfony/flex": "^2",
"symfony/framework-bundle": "6.4.*",
"symfony/http-client": "6.4.*",
"symfony/lock": "6.4.*",
"symfony/messenger": "6.4.*",
"symfony/monolog-bundle": "^3.10",
"symfony/rate-limiter": "6.4.*",
"symfony/redis-messenger": "6.4.*",
"symfony/runtime": "6.4.*",
"symfony/security-bundle": "6.4.*",
"symfony/uid": "6.4.*",
"symfony/yaml": "6.4.*"
},
"config": {
"allow-plugins": {
"php-http/discovery": true,
"symfony/flex": true,
"symfony/runtime": true
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php72": "*",
"symfony/polyfill-php73": "*",
"symfony/polyfill-php74": "*",
"symfony/polyfill-php80": "*",
"symfony/polyfill-php81": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "6.4.*",
"docker": false
}
},
"require-dev": {
"symfony/maker-bundle": "^1.54"
}
}

5697
projects/priceservice/composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
<?php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
];

View File

@@ -0,0 +1,25 @@
parameters:
mitho:
api:
expiredMaxTime: 3600
maxPriceAge: 300
priceListLimit: 2500
cacheExpTime: 300
cacheIsActive: true
cacheNamespaces:
rawData: 'price.data.raw'
rawDataDiffSteps: 'price.data.diffSteps'
rawDataWithArticle: 'price.data.withArticle'
import:
orm:
url: '%env(MTO_ORM_IMPORT_ENDPOINT_URL)%'
urlBckp1: '%env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP1)%'
urlBckp2: '%env(MTO_ORM_IMPORT_ENDPOINT_URL_BACKUP2)%'
user: '%env(MTO_ORM_IMPORT_USER)%'
pwd: '%env(MTO_ORM_IMPORT_PWD)%'
shopIds: [ 1,3,4,8 ]
chunksize: 500
maxPriceAge: 240
maxTimeStampAgeSpan: 360
cashPriceStep: 13

View File

@@ -0,0 +1,6 @@
framework:
cache:
pools:
cache.rate_limiter:
adapter: cache.adapter.redis
provider: '%env(REDIS_CACHE_URL)%'

View File

@@ -0,0 +1,61 @@
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
server_version: '8.0' # oder 'mariadb-10.5' je nach verwendeter DB
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
profiling_collect_backtrace: '%kernel.debug%'
use_savepoints: true
orm:
auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true
report_fields_where_declared: true
validate_xml_mapping: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
controller_resolver:
auto_mapping: false
mappings:
App:
type: attribute
is_bundle: false
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
when@test:
doctrine:
dbal:
dbname_suffix: '_test%env(default::TEST_TOKEN)%'
when@prod:
doctrine:
dbal:
server_version: '8.0' # Prod explizit deklarieren
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
orm:
auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool
result_cache_driver:
type: pool
pool: doctrine.result_cache_pool
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system

View File

@@ -0,0 +1,6 @@
doctrine_migrations:
migrations_paths:
# namespace is arbitrary but should be different from App\Migrations
# as migrations classes should NOT be autoloaded
'DoctrineMigrations': '%kernel.project_dir%/migrations'
enable_profiler: false

View File

@@ -0,0 +1,25 @@
# see https://symfony.com/doc/current/reference/configuration/framework.html
framework:
secret: '%env(APP_SECRET)%'
#csrf_protection: true
annotations: false
http_method_override: false
handle_all_throwables: true
# Enables session support. Note that the session will ONLY be started if you read or write from it.
# Remove or comment this section to explicitly disable session support.
session:
handler_id: null
cookie_secure: auto
cookie_samesite: lax
#esi: true
#fragments: true
php_errors:
log: true
when@test:
framework:
test: true
session:
storage_factory_id: session.storage.factory.mock_file

View File

@@ -0,0 +1,2 @@
framework:
lock: '%env(LOCK_DSN)%'

View File

@@ -0,0 +1,13 @@
framework:
messenger:
default_bus: messenger.bus.default
transports:
async:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
options:
stream: messages
stream_max_entries: 100
retry_strategy:
max_retries: 3
routing:
'App\Message\TriggerPriceImport': async

View File

@@ -0,0 +1,48 @@
monolog:
channels:
- deprecation
handlers:
file_log:
type: rotating_file
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: error
when@dev:
monolog:
handlers:
main:
type: stream
path: '%kernel.logs_dir%/dev.log'
level: debug
channels: ['!event']
deprecation:
type: stream
path: '%kernel.logs_dir%/deprecations.log'
level: info
channels: [deprecation]
stdout:
type: stream
path: php://stdout
level: debug
channels: ['!event']
when@prod:
monolog:
handlers:
file:
type: rotating_file
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: info
channels: ['!event']
formatter: monolog.formatter.line
deprecation:
type: rotating_file
path: '%kernel.logs_dir%/deprecations.log'
level: warning
channels: [deprecation]

View File

@@ -0,0 +1,6 @@
framework:
rate_limiter:
price_import:
policy: fixed_window
limit: 1
interval: '10 seconds'

View File

@@ -0,0 +1,12 @@
framework:
router:
utf8: true
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
#default_uri: http://localhost
when@prod:
framework:
router:
strict_requirements: null

View File

@@ -0,0 +1,15 @@
security:
role_hierarchy:
ROLE_ADMIN: [ ROLE_PRICES, ROLE_USER ]
password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
firewalls:
dev:
main:
access_control:
# api
- { path: ^/api/prices, roles: [ PUBLIC_ACCESS ], ips: '%env(MTO_ALLOWED_API_IPS)%' }
- { path: ^/api/prices, roles: [ ROLE_NO_ACCESS ] }
#- { path: ^/trigger-import, roles: [ PUBLIC_ACCESS ], ips: '%env(MTO_ALLOWED_IMPORT_TRIGGER_IPS)%'}
#- { path: ^/trigger-import, roles: [ ROLE_NO_ACCESS ]}

View File

@@ -0,0 +1,4 @@
framework:
uid:
default_uuid_version: 7
time_based_uuid_version: 7

View File

@@ -0,0 +1,5 @@
<?php
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
}

View File

@@ -0,0 +1,5 @@
controllers:
resource:
path: ../src/Controller/
namespace: App\Controller
type: attribute

View File

@@ -0,0 +1,4 @@
when@dev:
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error

View File

@@ -0,0 +1,3 @@
_security_logout:
resource: security.route_loader.logout
type: service

View File

@@ -0,0 +1,32 @@
# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration
parameters:
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
App\:
resource: '../src/'
exclude:
- '../src/DependencyInjection/'
- '../src/Entity/'
- '../src/Kernel.php'
App\Service\Prices\RedisImportService:
arguments:
$calledShopIds: '%mitho.import.orm.shopIds%'
$cashPriceStep: '%mitho.import.orm.cashPriceStep%'
App\MessageHandler\TriggerPriceImportHandler:
public: true
arguments:
$importService: '@App\Service\Prices\RedisImportService'
tags:
- name: 'messenger.message_handler'
handles: 'App\Message\TriggerPriceImport'

View File

View File

@@ -0,0 +1,9 @@
<?php
use App\Kernel;
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
return function (array $context) {
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};

View File

@@ -0,0 +1,60 @@
<?php
declare(strict_types=1);
namespace App\Command;
use App\Service\Prices\RedisImportService;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\Stopwatch\Stopwatch;
use Throwable;
#[AsCommand(
name: 'mto:prices:import',
description: 'Importiert verschachtelte ORM-Datenstruktur in Redis.'
)]
final class RedisImportCommand extends Command
{
public function __construct(
private readonly RedisImportService $importService,
private readonly LoggerInterface $logger,
private readonly Stopwatch $stopwatch
) {
parent::__construct();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
try {
$this->stopwatch->start('price_import');
$this->importService->writePrices($output);
$event = $this->stopwatch->stop('price_import');
$duration = number_format(($event?->getDuration() ?? 0) / 1000, 2);
$io->success([
'Preisdaten erfolgreich nach Redis importiert.',
"Dauer: {$duration}s"
]);
return Command::SUCCESS;
} catch (Throwable $e) {
$this->logger->error('Redis-Import fehlgeschlagen', [
'message' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
$io->error('Fehler beim Redis-Import: ' . $e->getMessage());
return Command::FAILURE;
}
}
}

View File

@@ -0,0 +1,52 @@
<?php
namespace App\Command;
use App\Service\Prices\RedisReadService;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
#[AsCommand(
name: 'mto:prices:read',
description: 'Liest Preise aus RedisReadService basierend auf Shop, Step und SKUs'
)]
class RedisReadCommand extends Command
{
private RedisReadService $readService;
public function __construct(RedisReadService $readService)
{
parent::__construct();
$this->readService = $readService;
}
protected function configure(): void
{
$this
->addArgument('shopId', InputArgument::REQUIRED, 'Shop ID')
->addArgument('step', InputArgument::REQUIRED, 'Price step')
->addArgument('skus', InputArgument::IS_ARRAY | InputArgument::REQUIRED, 'Liste von SKUs (Leerzeichen-getrennt)')
->addOption('akStep', null, InputOption::VALUE_OPTIONAL, 'Alternative Einkaufspreisstufe')
->addOption('maxPriceAge', null, InputOption::VALUE_OPTIONAL, 'Maximales Alter in Sekunden')
->addOption('noTax', null, InputOption::VALUE_NONE, 'Bruttopreise unterdrücken');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$shopId = (int) $input->getArgument('shopId');
$step = (int) $input->getArgument('step');
$skus = $input->getArgument('skus');
$akStep = $input->getOption('akStep') !== null ? (int) $input->getOption('akStep') : null;
$maxPriceAge = $input->getOption('maxPriceAge') !== null ? (int) $input->getOption('maxPriceAge') : null;
$noTax = $input->getOption('noTax') ?? false;
$data = $this->readService->getPrices($skus, $shopId, $step, $akStep, $maxPriceAge, $noTax);
$output->writeln(json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
return Command::SUCCESS;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Command;
use App\Message\TriggerPriceImport;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Messenger\MessageBusInterface;
#[AsCommand(
name: 'mto:test:trigger-import',
description: 'Dispatches a TriggerPriceImport message for testing'
)]
class TriggerTestCommand extends Command
{
public function __construct(
private readonly MessageBusInterface $bus
) {
parent::__construct();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$timestamp = date('YmdHis');
$output->writeln("Dispatching TriggerPriceImport with timestamp: $timestamp");
$this->bus->dispatch(new TriggerPriceImport($timestamp));
$output->writeln("Message dispatched. Check Redis stream 'messages'.");
return Command::SUCCESS;
}
}

View File

View File

@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
namespace App\Controller\Api;
use App\Service\Prices\RedisReadService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Throwable;
final class PricesController extends AbstractController
{
public function __construct(
private readonly RequestStack $requestStack,
private readonly RedisReadService $readService
) {}
#[Route('/api/prices/{type}', name: 'api_prices_get', methods: ['GET'], utf8: true)]
public function indexGet(string $type = ''): JsonResponse
{
return new JsonResponse([
'status' => Response::HTTP_METHOD_NOT_ALLOWED,
'error' => 'This endpoint only accepts POST requests. Please use POST with a JSON payload.',
], Response::HTTP_METHOD_NOT_ALLOWED);
}
#[Route('/api/prices/{type}', name: 'api_prices_post', methods: ['POST'], utf8: true)]
public function indexPost(string $type = ''): JsonResponse
{
$request = $this->requestStack->getCurrentRequest();
try {
$params = json_decode($request->getContent(), true, 512, JSON_THROW_ON_ERROR);
} catch (Throwable $e) {
return new JsonResponse(['error' => 'Invalid JSON'], Response::HTTP_BAD_REQUEST);
}
return $this->handleRequest($type, $params);
}
private function handleRequest(string $type, array $params): JsonResponse
{
$callType = $type ?: RedisReadService::RAW_DATA;
try {
$result = $this->readService->getPricesForSkus($params, $callType);
return new JsonResponse($result);
} catch (Throwable $e) {
return new JsonResponse(['error' => $e->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
}

View File

@@ -0,0 +1,75 @@
<?php
namespace App\Controller\Trigger;
use App\Message\TriggerPriceImport;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Messenger\Stamp\TransportNamesStamp;
use Symfony\Component\RateLimiter\RateLimiterFactory;
use Symfony\Component\Routing\Annotation\Route;
final class PriceTriggerController extends AbstractController
{
public function __construct(
private readonly MessageBusInterface $bus,
#[Autowire(service: 'limiter.price_import')]
private readonly RateLimiterFactory $priceImportLimiter,
private readonly LoggerInterface $logger
)
{
}
#[Route('/trigger-import', name: 'trigger_import', methods: ['POST'])]
public function trigger(Request $request): JsonResponse
{
$limiter = $this->priceImportLimiter->create('price_import_trigger_limiter');
$limit = $limiter->consume();
if (!$limit->isAccepted()) {
return new JsonResponse([
'status' => 'rate-limited',
'retry_after' => $limit->getRetryAfter()?->getTimestamp() - time(),
], 429);
}
$timestamp = time(); // Default fallback
if ($request->getContent()) {
try {
$payload = json_decode($request->getContent(), true, 512, JSON_THROW_ON_ERROR);
if (is_array($payload) && isset($payload['timestamp']) && is_numeric($payload['timestamp'])) {
$timestamp = (int)$payload['timestamp'];
}
} catch (\JsonException $e) {
$this->logger->warning('Invalid JSON payload in optional body', ['error' => $e->getMessage(), 'payload' => $request->getContent()]);
}
}
try {
$this->bus->dispatch(
new TriggerPriceImport((string)$timestamp),
[new TransportNamesStamp(['async'])]
);
} catch (\Throwable $e) {
$this->logger->error('Dispatch failed', ['exception' => $e]);
return new JsonResponse([
'status' => 'error',
'message' => 'Dispatch failed',
], 500);
}
return new JsonResponse([
'status' => 'queued',
'timestamp' => $timestamp,
]);
}
}

View File

View File

@@ -0,0 +1,49 @@
<?php
namespace App;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
class Kernel extends BaseKernel
{
use MicroKernelTrait;
/**
* @throws \Exception
*/
protected function prepareContainer(ContainerBuilder $container): void
{
$this->addMithoConfig($container);
parent::prepareContainer($container);
}
/**
* @throws \Exception
*/
private function addMithoConfig($container): void
{
$loader = new YamlFileLoader($container, new FileLocator($this->getProjectDir()));
$loader->load('config/mitho/settings.yaml');
$this->flattenParameter('mitho', $container);
}
private function flattenParameter(string $name, ContainerBuilder $container): void
{
$value = $container->getParameter($name);
if (!is_array($value)) {
return;
}
foreach ($value as $key => $innerValue) {
$innerName = $name . '.' . $key;
$container->setParameter($innerName, $innerValue);
$this->flattenParameter($innerName, $container);
}
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Message;
final class SendNotification
{
public function __construct(
public ?string $message = null
) {}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Message;
final class TriggerPriceImport
{
public function __construct(
public ?string $timestamp = null
) {}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\MessageHandler;
use App\Message\TriggerPriceImport;
use App\Service\Prices\RedisImportService;
use Psr\Log\LoggerInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Stopwatch\Stopwatch;
use Throwable;
#[AsMessageHandler]
final readonly class TriggerPriceImportHandler
{
public function __construct(
private RedisImportService $importService,
private LoggerInterface $logger,
private readonly Stopwatch $stopwatch
) {}
public function __invoke(TriggerPriceImport $message): void
{
$ts = $message->timestamp ?? 'undefined';
$this->stopwatch->start('price_import_trigger');
print('[Handler] Start Import with client timestamp: '.$ts."\n");
try {
$this->importService->writePrices();
} catch (Throwable $exception) {
$this->logger->error('[Handler] Import error: ', [
'timestamp' => $ts,
'message' => $exception->getMessage(),
'exception' => $exception,
]);
print('[Handler] Import error: '.$exception->getMessage()."\n");
throw $exception;
}
$event = $this->stopwatch->stop('price_import_trigger');
$duration = number_format(($event?->getDuration() ?? 0) / 1000, 2);
print('[Handler] Import complete with client timestamp: '.$ts."\n");
print('[Handler] Duration: '.$duration." s\n\n");
}
}

View File

View File

@@ -0,0 +1,210 @@
<?php
namespace App\Service\Adapter;
use AllowDynamicProperties;
use App\Kernel;
use DateTimeImmutable;
use Exception;
use Psr\Log\LoggerInterface;
use RuntimeException;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface;
use Symfony\Contracts\HttpClient\Exception\DecodingExceptionInterface;
use Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface;
use Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface;
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Throwable;
#[AllowDynamicProperties] class Orm
{
const SUCCESS_HTTP_STATUS = 200;
const MAX_AGE_PRICE_SECONDS = 240;
const CLIENT_MAX_DURATION_SECONDS = 20;
const CLIENT_TIMEOUT_SECONDS = 10;
/**
* @var ContainerInterface
*/
private ContainerInterface $container;
/**
* The current URL read from the list of possible URLs. including fallback urls
* @var string
*/
private string $currentUrl;
/**
* List of possible URLs including fallback URLs
* @var array
*/
private array $urlList;
/**
* @var string
*/
private string $user;
/**
* @var string
*/
private string $pwd;
/**
* @var HttpClientInterface
*/
private HttpClientInterface $httpClient;
/**
* @var LoggerInterface
*/
private LoggerInterface $logger;
/**
* @var array|string
*/
private array|string $shopIds;
/**
* @param Kernel $kernel
* @param HttpClientInterface $httpClient
* @param LoggerInterface $logger
*/
public function __construct(Kernel $kernel, HttpClientInterface $httpClient, LoggerInterface $logger)
{
$this->container = $kernel->getContainer();
$this->httpClient = $httpClient;
$this->logger = $logger;
}
/**
* @param array $shopIds
* @return array|null
*/
public function call(array $shopIds): ?array
{
$result = null;
$this->shopIds = implode(',', $shopIds);
$this->setConfig();
foreach ($this->urlList as $url) {
$this->currentUrl = $url;
$this->setParams();
try {
$result = $this->runCall();
break;
} catch (Throwable $throwable) {
$this->logger->error("Error in {$url}: " . $throwable->getMessage());
}
}
if ($result === null) {
throw new RuntimeException("All API calls failed. See errors before this message");
}
return $result;
}
/**
* @return void
*/
private function setConfig(): void
{
$url = $this->container->getParameter('mitho.import.orm.url');
$urlBckp1 = $this->container->getParameter('mitho.import.orm.urlBckp1');
$urlBckp2 = $this->container->getParameter('mitho.import.orm.urlBckp2');
$this->user = $this->container->getParameter('mitho.import.orm.user');
$this->pwd = $this->container->getParameter('mitho.import.orm.pwd');
$this->urlList = array_filter([$url, $urlBckp1, $urlBckp2]);
}
/**
* @return void
*/
private function setParams(): void
{
$this->currentUrl = $this->currentUrl . '?shopids=' . $this->shopIds;
}
/**
* @return string[]
*/
private function getHeaders(): array
{
return [
'Authorization: Basic ' . base64_encode($this->user . ':' . $this->pwd),
'User-Agent' => 'MtoPriceService v2'
];
}
/**
* @return int[]
*/
private function getOptions(): array
{
return [
'headers' => $this->getHeaders(),
'timeout' => self::CLIENT_TIMEOUT_SECONDS,
'max_duration' => self::CLIENT_MAX_DURATION_SECONDS,
];
}
/**
* @return array|null
* @throws Exception
*/
private function runCall(): ?array
{
try {
$response = $this->httpClient->request(
'GET',
$this->currentUrl,
$this->getOptions()
);
$statusCode = $response->getStatusCode() ?: 500;
if ($statusCode !== self::SUCCESS_HTTP_STATUS) {
throw new HttpException($statusCode, "Unexpected HTTP status: $statusCode");
}
$responseArray = $response->toArray();
$responseArray = !empty($responseArray) ? $responseArray : throw new RuntimeException('API response is empty, expected valid JSON data.');
//Check the age of data
$this->validateMaxAgeOfData($responseArray);
return $responseArray;
} catch (ClientExceptionInterface|DecodingExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface|TransportExceptionInterface $e) {
throw new HttpException($e->getCode(), 'HTTP Client Error: ' . $e->getMessage(), $e);
} catch (Throwable $e) {
throw new RuntimeException('Unexpected API system error: ' . $e->getMessage(), 0, $e);
}
}
/**
* Check the age of the data and throw an exception if the data is older than the maximum time period
* @param array $responseArray
* @return void
*/
private function validateMaxAgeOfData(array $responseArray): void
{
$lastUpdate = $responseArray['data']['lastupdate'] ?? null;
try {
$dateTime = new DateTimeImmutable($lastUpdate);
} catch (Exception) {
throw new RuntimeException('API response was not accepted at '.date('Y-m-d H:i:s').', because no valid timestamp was found.');
}
$timeSpan = (time() - $dateTime->getTimestamp());
if ($timeSpan > self::MAX_AGE_PRICE_SECONDS) {
throw new RuntimeException('API response was not accepted at '.date('Y-m-d H:i:s').', because the date is out of range. Max age: ' . self::MAX_AGE_PRICE_SECONDS . ' | age of data: ' . $timeSpan);
}
}
}

View File

@@ -0,0 +1,65 @@
<?php
namespace App\Service\Adapter;
use Redis;
use RedisException;
use Throwable;
class RedisClientService
{
private ?Redis $redis = null;
/**
* @throws Throwable
*/
public function get(): Redis
{
if ($this->redis === null) {
$this->redis = $this->withRetry(function () {
$host = $_ENV['REDIS_HOST'];
$port = $_ENV['REDIS_PORT'];
$timeout = 2.0;
$redis = new Redis();
try {
$redis->connect($host, (int)$port, $timeout);
if (!empty($_ENV['REDIS_PASS'])) {
$redis->auth($_ENV['REDIS_PASS']);
}
return $redis;
} catch (\Throwable $e) {
throw $e;
}
});
}
return $this->redis;
}
/**
* Generic retry wrapper with exponential backoff.
* @throws Throwable
*/
private function withRetry(callable $callback, int $maxAttempts = 3, int $baseDelayMs = 100)
{
$attempt = 0;
do {
try {
return $callback();
} catch (Throwable $e) {
$attempt++;
if ($attempt >= $maxAttempts) {
throw $e;
}
$delay = $baseDelayMs * (2 ** ($attempt - 1));
usleep($delay * 1000); // Convert ms to microseconds
}
} while (true);
}
}

View File

@@ -0,0 +1,483 @@
<?php
namespace App\Service\Prices;
use App\Service\Adapter\Orm;
use App\Service\Adapter\RedisClientService;
use Psr\Log\LoggerInterface;
use Random\RandomException;
use Redis;
use RuntimeException;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Stopwatch\Stopwatch;
use Throwable;
class RedisImportService
{
private ?Redis $redis = null;
private const LOCK_TTL = 30;
private const MAX_TTL_PRICE_KEY = 300;
private const MAX_VERSIONS = 2;
public const PRICE_DATA_FEED = 'price_data_feed.json';
private string $priceDataImportDir;
private string $randomFilePrefix;
private ?OutputInterface $consoleOutput = null;
/**
* RedisImportService constructor.
*
* @param RedisClientService $redisClientService The service to manage Redis client connections.
* @param Orm $ormAdapter The ORM adapter to fetch price data.
* @param LoggerInterface $logger The logger for logging messages and errors.
* @param array $calledShopIds The shop IDs to call for fetching data.
* @param int $cashPriceStep The step index for cash prices.
* @param KernelInterface $kernel The kernel interface for accessing project directories.
* @param Stopwatch $stopwatch The stopwatch for measuring execution time.
*/
public function __construct(
private readonly RedisClientService $redisClientService,
private readonly Orm $ormAdapter,
private readonly LoggerInterface $logger,
#[Autowire('%mitho.import.orm.shopIds%')]
private readonly array $calledShopIds,
#[Autowire('%mitho.import.orm.cashPriceStep%')]
private readonly int $cashPriceStep,
private readonly KernelInterface $kernel,
private readonly Stopwatch $stopwatch
)
{
$this->priceDataImportDir = $this->getDir();
}
/**
* Imports prices from ORM and saves them to a JSON file.
*
* This method calls the ORM adapter to fetch price data and saves it to a JSON file
* in the specified directory. It returns true if the import was successful, false otherwise.
*
* @return bool True if the import was successful, false otherwise.
*/
public function importPricesFromOrm(): bool
{
$fileName = $this->getPriceDataFeedPath();
$ormResult = $this->ormAdapter->call($this->calledShopIds);
if ($ormResult) {
file_put_contents($fileName, json_encode($ormResult, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
} else {
return false;
}
return true;
}
/**
* Writes prices to Redis from the imported data.
*
* This method reads the price data from the JSON file created by `importPricesFromOrm()`
* and writes it to Redis, ensuring that the data is properly formatted and stored.
*
* @param OutputInterface|null $output Optional output interface for logging messages.
* @throws RuntimeException|RandomException|Throwable If there is an error during the import process.
*/
public function writePrices(?OutputInterface $output = null): void
{
$updateStartTimestamp = time();
if ($output) {
$this->consoleOutput = $output;
}
//Set global lock to prevent concurrent imports
if (!$this->acquireGlobalLock()) {
throw new RuntimeException('An import is already in progress...');
}
// Check if Redis is available before proceeding
if (!$this->redis()->ping()) {
throw new RuntimeException('Redis is not available');
}
// Create a random file prefix to avoid conflicts
$this->randomFilePrefix = bin2hex(random_bytes(8));
$this->__WCO('Call ORM', 'comment');
//**********************************************************
//* Load data from ORM
//**********************************************************
try {
$this->stopwatch->start('call_orm');
$this->importPricesFromOrm();
$time = $this->stopwatch->stop('call_orm')?->getDuration() / 1000;
$this->__WCO("Time ORM call: {$time}s");
} catch (Throwable $e) {
$this->handleException('Import from ORM failed', $e);
}
//**********************************************************
//* Load data from saved feed with data from ORM
//**********************************************************
try {
$this->__WCO('Start save prices', 'comment');
$this->stopwatch->start('get_price_data_feed');
$payload = $this->getPriceDataFromFeed();
$time = $this->stopwatch->stop('get_price_data_feed')?->getDuration() / 1000;
$this->__WCO("Time load data: {$time}s");
} catch (Throwable $e) {
$this->handleException('Failed to read price data feed', $e);
}
if (!isset($payload['data']['shops']) || !is_array($payload['data']['shops'])) {
throw new RuntimeException('Invalid payload format: "shops" data is missing or not an array.');
}
$timestamp = $payload['data']['real_pricedate'] ?? date('Y-m-d H:i:s');
$unixTimestamp = strtotime($timestamp);
$version = $unixTimestamp;
//**********************************************************
//* Write into redis from payload data from ORM
//**********************************************************
foreach ($payload['data']['shops'] as $shopId => $shopData) {
$shopId = (int)$shopId;
$currentVersion = $this->redis()->get("current_cache_version:$shopId");
//Set shop redis lock
if (!$this->acquireLock($shopId)) {
$this->__WCO("[INFO] Shop $shopId locked skipping import.", 'error');
continue;
}
// Check if the current version matches the version to be imported
if($currentVersion == $version){
$this->logger->info("Version: $version for Shop $shopId already exists, skipping import.");
continue;
}
$watcherName = "write_shop_data_$shopId";
$this->stopwatch->start($watcherName);
try {
$this->importShopData($shopId, $shopData, $version, $timestamp, $unixTimestamp, $updateStartTimestamp);
$this->updateCurrentVersion($shopId, $version);
$this->manageVersionHistory($shopId, $version);
$this->__WCO("[SUCCESS] Imported Shop $shopId (Version $version).", 'fg=white');
} catch (Throwable $e) {
// Don't stop the import for other shops, only log the error
$this->logger->error("Import failed for Shop $shopId: " . $e->getMessage(), ['trace' => $e->getTraceAsString()]);
$this->__WCO("[ERROR] Import failed for Shop $shopId: " . $e->getMessage(), 'error');
} finally {
// Reset lock for the shop
$this->releaseLock($shopId);
$steps = count($shopData['items'][0]['steps'] ?? []);
$savedDataCount = count($shopData['items']) * $steps;
$time = $this->stopwatch->stop($watcherName)?->getDuration() / 1000;
$this->__WCO("Time write data ($savedDataCount keys): {$time}s");
}
}
// Clean up the JSON file after import
if (file_exists($this->getPriceDataFeedPath())) {
unlink($this->getPriceDataFeedPath());
}
$this->releaseGlobalLock();
}
//**********************************************************
//* HELPER METHODS
//**********************************************************
/**
* Logs an informational message to the output interface.
*
* @param string $message The message to log.
* @param string|null $type The type of message (e.g., 'info', 'comment'). Defaults to 'info'.
*/
private function __WCO(string $message, ?string $type = 'info'): void
{
if ($this->consoleOutput instanceof OutputInterface) {
$this->consoleOutput?->writeln("<{$type}>$message</{$type}>");
}
}
/**
* Handles exceptions by logging the error and throwing a RuntimeException.
*
* @param string $context The context in which the exception occurred.
* @param Throwable $e The exception to handle.
* @throws RuntimeException
*/
private function handleException(string $context, Throwable $e): void
{
$this->logger->error("$context: " . $e->getMessage(), ['trace' => $e->getTraceAsString()]);
throw new RuntimeException("$context: " . $e->getMessage(), 0, $e);
}
/**
* Imports shop data into Redis.
*
* This method processes the shop data and writes it to Redis with a specific key format.
* It calculates gross prices based on the net prices and tax rates provided in the data.
*
* @param int $shopId The ID of the shop to import data for.
* @param array $shopData The data for the shop, including items and their prices.
* @param string $version The version of the data being imported.
* @param string $timestamp The timestamp of the data import.
* @param int $unixTimestamp The Unix timestamp of the data import.
* @throws RuntimeException|Throwable If there is an error writing to Redis.
*/
private function importShopData(int $shopId, array $shopData, string $version, string $timestamp, int $unixTimestamp, int $updateStartTimestamp): void
{
$errors = [];
foreach ($shopData['items'] as $item) {
$sku = $item['itemid'];
$taxrate = isset($item['taxrate']) ? ($item['taxrate'] / 100) : 0.0;
$cashPrice = $item['steps'][$this->cashPriceStep]['vk_price'] ?? 0.0;
$updateEndTimestamp = time();
foreach ($item['steps'] as $step => $prices) {
$key = "v{$version}:{$step}:{$shopId}:{$sku}";
$data = [
'sku' => $sku,
'vk_price' => $prices['vk_price'],
'vk_price_gross' => $this->calcGross($prices['vk_price'], $taxrate),
'vk_g_price' => $prices['vk_price_g_net'],
'vk_g_price_gross' => $this->calcGross($prices['vk_price_g_net'], $taxrate),
'ak_price' => $prices['ak_price'],
'ak_price_gross' => $this->calcGross($prices['ak_price'], $taxrate),
'ak_g_price' => $prices['ak_price_g_net'],
'ak_g_price_gross' => $this->calcGross($prices['ak_price_g_net'], $taxrate),
'cash_price' => $cashPrice,
'cash_price_gross' => $this->calcGross($cashPrice, $taxrate),
'taxrate' => $taxrate,
'last_update' => $timestamp,
'timestamp' => $unixTimestamp,
'update_start_timestamp' => $updateStartTimestamp,
'update_end_timestamp' => $updateEndTimestamp
];
// Write to Redis with a key that includes the version, step, shop ID, and SKU
try {
$this->redis()->set($key, json_encode($data), ['NX', 'EX' => self:: MAX_TTL_PRICE_KEY]);
} catch (\RedisException $e) {
$errors [] = "Failed to write Redis key: {$key}. Error: " . $e->getMessage() . "\n";
}
}
}
if ($errors) {
$this->logger->error(implode("", $errors));
}
}
/**
* Returns the directory for price imports.
*
* This method checks if the directory exists and creates it if it does not.
*
* @return string The path to the price imports directory.
* @throws RuntimeException If the directory cannot be created.
*/
private function getDir(): string
{
$dir = $this->kernel->getProjectDir() . '/var/price_imports/';
if (!is_dir($dir)) {
if (!mkdir($dir, 0777, true) && !is_dir($dir)) {
throw new RuntimeException(sprintf('Directory "%s" was not created', $dir));
}
}
return $dir;
}
/**
* Returns the path to the price data feed file.
*
* This method checks if the price data feed file exists and is readable.
* If not, it attempts to create the file.
*
* @return string The path to the price data feed file.
* @throws RuntimeException If the file cannot be created or is not readable.
*/
private function getPriceDataFeedPath(): string
{
$file = $this->priceDataImportDir . '/' . $this->randomFilePrefix . '_' . self::PRICE_DATA_FEED;
if (!is_readable($file)) {
if (!touch($file)) {
$msg = 'Input file not readable';
$this->logger->error($msg, ['path' => $file]);
throw new RuntimeException($msg);
}
}
return $file;
}
/**
* Reads the price data feed from the JSON file.
*
* This method reads the JSON file containing price data and decodes it into an array.
* It throws an exception if the file is not readable or if the JSON format is invalid.
*
* @return array The decoded price data.
* @throws RuntimeException If the file is not readable or contains invalid JSON.
*/
private function getPriceDataFromFeed(): array
{
$file = $this->getPriceDataFeedPath();
$json = file_get_contents($file);
$data = json_decode($json, true);
if (!is_array($data)) {
$msg = 'Invalid JSON format in file';
$this->logger->error($msg, ['path' => $file]);
throw new RuntimeException($msg);
}
return $data;
}
/**
* Calculates the gross price from the net price and tax rate.
*
* @param float $net The net price.
* @param float $taxRate The tax rate as a decimal (e.g., 0.19 for 19%).
* @return float The calculated gross price, rounded to two decimal places.
*/
private function calcGross(float $net, float $taxRate): float
{
return round($net * (1 + $taxRate), 2);
}
/**
* Acquires a global lock to prevent concurrent imports.
*
* @return bool True if the lock was acquired, false if it was already held.
* @throws Throwable
*/
private function acquireGlobalLock(): bool
{
return $this->redis()->set('lock:import:global', time(), ['NX', 'EX' => self::LOCK_TTL]);
}
/**
* Releases the global lock after import is complete.
*
* @return void
* @throws Throwable
*/
private function releaseGlobalLock(): void
{
$this->redis()->del('lock:import:global');
}
/**
* Acquires a lock for a specific shop to prevent concurrent imports.
*
* @param int $shopId The ID of the shop to lock.
* @return bool True if the lock was acquired, false if it was already held.
* @throws RuntimeException If there is an error acquiring the lock.
*/
private function acquireLock(int $shopId): bool
{
try {
return $this->redis()->set("lock:$shopId", time(), ['NX', 'EX' => self::LOCK_TTL]);
} catch (Throwable $e) {
throw new RuntimeException("Redis lock error for shop $shopId: {$e->getMessage()}");
}
}
/**
* Releases the lock for a specific shop.
*
* @param int $shopId The ID of the shop to release the lock for.
* @return void
*/
private function releaseLock(int $shopId): void
{
try {
$this->redis()->del("lock:$shopId");
} catch (Throwable $e) {
$this->logger->warning("[WARN] Failed to release lock for Shop $shopId: {$e->getMessage()}");
}
}
/**
* Updates the current cache version for a specific shop.
*
* @param int $shopId The ID of the shop.
* @param string $version The new version to set.
* @throws RuntimeException|Throwable If there is an error updating the version.
*/
private function updateCurrentVersion(int $shopId, string $version): void
{
if (!$this->redis()->set("current_cache_version:$shopId", $version)) {
//Don't stop the import if one shop key fails, just only log the error
$this->logger->error("Failed to update current version for Shop {$shopId}: {$version}");
}
}
/**
* Manages the version history for a specific shop, keeping only the latest versions.
*
* @param int $shopId The ID of the shop.
* @param string $newVersion The new version to add to the history.
* @throws Throwable
*/
private function manageVersionHistory(int $shopId, string $newVersion): void
{
$versionListKey = "price_versions:$shopId";
$this->redis()->lPush($versionListKey, $newVersion);
$allVersions = $this->redis()->lRange($versionListKey, 0, -1);
$this->redis()->lTrim($versionListKey, 0, self::MAX_VERSIONS - 1);
$versionsToDelete = array_slice($allVersions, self::MAX_VERSIONS);
foreach ($versionsToDelete as $oldVersion) {
$this->deleteVersionKeys($oldVersion, $shopId);
}
}
/**
* Deletes all keys associated with a specific version for a shop.
*
* @param string $version The version to delete.
* @param int $shopId The ID of the shop.
* @throws Throwable
*/
private function deleteVersionKeys(string $version, int $shopId): void
{
$pattern = "v{$version}:*:$shopId:*";
$cursor = null;
do {
$batch = $this->redis()->scan($cursor, $pattern, 500);
if ($batch) {
$this->redis()->del(...$batch);
}
} while ($cursor !== 0);
}
/**
* Returns the Redis client instance.
*
* This method initializes the Redis client if it has not been created yet.
*
* @return Redis The Redis client instance.
* @throws Throwable
*/
private function redis(): Redis
{
if ($this->redis === null) {
$this->redis = $this->redisClientService->get();
}
return $this->redis;
}
}

View File

@@ -0,0 +1,200 @@
<?php
namespace App\Service\Prices;
use App\Service\Adapter\RedisClientService;
use Redis;
class RedisReadService
{
private ?Redis $redis = null;
public const RAW_DATA = 'RAW_DATA';
public const RAW_DATA_DIFF_STEPS = 'RAW_DATA_DIFF_STEPS';
public const RAW_DATA_WITH_ARTICLE = 'RAW_DATA_WITH_ARTICLE';
public function __construct(private readonly RedisClientService $redisClientService)
{
//$this->redis = $clientService->get();
}
/**
* Retrieves prices for the given SKUs based on the current parameters and call type.
*
* @param array $currentParams The current parameters including SKU, shop ID, step, AK step, max price age, and no tax flag.
* @param string $currentCallType The type of call being made (e.g., RAW_DATA, RAW_DATA_DIFF_STEPS).
* @return array An associative array containing the success status, message, data, total count, and validity of MTO prices.
*/
public function getPricesForSkus(array $currentParams, string $currentCallType): array
{
$skus = $currentParams['sku'];
$shopId = $currentParams['shop'];
$step = $currentParams['step'];
$akStep = $currentParams['ak_step'];
$maxPriceAge = $currentParams['maxPriceAge'];
$noTax = $currentParams['noTax'] ?? false;
$this->validateCallType($currentCallType);
return $this->getPrices($skus, $shopId, $step, $akStep, $maxPriceAge, $noTax);
}
private function validateCallType(string $callType): void
{
$validCallTypes = [
self::RAW_DATA,
self::RAW_DATA_DIFF_STEPS,
self::RAW_DATA_WITH_ARTICLE
];
if (!in_array($callType, $validCallTypes, true)) {
throw new \InvalidArgumentException("Invalid call type: $callType");
}
}
/**
* Retrieves prices for the given SKUs from Redis.
*
* @param array $skus List of SKUs to retrieve prices for.
* @param int $shopId The ID of the shop.
* @param int $step The price step to retrieve.
* @param int|null $akStep Optional AK step to retrieve.
* @param int|null $maxPriceAge Optional maximum age of the price data in seconds.
* @param bool $noTax Whether to exclude tax information from the result.
* @return array An associative array containing the success status, message, data, total count, and validity of MTO prices.
*/
public function getPrices(array $skus, int $shopId, int $step, ?int $akStep = null, ?int $maxPriceAge = null, bool $noTax = false): array
{
$microNow = microtime(true);
$version = $this->redis()->get("current_cache_version:$shopId");
if (!$version) {
return [
'success' => false,
'message' => 'No active version found for shop',
'data' => [],
'total' => 0,
'MTO-PRICES-VALID' => false,
'showTax' => $noTax
];
}
$result = [];
$mto_price_valid = true;
$now = time();
$chunkSize = 100;
// Preisdaten in Chunks laden
$priceDataAll = [];
foreach (array_chunk($skus, $chunkSize) as $chunk) {
if (!is_array($chunk)) continue;
$keys = array_map(fn($sku) => "v{$version}:{$step}:{$shopId}:{$sku}", $chunk);
$priceDataAll = array_merge($priceDataAll, $this->redis()->mget($keys));
}
// Optional: AK-Daten in Chunks laden
$akDataAll = [];
if ($akStep !== null) {
foreach (array_chunk($skus, $chunkSize) as $chunk) {
if (!is_array($chunk)) continue;
$akKeys = array_map(fn($sku) => "v{$version}:{$akStep}:{$shopId}:{$sku}", $chunk);
$akDataAll = array_merge($akDataAll, $this->redis()->mget($akKeys));
}
}
foreach ($skus as $index => $sku) {
$entry = $priceDataAll[$index] ? json_decode($priceDataAll[$index], true) : null;
if (!$entry) {
continue;
}
$ak = $akDataAll[$index] ?? null;
if ($ak && is_string($ak)) {
$ak = json_decode($ak, true);
}
$unit = str_starts_with($sku, 'BR-') ? 'Karat' : 'Gramm';
$is_disabled = false;
if ($maxPriceAge !== null && ($now - $entry['timestamp']) > $maxPriceAge) {
$mto_price_valid = false;
$is_disabled = true;
}
if (!$entry['vk_price']) {
$mto_price_valid = false;
$is_disabled = true;
}
$result[$sku] = [
'subshopId' => $shopId,
'sku' => $sku,
'step' => $step,
'price_net' => $entry['vk_price'],
'price_num' => $entry['vk_price_gross'] ?? null,
'price_currency' => $this->formatCurrency($entry['vk_price_gross'] ?? 0.0),
'ref_price_net' => $entry['vk_g_price'],
'ref_price_num' => $entry['vk_g_price_gross'],
'ref_price_currency' => '(' . $this->formatCurrency($entry['vk_g_price_gross']) . ' / 1 ' . $unit . ')',
'ref_price_currency_raw' => $this->formatCurrency($entry['vk_g_price_gross']),
'ak_step' => $akStep ?? $step,
'ak_price_net' => $ak['ak_price'] ?? $entry['ak_price'],
'ak_price_num' => $ak['ak_price'] ?? $entry['ak_price'],
'ak_price_currency' => $this->formatCurrency($ak['ak_price'] ?? $entry['ak_price'] ?? 0.00),
'cash_price_net' => $entry['cash_price'],
'cash_price_num' => $entry['cash_price_gross'] ?? 0.0,
'cash_price_currency' => $this->formatCurrency($entry['cash_price_gross'] ?? 0.0),
'is_disabled' => $is_disabled,
'taxrate' => round($entry['taxrate'] * 100),
'version' => $version,
'last_update' => date('d.m.Y H:i:s', strtotime($entry['last_update'])),
'timestamp' => $entry['timestamp'],
'timestampAsDate' => date('d.m.Y H:i:s', $entry['timestamp']),
'updateStartTimestamp' => date('d.m.Y H:i:s', $entry['update_start_timestamp']),
'updateEndTimestamp' => date('d.m.Y H:i:s', $entry['update_end_timestamp']),
];
}
$timeGap = (microtime(true) - $microNow) * 1000;
return [
'success' => true,
'total' => count($result),
'version' => $version,
'MTO-PRICES-VALID' => $mto_price_valid,
'timeGap' => round($timeGap, 2) . ' ms',
'data' => $result,
'showTax' => $noTax
];
}
/**
* Formats a float value as a currency string.
*
* @param float $value The value to format.
* @return string The formatted currency string.
*/
private function formatCurrency(float $value): string
{
return number_format($value, 2, ',', '.') . ' €';
}
/**
* Returns the Redis client instance.
*
* @return Redis
*/
private function redis(): Redis
{
if ($this->redis === null) {
$this->redis = $this->redisClientService->get();
}
return $this->redis;
}
}

View File

@@ -0,0 +1,164 @@
{
"doctrine/deprecations": {
"version": "1.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.0",
"ref": "87424683adc81d7dc305eefec1fced883084aab9"
}
},
"doctrine/doctrine-bundle": {
"version": "2.11",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "2.10",
"ref": "c170ded8fc587d6bd670550c43dafcf093762245"
},
"files": [
"config/packages/doctrine.yaml",
"src/Entity/.gitignore",
"src/Repository/.gitignore"
]
},
"doctrine/doctrine-migrations-bundle": {
"version": "3.3",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "3.1",
"ref": "1d01ec03c6ecbd67c3375c5478c9a423ae5d6a33"
},
"files": [
"config/packages/doctrine_migrations.yaml",
"migrations/.gitignore"
]
},
"symfony/console": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.3",
"ref": "da0c8be8157600ad34f10ff0c9cc91232522e047"
},
"files": [
"bin/console"
]
},
"symfony/flex": {
"version": "2.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.0",
"ref": "146251ae39e06a95be0fe3d13c807bcf3938b172"
},
"files": [
".env"
]
},
"symfony/framework-bundle": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.4",
"ref": "a91c965766ad3ff2ae15981801643330eb42b6a5"
},
"files": [
"config/packages/cache.yaml",
"config/packages/framework.yaml",
"config/preload.php",
"config/routes/framework.yaml",
"config/services.yaml",
"public/index.php",
"src/Controller/.gitignore",
"src/Kernel.php"
]
},
"symfony/lock": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "5.2",
"ref": "8e937ff2b4735d110af1770f242c1107fdab4c8e"
},
"files": [
"config/packages/lock.yaml"
]
},
"symfony/maker-bundle": {
"version": "1.54",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.0",
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
}
},
"symfony/messenger": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.0",
"ref": "ba1ac4e919baba5644d31b57a3284d6ba12d52ee"
},
"files": [
"config/packages/messenger.yaml"
]
},
"symfony/monolog-bundle": {
"version": "3.10",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "3.7",
"ref": "aff23899c4440dd995907613c1dd709b6f59503f"
},
"files": [
"config/packages/monolog.yaml"
]
},
"symfony/routing": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.2",
"ref": "e0a11b4ccb8c9e70b574ff5ad3dfdcd41dec5aa6"
},
"files": [
"config/packages/routing.yaml",
"config/routes.yaml"
]
},
"symfony/security-bundle": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.4",
"ref": "2ae08430db28c8eb4476605894296c82a642028f"
},
"files": [
"config/packages/security.yaml",
"config/routes/security.yaml"
]
},
"symfony/uid": {
"version": "6.4",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "6.2",
"ref": "d294ad4add3e15d7eb1bae0221588ca89b38e558"
},
"files": [
"config/packages/uid.yaml"
]
}
}

View File

@@ -0,0 +1,22 @@
<?php
// This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
if (\class_exists(\ContainerJu8t4eN\App_KernelDevDebugContainer::class, false)) {
// no-op
} elseif (!include __DIR__.'/ContainerJu8t4eN/App_KernelDevDebugContainer.php') {
touch(__DIR__.'/ContainerJu8t4eN.legacy');
return;
}
if (!\class_exists(App_KernelDevDebugContainer::class, false)) {
\class_alias(\ContainerJu8t4eN\App_KernelDevDebugContainer::class, App_KernelDevDebugContainer::class, false);
}
return new \ContainerJu8t4eN\App_KernelDevDebugContainer([
'container.build_hash' => 'Ju8t4eN',
'container.build_id' => '0c77a90f',
'container.build_time' => 1780489561,
'container.runtime_mode' => \in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? 'web=0' : 'web=1',
], __DIR__.\DIRECTORY_SEPARATOR.'ContainerJu8t4eN');

View File

@@ -0,0 +1,335 @@
<?php
// This file has been auto-generated by the Symfony Dependency Injection Component
// You can reference it in the "opcache.preload" php.ini setting on PHP >= 7.4 when preloading is desired
use Symfony\Component\DependencyInjection\Dumper\Preloader;
if (in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
return;
}
require dirname(__DIR__, 3).'/vendor/autoload.php';
(require __DIR__.'/App_KernelDevDebugContainer.php')->set(\ContainerJu8t4eN\App_KernelDevDebugContainer::class, null);
require __DIR__.'/ContainerJu8t4eN/EntityManagerGhostEbeb667.php';
require __DIR__.'/ContainerJu8t4eN/RequestPayloadValueResolverGhost3590451.php';
require __DIR__.'/ContainerJu8t4eN/getSession_Handler_NativeService.php';
require __DIR__.'/ContainerJu8t4eN/getSession_FactoryService.php';
require __DIR__.'/ContainerJu8t4eN/getServicesResetterService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_RouteLoader_LogoutService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_PasswordHasherFactoryService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Logout_Listener_CsrfTokenClearingService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_UserChecker_MainService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_UserChecker_DevService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_Session_MainService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_Session_DevService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_PasswordMigratingService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_CsrfProtectionService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Listener_CheckAuthenticatorCredentialsService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_HttpUtilsService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_MainService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Firewall_Map_Context_DevService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Csrf_TokenStorageService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Csrf_TokenManagerService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_ChannelListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_Authentication_SessionStrategyService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_AccessMapService.php';
require __DIR__.'/ContainerJu8t4eN/getSecurity_AccessListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getSecrets_VaultService.php';
require __DIR__.'/ContainerJu8t4eN/getRouting_LoaderService.php';
require __DIR__.'/ContainerJu8t4eN/getMonolog_Logger_MessengerService.php';
require __DIR__.'/ContainerJu8t4eN/getMonolog_Logger_DeprecationService.php';
require __DIR__.'/ContainerJu8t4eN/getMonolog_Logger_CacheService.php';
require __DIR__.'/ContainerJu8t4eN/getMonolog_Handler_DeprecationService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Transport_Sync_FactoryService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Transport_AsyncService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_RoutableMessageBusService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Retry_SendFailedMessageForRetryListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Retry_MultiplierRetryStrategy_AsyncService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Listener_StopWorkerOnRestartSignalListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_DefaultBusService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_TraceableService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_SendMessageService.php';
require __DIR__.'/ContainerJu8t4eN/getMessenger_Bus_Default_Middleware_HandleMessageService.php';
require __DIR__.'/ContainerJu8t4eN/getHttpClient_UriTemplateService.php';
require __DIR__.'/ContainerJu8t4eN/getHttpClient_TransportService.php';
require __DIR__.'/ContainerJu8t4eN/getErrorControllerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_UuidGeneratorService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_UlidGeneratorService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Messenger_EventSubscriber_DoctrineClearEntityManagerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_PdoSessionHandlerSchemaListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_LockStoreSchemaListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineTokenProviderSchemaListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_Listeners_DoctrineDbalCacheAdapterSchemaListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_DefaultListeners_AttachEntityListenersService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_DefaultEntityManagerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Orm_DefaultConfigurationService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnection_EventManagerService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrine_Dbal_DefaultConnectionService.php';
require __DIR__.'/ContainerJu8t4eN/getDoctrineService.php';
require __DIR__.'/ContainerJu8t4eN/getDebug_Security_Voter_VoteListenerService.php';
require __DIR__.'/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_MainService.php';
require __DIR__.'/ContainerJu8t4eN/getDebug_Security_Firewall_Authenticator_DevService.php';
require __DIR__.'/ContainerJu8t4eN/getDebug_ErrorHandlerConfiguratorService.php';
require __DIR__.'/ContainerJu8t4eN/getContainer_GetRoutingConditionServiceService.php';
require __DIR__.'/ContainerJu8t4eN/getContainer_EnvVarProcessorsLocatorService.php';
require __DIR__.'/ContainerJu8t4eN/getContainer_EnvVarProcessorService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_SystemClearerService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_SystemService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_SecurityIsGrantedAttributeExpressionLanguageService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_RateLimiterService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_Messenger_RestartWorkersSignalService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_GlobalClearerService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_AppClearerService.php';
require __DIR__.'/ContainerJu8t4eN/getCache_AppService.php';
require __DIR__.'/ContainerJu8t4eN/getTemplateControllerService.php';
require __DIR__.'/ContainerJu8t4eN/getRedirectControllerService.php';
require __DIR__.'/ContainerJu8t4eN/getRedisReadServiceService.php';
require __DIR__.'/ContainerJu8t4eN/getRedisImportServiceService.php';
require __DIR__.'/ContainerJu8t4eN/getTriggerPriceImportHandlerService.php';
require __DIR__.'/ContainerJu8t4eN/getPriceTriggerControllerService.php';
require __DIR__.'/ContainerJu8t4eN/getPricesControllerService.php';
require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_Y4Zrx_Service.php';
require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_O2p6Lk7Service.php';
require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_HBdvAhpService.php';
require __DIR__.'/ContainerJu8t4eN/get_ServiceLocator_B4dyivWService.php';
require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_P4QvabmService.php';
require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_KEzMhfsService.php';
require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_QXXNQ9dService.php';
require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_F4AMIZdService.php';
require __DIR__.'/ContainerJu8t4eN/get_Messenger_HandlerDescriptor_6kVvRT_Service.php';
require __DIR__.'/ContainerJu8t4eN/get_Lock_Default_Store_TTEhGTService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_Security_UserValueResolverService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_Security_SecurityTokenValueResolverService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_Doctrine_Orm_EntityValueResolverService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_VariadicService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_UidService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_SessionService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_ServiceService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestPayloadService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestAttributeService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_RequestService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_QueryParameterValueResolverService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_NotTaggedControllerService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DefaultService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_DatetimeService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_ValueResolver_ArgumentResolver_BackedEnumResolverService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_RoleHierarchyVoterService.php';
require __DIR__.'/ContainerJu8t4eN/get_Debug_Security_Voter_Security_Access_AuthenticatedVoterService.php';
$classes = [];
$classes[] = 'Symfony\Bundle\FrameworkBundle\FrameworkBundle';
$classes[] = 'Symfony\Bundle\SecurityBundle\SecurityBundle';
$classes[] = 'Symfony\Bundle\MakerBundle\MakerBundle';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\DoctrineBundle';
$classes[] = 'Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle';
$classes[] = 'Symfony\Bundle\MonologBundle\MonologBundle';
$classes[] = 'Symfony\Component\Security\Core\Authorization\Voter\TraceableVoter';
$classes[] = 'Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter';
$classes[] = 'Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter';
$classes[] = 'Symfony\Component\Security\Core\Role\RoleHierarchy';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\BackedEnumValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\DateTimeValueResolver';
$classes[] = 'Symfony\Component\Clock\Clock';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\NotTaggedControllerValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\QueryParameterValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\UidValueResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver';
$classes[] = 'Symfony\Bridge\Doctrine\ArgumentResolver\EntityValueResolver';
$classes[] = 'Symfony\Bridge\Doctrine\Attribute\MapEntity';
$classes[] = 'Symfony\Component\Security\Http\Controller\SecurityTokenValueResolver';
$classes[] = 'Symfony\Component\Security\Http\Controller\UserValueResolver';
$classes[] = 'Symfony\Component\Lock\PersistingStoreInterface';
$classes[] = 'Symfony\Component\Lock\Store\StoreFactory';
$classes[] = 'Symfony\Component\Messenger\Handler\HandlerDescriptor';
$classes[] = 'Symfony\Component\HttpClient\Messenger\PingWebhookMessageHandler';
$classes[] = 'Symfony\Component\Process\Messenger\RunProcessMessageHandler';
$classes[] = 'Symfony\Component\Console\Messenger\RunCommandMessageHandler';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Console\Application';
$classes[] = 'Symfony\Component\Messenger\Handler\RedispatchMessageHandler';
$classes[] = 'Symfony\Component\DependencyInjection\ServiceLocator';
$classes[] = 'App\Controller\Api\PricesController';
$classes[] = 'App\Controller\Trigger\PriceTriggerController';
$classes[] = 'Symfony\Component\RateLimiter\RateLimiterFactory';
$classes[] = 'Symfony\Component\RateLimiter\Storage\CacheStorage';
$classes[] = 'Symfony\Component\Lock\LockFactory';
$classes[] = 'Monolog\Logger';
$classes[] = 'App\MessageHandler\TriggerPriceImportHandler';
$classes[] = 'App\Service\Adapter\RedisClientService';
$classes[] = 'App\Service\Prices\RedisImportService';
$classes[] = 'App\Service\Adapter\Orm';
$classes[] = 'App\Service\Prices\RedisReadService';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Controller\TemplateController';
$classes[] = 'Symfony\Component\Cache\Adapter\FilesystemAdapter';
$classes[] = 'Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer';
$classes[] = 'Symfony\Component\Cache\Marshaller\DefaultMarshaller';
$classes[] = 'Symfony\Component\Cache\Adapter\ArrayAdapter';
$classes[] = 'Symfony\Component\Cache\Adapter\RedisAdapter';
$classes[] = 'Symfony\Component\Cache\Adapter\AbstractAdapter';
$classes[] = 'Symfony\Component\Cache\Adapter\AdapterInterface';
$classes[] = 'Symfony\Component\Config\Resource\SelfCheckingResourceChecker';
$classes[] = 'Symfony\Component\DependencyInjection\EnvVarProcessor';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\CacheAttributeListener';
$classes[] = 'Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\DebugHandlersListener';
$classes[] = 'Symfony\Component\HttpKernel\Debug\ErrorHandlerConfigurator';
$classes[] = 'Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter';
$classes[] = 'Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager';
$classes[] = 'Symfony\Component\Security\Core\Authorization\AccessDecisionManager';
$classes[] = 'Symfony\Component\Security\Core\Authorization\Strategy\AffirmativeStrategy';
$classes[] = 'Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher';
$classes[] = 'Symfony\Component\EventDispatcher\EventDispatcher';
$classes[] = 'Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener';
$classes[] = 'Symfony\Bundle\SecurityBundle\Security\FirewallMap';
$classes[] = 'Symfony\Component\Security\Http\Logout\LogoutUrlGenerator';
$classes[] = 'Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener';
$classes[] = 'Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener';
$classes[] = 'Symfony\Component\Security\Http\Authentication\AuthenticatorManager';
$classes[] = 'Symfony\Bundle\SecurityBundle\EventListener\VoteListener';
$classes[] = 'Symfony\Component\Stopwatch\Stopwatch';
$classes[] = 'Symfony\Component\DependencyInjection\Config\ContainerParametersResourceChecker';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\Registry';
$classes[] = 'Doctrine\DBAL\Connection';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\ConnectionFactory';
$classes[] = 'Doctrine\DBAL\Configuration';
$classes[] = 'Doctrine\DBAL\Schema\DefaultSchemaManagerFactory';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\Dbal\SchemaAssetsFilterManager';
$classes[] = 'Doctrine\DBAL\Logging\Middleware';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\Middleware\DebugMiddleware';
$classes[] = 'Doctrine\DBAL\Tools\DsnParser';
$classes[] = 'Symfony\Bridge\Doctrine\ContainerAwareEventManager';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\Middleware\BacktraceDebugDataHolder';
$classes[] = 'Doctrine\ORM\Mapping\Driver\AttributeDriver';
$classes[] = 'Doctrine\ORM\Configuration';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\Mapping\MappingDriver';
$classes[] = 'Doctrine\Persistence\Mapping\Driver\MappingDriverChain';
$classes[] = 'Doctrine\ORM\Mapping\UnderscoreNamingStrategy';
$classes[] = 'Doctrine\ORM\Mapping\DefaultQuoteStrategy';
$classes[] = 'Doctrine\ORM\Mapping\DefaultTypedFieldMapper';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\Mapping\ContainerEntityListenerResolver';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\Repository\ContainerRepositoryFactory';
$classes[] = 'Doctrine\ORM\Proxy\Autoloader';
$classes[] = 'Doctrine\ORM\EntityManager';
$classes[] = 'Doctrine\ORM\Tools\AttachEntityListenersListener';
$classes[] = 'Doctrine\Bundle\DoctrineBundle\ManagerConfigurator';
$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaListener';
$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\RememberMeTokenProviderDoctrineSchemaListener';
$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\LockStoreSchemaListener';
$classes[] = 'Symfony\Bridge\Doctrine\SchemaListener\PdoSessionHandlerSchemaListener';
$classes[] = 'Symfony\Bridge\Doctrine\Messenger\DoctrineClearEntityManagerWorkerSubscriber';
$classes[] = 'Symfony\Bridge\Doctrine\IdGenerator\UlidGenerator';
$classes[] = 'Symfony\Component\Uid\Factory\UlidFactory';
$classes[] = 'Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator';
$classes[] = 'Symfony\Component\Uid\Factory\UuidFactory';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ErrorController';
$classes[] = 'Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer';
$classes[] = 'Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\ErrorListener';
$classes[] = 'Symfony\Contracts\HttpClient\HttpClientInterface';
$classes[] = 'Symfony\Component\HttpClient\HttpClient';
$classes[] = 'Symfony\Component\HttpClient\UriTemplateHttpClient';
$classes[] = 'Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner';
$classes[] = 'Symfony\Component\Runtime\Runner\Symfony\ResponseRunner';
$classes[] = 'Symfony\Component\Runtime\SymfonyRuntime';
$classes[] = 'Symfony\Component\HttpKernel\HttpKernel';
$classes[] = 'Symfony\Component\HttpKernel\Controller\TraceableControllerResolver';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\TraceableArgumentResolver';
$classes[] = 'Symfony\Component\HttpKernel\Controller\ArgumentResolver';
$classes[] = 'Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory';
$classes[] = 'App\Kernel';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\LocaleListener';
$classes[] = 'Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware';
$classes[] = 'Symfony\Component\Messenger\Middleware\HandleMessageMiddleware';
$classes[] = 'Symfony\Component\Messenger\Handler\HandlersLocator';
$classes[] = 'Symfony\Component\Messenger\Middleware\SendMessageMiddleware';
$classes[] = 'Symfony\Component\Messenger\Transport\Sender\SendersLocator';
$classes[] = 'Symfony\Component\Messenger\Middleware\TraceableMiddleware';
$classes[] = 'Symfony\Component\Messenger\MessageBus';
$classes[] = 'Symfony\Component\Messenger\EventListener\AddErrorDetailsStampListener';
$classes[] = 'Symfony\Component\Messenger\EventListener\DispatchPcntlSignalListener';
$classes[] = 'Symfony\Component\Messenger\EventListener\StopWorkerOnRestartSignalListener';
$classes[] = 'Symfony\Component\Messenger\EventListener\StopWorkerOnCustomStopExceptionListener';
$classes[] = 'Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware';
$classes[] = 'Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware';
$classes[] = 'Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware';
$classes[] = 'Symfony\Component\Messenger\Retry\MultiplierRetryStrategy';
$classes[] = 'Symfony\Component\Messenger\EventListener\SendFailedMessageForRetryListener';
$classes[] = 'Symfony\Component\Messenger\RoutableMessageBus';
$classes[] = 'Symfony\Component\Messenger\Transport\TransportInterface';
$classes[] = 'Symfony\Component\Messenger\Transport\TransportFactory';
$classes[] = 'Symfony\Component\Messenger\Transport\Serialization\PhpSerializer';
$classes[] = 'Symfony\Component\Messenger\Transport\InMemory\InMemoryTransportFactory';
$classes[] = 'Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory';
$classes[] = 'Symfony\Component\Messenger\Transport\Sync\SyncTransportFactory';
$classes[] = 'Monolog\Handler\StreamHandler';
$classes[] = 'Monolog\Handler\RotatingFileHandler';
$classes[] = 'Monolog\Processor\PsrLogMessageProcessor';
$classes[] = 'Symfony\Component\DependencyInjection\ParameterBag\ContainerBag';
$classes[] = 'Symfony\Component\HttpFoundation\RequestStack';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\ResponseListener';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Routing\Router';
$classes[] = 'Symfony\Component\Config\ResourceCheckerConfigCacheFactory';
$classes[] = 'Symfony\Component\Routing\RequestContext';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\RouterListener';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader';
$classes[] = 'Symfony\Component\Config\Loader\LoaderResolver';
$classes[] = 'Symfony\Component\Routing\Loader\XmlFileLoader';
$classes[] = 'Symfony\Component\HttpKernel\Config\FileLocator';
$classes[] = 'Symfony\Component\Routing\Loader\YamlFileLoader';
$classes[] = 'Symfony\Component\Routing\Loader\PhpFileLoader';
$classes[] = 'Symfony\Component\Routing\Loader\GlobFileLoader';
$classes[] = 'Symfony\Component\Routing\Loader\DirectoryLoader';
$classes[] = 'Symfony\Component\Routing\Loader\ContainerLoader';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Routing\AttributeRouteControllerLoader';
$classes[] = 'Symfony\Component\Routing\Loader\AttributeDirectoryLoader';
$classes[] = 'Symfony\Component\Routing\Loader\AttributeFileLoader';
$classes[] = 'Symfony\Component\Routing\Loader\Psr4DirectoryLoader';
$classes[] = 'Symfony\Bundle\FrameworkBundle\Secrets\SodiumVault';
$classes[] = 'Symfony\Component\String\LazyString';
$classes[] = 'Symfony\Component\Security\Http\Firewall\AccessListener';
$classes[] = 'Symfony\Component\Security\Http\AccessMap';
$classes[] = 'Symfony\Component\HttpFoundation\ChainRequestMatcher';
$classes[] = 'Symfony\Component\HttpFoundation\RequestMatcher\PathRequestMatcher';
$classes[] = 'Symfony\Component\HttpFoundation\RequestMatcher\IpsRequestMatcher';
$classes[] = 'Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy';
$classes[] = 'Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver';
$classes[] = 'Symfony\Component\Security\Core\Authorization\AuthorizationChecker';
$classes[] = 'Symfony\Component\Security\Http\Firewall\ChannelListener';
$classes[] = 'Symfony\Component\Security\Http\Firewall\ContextListener';
$classes[] = 'Symfony\Component\Security\Csrf\CsrfTokenManager';
$classes[] = 'Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator';
$classes[] = 'Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage';
$classes[] = 'Symfony\Bundle\SecurityBundle\Security\FirewallContext';
$classes[] = 'Symfony\Component\Security\Http\Firewall\ExceptionListener';
$classes[] = 'Symfony\Bundle\SecurityBundle\Security\FirewallConfig';
$classes[] = 'Symfony\Component\Security\Http\HttpUtils';
$classes[] = 'Symfony\Component\Security\Http\EventListener\CheckCredentialsListener';
$classes[] = 'Symfony\Component\Security\Http\EventListener\CsrfProtectionListener';
$classes[] = 'Symfony\Component\Security\Http\EventListener\PasswordMigratingListener';
$classes[] = 'Symfony\Component\Security\Http\EventListener\SessionStrategyListener';
$classes[] = 'Symfony\Component\Security\Http\EventListener\UserCheckerListener';
$classes[] = 'Symfony\Component\Security\Http\EventListener\CsrfTokenClearingLogoutListener';
$classes[] = 'Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory';
$classes[] = 'Symfony\Bundle\SecurityBundle\Routing\LogoutRouteLoader';
$classes[] = 'Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage';
$classes[] = 'Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage';
$classes[] = 'Symfony\Component\Security\Core\User\InMemoryUserChecker';
$classes[] = 'Symfony\Component\DependencyInjection\ContainerInterface';
$classes[] = 'Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter';
$classes[] = 'Symfony\Component\HttpFoundation\Session\SessionFactory';
$classes[] = 'Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorageFactory';
$classes[] = 'Symfony\Component\HttpFoundation\Session\Storage\MetadataBag';
$classes[] = 'Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandler';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\SessionListener';
$classes[] = 'Symfony\Component\HttpKernel\EventListener\ValidateRequestListener';
$preloaded = Preloader::preload($classes);

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,645 @@
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisImportCommand" (parent: .abstract.instanceof.App\Command\RedisImportCommand).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Command\RedisImportCommand" (parent: .instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisImportCommand).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisReadCommand" (parent: .abstract.instanceof.App\Command\RedisReadCommand).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Command\RedisReadCommand" (parent: .instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisReadCommand).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\TriggerTestCommand" (parent: .abstract.instanceof.App\Command\TriggerTestCommand).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Command\TriggerTestCommand" (parent: .instanceof.Symfony\Component\Console\Command\Command.0.App\Command\TriggerTestCommand).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Api\PricesController" (parent: .abstract.instanceof.App\Controller\Api\PricesController).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Api\PricesController" (parent: .instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Api\PricesController).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Controller\Api\PricesController" (parent: .instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Api\PricesController).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Trigger\PriceTriggerController" (parent: .abstract.instanceof.App\Controller\Trigger\PriceTriggerController).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Trigger\PriceTriggerController" (parent: .instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Trigger\PriceTriggerController).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\Controller\Trigger\PriceTriggerController" (parent: .instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Trigger\PriceTriggerController).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for ".instanceof.App\MessageHandler\TriggerPriceImportHandler.0.App\MessageHandler\TriggerPriceImportHandler" (parent: .abstract.instanceof.App\MessageHandler\TriggerPriceImportHandler).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "App\MessageHandler\TriggerPriceImportHandler" (parent: .instanceof.App\MessageHandler\TriggerPriceImportHandler.0.App\MessageHandler\TriggerPriceImportHandler).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.app" (parent: cache.adapter.filesystem).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.system" (parent: cache.adapter.system).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.validator" (parent: cache.system).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.serializer" (parent: cache.system).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.annotations" (parent: cache.system).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.property_info" (parent: cache.system).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.messenger.restart_workers_signal" (parent: cache.app).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.system_clearer" (parent: cache.default_clearer).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.global_clearer" (parent: cache.default_clearer).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "secrets.decryption_key" (parent: container.env).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "lock.default.factory" (parent: lock.factory.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.rate_limiter" (parent: cache.adapter.redis).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "limiter.price_import" (parent: limiter).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.retry.multiplier_retry_strategy.async" (parent: messenger.retry.abstract_multiplier_retry_strategy).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.security_expression_language" (parent: cache.system).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "cache.security_is_granted_attribute_expression_language" (parent: cache.system).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.access_token_handler.oidc.signature.ES256" (parent: security.access_token_handler.oidc.signature).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.access_token_handler.oidc.signature.ES384" (parent: security.access_token_handler.oidc.signature).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.access_token_handler.oidc.signature.ES512" (parent: security.access_token_handler.oidc.signature).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.config.dev" (parent: security.firewall.config).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.context_listener.0" (parent: security.context_listener).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.session.dev" (parent: security.listener.session).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.authenticator.manager.dev" (parent: security.authenticator.manager).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.authenticator.dev" (parent: security.firewall.authenticator).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.user_checker.dev" (parent: security.listener.user_checker).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.exception_listener.dev" (parent: security.exception_listener).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.context.dev" (parent: security.firewall.context).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.config.main" (parent: security.firewall.config).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.context_listener.1" (parent: security.context_listener).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.session.main" (parent: security.listener.session).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.authenticator.manager.main" (parent: security.authenticator.manager).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.authenticator.main" (parent: security.firewall.authenticator).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.listener.user_checker.main" (parent: security.listener.user_checker).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.exception_listener.main" (parent: security.exception_listener).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "security.firewall.map.context.main" (parent: security.firewall.context).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_connection.configuration" (parent: doctrine.dbal.connection.configuration).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_connection.event_manager" (parent: doctrine.dbal.connection.event_manager).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_connection" (parent: doctrine.dbal.connection).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.orm.default_configuration" (parent: doctrine.orm.configuration).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.orm.default_manager_configurator" (parent: doctrine.orm.manager_configurator.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.orm.default_entity_manager" (parent: doctrine.orm.entity_manager.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_auth" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_command" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_twig_component" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_controller" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_crud" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_docker_database" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_entity" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_fixtures" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_form" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_listener" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_message" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_messenger_middleware" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_registration_form" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_reset_password" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_schedule" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_serializer_encoder" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_serializer_normalizer" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_twig_extension" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_test" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_validator" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_voter" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_user" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_migration" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_stimulus_controller" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_security_form_login" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_security_custom" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "maker.auto_command.make_webhook" (parent: maker.auto_command.abstract).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.traceable" (parent: messenger.middleware.traceable).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.add_bus_name_stamp_middleware" (parent: messenger.middleware.add_bus_name_stamp_middleware).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.send_message" (parent: messenger.middleware.send_message).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "messenger.bus.default.middleware.handle_message" (parent: messenger.middleware.handle_message).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.default_schema_asset_filter_manager" (parent: doctrine.dbal.schema_asset_filter_manager).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.logging_middleware.default" (parent: doctrine.dbal.logging_middleware).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "doctrine.dbal.debug_middleware.default" (parent: doctrine.dbal.debug_middleware).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.request" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.console" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.messenger" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.cache" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.http_client" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.php" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.event" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.router" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.lock" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.security" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.doctrine" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\ResolveChildDefinitionsPass: Resolving inheritance for "monolog.logger.deprecation" (parent: monolog.logger_prototype).
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\EventDispatcher\EventDispatcherInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\EventDispatcher\EventDispatcherInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\EventDispatcher\EventDispatcherInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\HttpKernelInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpFoundation\RequestStack"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\HttpCache\StoreInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpFoundation\UrlHelper"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\KernelInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Filesystem\Filesystem"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\Config\FileLocator"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpFoundation\UriSigner"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\UriSigner"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\DependencyInjection\ReverseContainer"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\String\Slugger\SluggerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Clock\ClockInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Clock\ClockInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\HttpKernel\Fragment\FragmentUriGeneratorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "error_renderer.html"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "error_renderer"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Psr\Container\ContainerInterface $parameter_bag"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Container\ContainerInterface $parameterBag"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Cache\CacheItemPoolInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\CacheInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\TagAwareCacheInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\HttpClient\HttpClientInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Stopwatch\Stopwatch"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "routing.loader.annotation"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "routing.loader.annotation.directory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "routing.loader.annotation.file"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\RouterInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\Generator\UrlGeneratorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\Matcher\UrlMatcherInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\RequestContextAwareInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Routing\RequestContext"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyAccess\PropertyAccessorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyAccessExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyDescriptionExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyInfoExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyListExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyInitializableExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "lock.factory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Lock\LockFactory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Symfony\Component\RateLimiter\RateLimiterFactory $price_import.limiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\RateLimiter\RateLimiterFactory $priceImportLimiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\UlidFactory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\UuidFactory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\NameBasedUuidFactory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\RandomBasedUuidFactory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Uid\Factory\TimeBasedUuidFactory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "cache.default_redis_provider"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "cache.default_memcached_provider"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "cache.default_doctrine_dbal_provider"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Symfony\Contracts\Cache\TagAwareCacheInterface $cache.rate_limiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\TagAwareCacheInterface $cacheRateLimiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Symfony\Contracts\Cache\CacheInterface $cache.rate_limiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Contracts\Cache\CacheInterface $cacheRateLimiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Psr\Cache\CacheItemPoolInterface $cache.rate_limiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Cache\CacheItemPoolInterface $cacheRateLimiter"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "SessionHandlerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "session.storage.factory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "session.handler"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Csrf\TokenGenerator\TokenGeneratorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Csrf\TokenStorage\TokenStorageInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Csrf\CsrfTokenManagerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Messenger\Transport\Serialization\SerializerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "messenger.default_serializer"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "messenger.listener.stop_worker_on_sigterm_signal_listener"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Messenger\MessageBusInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Bundle\SecurityBundle\Security"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Security"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Authentication\AuthenticationUtils"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\Role\RoleHierarchyInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Firewall"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\FirewallMapInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\HttpUtils"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.password_hasher"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.authentication.session_strategy.dev"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.user_checker.dev"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.authentication.session_strategy.main"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.user_checker.main"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall.context_locator"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Symfony\Component\Security\Core\User\UserCheckerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\DBAL\Connection"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\Persistence\ManagerRegistry"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\Common\Persistence\ManagerRegistry"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.dbal.event_manager"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Doctrine\DBAL\Connection $default.connection"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\DBAL\Connection $defaultConnection"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\ORM\EntityManagerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_metadata_cache"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_result_cache"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_query_cache"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Doctrine\ORM\EntityManagerInterface $default.entity_manager"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Doctrine\ORM\EntityManagerInterface $defaultEntityManager"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_entity_manager.event_manager"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.migrations.metadata_storage"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "logger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "argument_resolver.controller_locator"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.id_generator_locator"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $requestLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $consoleLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $messengerLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $cacheLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".Psr\Log\LoggerInterface $http_clientLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $httpClientLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $phpLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $eventLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $routerLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $lockLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $securityLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $doctrineLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "Psr\Log\LoggerInterface $deprecationLogger"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.6DxUFLS"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.27KOu4H"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.bJ.4HC5"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.L.EDYUC"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.LMuqDDe"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.jUv.zyj"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "http_client"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "controller_resolver"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "argument_resolver"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.access.decision_manager"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall.authenticator.dev"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.firewall.authenticator.main"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.migrations.migrations_factory"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_metadata_driver"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.event_dispatcher.dev"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.event_dispatcher.main"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.gFlme_s"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.jxnIR8C"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator.iUxT8yA"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator._kIAbz1"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service ".service_locator..Fs8Kd7"; reason: private alias.
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "App\Command\TriggerTestCommand" previously pointing to "messenger.bus.default" to "messenger.default_bus".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "App\Controller\Trigger\PriceTriggerController" previously pointing to "messenger.bus.default" to "messenger.default_bus".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "locale_listener" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "http_kernel" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "url_helper" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "services_resetter" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "fragment.renderer.inline" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "console.command.messenger_consume_messages" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "console.command.router_debug" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "console.command.router_match" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "router_listener" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "Symfony\Bundle\FrameworkBundle\Controller\RedirectController" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.middleware.send_message" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.middleware.router_context" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.retry.send_failed_message_for_retry_listener" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.routable_message_bus" previously pointing to "messenger.bus.default" to "messenger.default_bus".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.redispatch_message_handler" previously pointing to "messenger.bus.default" to "messenger.default_bus".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.logout_url_generator" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.http_utils" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.context_listener" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.listener.abstract" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.switchuser_listener" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.switchuser_listener" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authenticator.manager" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "debug.security.firewall" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "maker.event_registry" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "maker.maker.make_registration_form" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "maker.maker.make_reset_password" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "messenger.bus.default.middleware.send_message" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.5cAhUFF" previously pointing to "messenger.bus.default" to "messenger.default_bus".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".debug.security.voter.security.access.authenticated_voter" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".debug.security.voter.security.access.role_hierarchy_voter" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.O2p6Lk7" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.cUcW89y" previously pointing to "router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service ".service_locator.sPNPNE7" previously pointing to "debug.event_dispatcher" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "App\Entity"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "container.env"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\Config\Loader\LoaderInterface"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\HttpFoundation\Request"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\HttpFoundation\Response"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "Symfony\Component\HttpFoundation\Session\SessionInterface"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.system"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.apcu"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.filesystem"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.psr6"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.redis"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.redis_tag_aware"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.memcached"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.doctrine_dbal"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.pdo"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "cache.adapter.array"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "http_client.abstract_retry_strategy"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "lock.store.combined.abstract"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "lock.factory.abstract"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "limiter"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.send_message"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.handle_message"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.add_bus_name_stamp_middleware"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.traceable"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.retry.abstract_multiplier_retry_strategy"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.context"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.lazy_context"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.config"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.missing"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.ldap"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.chain"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout_listener"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.session"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.clear_site_data"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.cookie_clearing"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.listener.default"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.abstract"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_success_handler"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.success_handler"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.custom_failure_handler"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.failure_handler"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.exception_listener"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.switchuser_listener"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.manager"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.authenticator"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.user_provider.abstract"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.user_checker"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.session"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.listener.login_throttling"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.http_basic"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.form_login"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.json_login"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.x509"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.remote_user"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.access_token"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authenticator.access_token.chain_extractor"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc_user_info.http_client"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc_user_info"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc.jwk"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.access_token_handler.oidc.signature"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "maker.auto_command.abstract"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.event_manager"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.connection.configuration"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.schema_asset_filter_manager"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.logging_middleware"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.dbal.debug_middleware"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_transaction"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_ping_connection"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_close_connection"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "messenger.middleware.doctrine_open_transaction_logger"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.configuration"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.entity_manager.abstract"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.manager_configurator.abstract"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "doctrine.orm.security.user.provider"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.logger_prototype"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.activation_strategy.not_found"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.handler.fingers_crossed.error_level_activation_strategy"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisImportCommand"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Command\RedisImportCommand"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\RedisReadCommand"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Command\RedisReadCommand"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Component\Console\Command\Command.0.App\Command\TriggerTestCommand"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Command\TriggerTestCommand"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Api\PricesController"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Api\PricesController"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Controller\Api\PricesController"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Contracts\Service\ServiceSubscriberInterface.0.App\Controller\Trigger\PriceTriggerController"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.Symfony\Bundle\FrameworkBundle\Controller\AbstractController.0.App\Controller\Trigger\PriceTriggerController"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\Controller\Trigger\PriceTriggerController"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".instanceof.App\MessageHandler\TriggerPriceImportHandler.0.App\MessageHandler\TriggerPriceImportHandler"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service ".abstract.instanceof.App\MessageHandler\TriggerPriceImportHandler"; reason: abstract.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "App\Message\SendNotification"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "App\Message\TriggerPriceImport"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_cache"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_cache.store"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "url_helper"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "uri_signer"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "reverse_container"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "slugger"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "fragment.handler"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "fragment.uri_generator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "fragment.renderer.inline"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.validator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.serializer"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.annotations"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.property_info"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_client.uri_template_expander.guzzle"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "http_client.uri_template_expander.rize"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "debug.log_processor"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "debug.debug_logger_configurator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "property_accessor"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "property_info"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "property_info.reflection_extractor"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "lock.strategy.majority"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "name_based_uuid.factory"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "random_based_uuid.factory"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "time_based_uuid.factory"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".cache_connection.GD_MSZC"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".cache_connection.JKE6keX"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.property_access"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.storage.factory.php_bridge"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.storage.factory.mock_file"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.handler.native_file"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.abstract_handler"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.marshaller"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.runtime.security_csrf"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.symfony_serializer"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.middleware.validation"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.middleware.router_context"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.amqp.factory"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.sqs.factory"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.transport.beanstalkd.factory"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "messenger.listener.stop_worker_signals_listener"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.helper"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.session_strategy_noop"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker_locator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication_utils"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.impersonate_url_generator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.validator.user_password"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache.security_expression_language"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_password_hasher"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.firewall.event_dispatcher_locator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authenticator.managers_locator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_authenticator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_extractor.header"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_extractor.query_string"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_extractor.request_body"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_handler.oidc.signature.ES256"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_handler.oidc.signature.ES384"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_token_handler.oidc.signature.ES512"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.security"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker.chain.dev"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker.chain.main"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.php_compat_util"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.maker.make_functional_test"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.maker.make_subscriber"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "maker.maker.make_unit_test"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "data_collector.doctrine"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.twig.doctrine_extension"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.well_known_schema_asset_filter"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.connection_expiries"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".1_ServiceLocator~BsiXTm7"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.type_guesser.doctrine"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.type.entity"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.validator.unique"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.validator_initializer"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.listeners.resolve_target_entity"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.default"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.naming_strategy.underscore"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.quote_strategy.ansi"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_entity_manager.property_info_extractor"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.migrations.connection_loader"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.migrations.em_loader"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.migrations.connection_registry_loader"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.chrome_php"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.gelf_message"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.html"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.json"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.line"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.loggly"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.normalizer"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.scalar"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.wildfire"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.formatter.logstash"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.http_client"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".service_locator.lLv4pWF"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.ldap_locator"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "monolog.handler.null_internal"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".service_locator.XXv1IfR"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service ".service_locator.e_.xxAP"; reason: unused.
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.O2p6Lk7.App\Controller\Api\PricesController" to "App\Controller\Api\PricesController".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "limiter.price_import" to "App\Controller\Trigger\PriceTriggerController".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.O2p6Lk7.App\Controller\Trigger\PriceTriggerController" to "App\Controller\Trigger\PriceTriggerController".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "App\Service\Adapter\Orm" to "App\Service\Prices\RedisImportService".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "clock" to "argument_resolver.datetime".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "error_handler.error_renderer.html" to "error_controller".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.controller_resolver" to "http_kernel".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.argument_resolver" to "http_kernel".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.console" to "console.error_listener".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "cache_clearer" to "console.command.cache_clear".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.XnSA3F0" to "console.command.cache_pool_invalidate_tags".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.listener.reset_services" to "console.command.messenger_consume_messages".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "console.messenger.application" to "console.messenger.execute_command_handler".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.http_client" to "http_client.transport".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "http_client.uri_template.inner" to "http_client.uri_template".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.php" to "debug.error_handler_configurator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.controller_resolver.inner" to "debug.controller_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.argument_resolver.inner" to "debug.argument_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.xml" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.yml" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.php" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.glob" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.directory" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.container" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute.directory" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute.file" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.psr4" to "routing.resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.LD5oJC8" to "routing.loader.container".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.resolver" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.cUcW89y.router.cache_warmer" to "router.cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "secrets.decryption_key" to "secrets.vault".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "container.getenv" to "secrets.decryption_key".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.lock" to "lock.default.factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".cache_connection.IuJY3Yv" to "cache.rate_limiter".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "limiter.storage.price_import" to "limiter.price_import".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "lock.default.factory" to "limiter.price_import".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "session.storage.factory.native" to "session.factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.TpoC7U9" to "session_listener".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.csrf.token_generator" to "security.csrf.token_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.retry_strategy_locator" to "messenger.retry.send_failed_message_for_retry_listener".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.5cAhUFF" to "messenger.routable_message_bus".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.transport.native_php_serializer" to "messenger.transport.async".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.transport_factory" to "messenger.transport.async".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.LcVn9Hr" to "security.token_storage".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.role_hierarchy" to "security.access.role_hierarchy_voter".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.RKxp8he" to "security.access_map".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.lSKjE8t" to "security.access_map".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.access.decision_manager.inner" to "debug.security.access.decision_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map" to "debug.security.firewall".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout_url_generator" to "debug.security.firewall".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.firewall.authenticator.dev.inner" to "debug.security.firewall.authenticator.dev".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.exception_listener.dev" to "security.firewall.map.context.dev".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map.config.dev" to "security.firewall.map.context.dev".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.firewall.authenticator.main.inner" to "debug.security.firewall.authenticator.main".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.exception_listener.main" to "security.firewall.map.context.main".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map.config.main" to "security.firewall.map.context.main".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.FFUBg3B" to ".security.request_matcher.RKxp8he".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.autoloader_util" to "maker.file_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.autoloader_finder" to "maker.autoloader_util".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.template_component_generator" to "maker.generator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.event_registry" to "maker.maker.make_listener".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.user_class_builder" to "maker.maker.make_user".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.connection_factory.dsn_parser" to "doctrine.dbal.connection_factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_schema_manager_factory" to "doctrine.dbal.default_connection.configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_schema_asset_filter_manager" to "doctrine.dbal.default_connection.configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.logging_middleware.default" to "doctrine.dbal.default_connection.configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.debug_middleware.default" to "doctrine.dbal.default_connection.configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.VHsrTPK" to "doctrine.dbal.default_connection.event_manager".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.configuration" to "doctrine.dbal.default_connection".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.connection_factory" to "doctrine.dbal.default_connection".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "ulid.factory" to "doctrine.ulid_generator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "uuid.factory" to "doctrine.uuid_generator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "cache.doctrine.orm.default.metadata" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".doctrine.orm.default_metadata_driver" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.naming_strategy.underscore_number_aware" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.quote_strategy.default" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.typed_field_mapper.default" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_entity_listener_resolver" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.container_repository_factory" to "doctrine.orm.default_configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.configuration_loader" to "doctrine.migrations.dependency_factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.entity_manager_registry_loader" to "doctrine.migrations.dependency_factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.configuration" to "doctrine.migrations.configuration_loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.storage.table_storage" to "doctrine.migrations.configuration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.migrations.container_aware_migrations_factory.inner" to "doctrine.migrations.container_aware_migrations_factory".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_authenticator" to "maker.auto_command.make_auth".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_command" to "maker.auto_command.make_command".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_twig_component" to "maker.auto_command.make_twig_component".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_controller" to "maker.auto_command.make_controller".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_crud" to "maker.auto_command.make_crud".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_docker_database" to "maker.auto_command.make_docker_database".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_entity" to "maker.auto_command.make_entity".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_fixtures" to "maker.auto_command.make_fixtures".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_form" to "maker.auto_command.make_form".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_listener" to "maker.auto_command.make_listener".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_message" to "maker.auto_command.make_message".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_messenger_middleware" to "maker.auto_command.make_messenger_middleware".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_registration_form" to "maker.auto_command.make_registration_form".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_reset_password" to "maker.auto_command.make_reset_password".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_schedule" to "maker.auto_command.make_schedule".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_serializer_encoder" to "maker.auto_command.make_serializer_encoder".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_serializer_normalizer" to "maker.auto_command.make_serializer_normalizer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_twig_extension" to "maker.auto_command.make_twig_extension".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_test" to "maker.auto_command.make_test".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_validator" to "maker.auto_command.make_validator".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_voter" to "maker.auto_command.make_voter".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_user" to "maker.auto_command.make_user".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_migration" to "maker.auto_command.make_migration".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_stimulus_controller" to "maker.auto_command.make_stimulus_controller".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_form_login" to "maker.auto_command.make_security_form_login".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_custom_authenticator" to "maker.auto_command.make_security_custom".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "maker.maker.make_webhook" to "maker.auto_command.make_webhook".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user_value_resolver" to ".debug.value_resolver.security.user_value_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.security_token_value_resolver" to ".debug.value_resolver.security.security_token_value_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.entity_value_resolver" to ".debug.value_resolver.doctrine.orm.entity_value_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.backed_enum_resolver" to ".debug.value_resolver.argument_resolver.backed_enum_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.uid" to ".debug.value_resolver.argument_resolver.uid".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.datetime" to ".debug.value_resolver.argument_resolver.datetime".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.request_attribute" to ".debug.value_resolver.argument_resolver.request_attribute".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.request" to ".debug.value_resolver.argument_resolver.request".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.session" to ".debug.value_resolver.argument_resolver.session".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.service" to ".debug.value_resolver.argument_resolver.service".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.default" to ".debug.value_resolver.argument_resolver.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.variadic" to ".debug.value_resolver.argument_resolver.variadic".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.not_tagged_controller" to ".debug.value_resolver.argument_resolver.not_tagged_controller".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_resolver.query_parameter_value_resolver" to ".debug.value_resolver.argument_resolver.query_parameter_value_resolver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.senders_locator" to "messenger.bus.default.middleware.send_message".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.bus.default.messenger.handlers_locator" to "messenger.bus.default.middleware.handle_message".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "process.messenger.process_message_handler" to ".messenger.handler_descriptor.QXXNQ9d".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "console.messenger.execute_command_handler" to ".messenger.handler_descriptor.kEzMhfs".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "http_client.messenger.ping_webhook_handler" to ".messenger.handler_descriptor.6kVvRT.".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "messenger.redispatch_message_handler" to ".messenger.handler_descriptor.p4Qvabm".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.authenticated_voter" to ".debug.security.voter.security.access.authenticated_voter".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.role_hierarchy_voter" to ".debug.security.voter.security.access.role_hierarchy_voter".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".doctrine.orm.default_metadata_driver.inner" to ".doctrine.orm.default_metadata_driver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.KLVvNIq" to ".doctrine.orm.default_metadata_driver".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.doctrine" to "doctrine.dbal.logging_middleware.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.event_dispatcher.dev.inner" to "debug.security.event_dispatcher.dev".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.security.event_dispatcher.main.inner" to "debug.security.event_dispatcher.main".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.EMavxuq" to ".service_locator.EMavxuq.router.default".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.cUcW89y" to ".service_locator.cUcW89y.router.cache_warmer".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "argument_metadata_factory" to "debug.argument_resolver.inner".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.gHpsvM5" to "debug.argument_resolver.inner".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authenticator.manager.dev" to "debug.security.firewall.authenticator.dev.inner".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authenticator.manager.main" to "debug.security.firewall.authenticator.main.inner".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.fTO7dT0" to "console.command_loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".service_locator.EMavxuq.router.default" to "router".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.router" to "router".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "config_cache_factory" to "router".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "debug.event_dispatcher.inner" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "monolog.logger.event" to "event_dispatcher".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.attribute" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "file_locator" to "routing.loader".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.tcCj4Pw" to "security.access_map".
Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service ".security.request_matcher.tcCj4Pw" to "security.access_map".
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass: Tag "container.error" was defined on service(s) "argument_resolver.request_payload", but was never used. Did you mean "container.preload", "container.decorator", "container.stack"?
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass: Tag "container.decorator" was defined on service(s) "http_client.uri_template", "debug.security.access.decision_manager", "debug.security.firewall.authenticator.dev", "debug.security.firewall.authenticator.main", "doctrine.migrations.container_aware_migrations_factory", "debug.security.event_dispatcher.dev", "debug.security.event_dispatcher.main", "event_dispatcher", but was never used. Did you mean "container.error"?

View File

@@ -0,0 +1 @@
a:0:{}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
<?php
namespace ContainerGfxmI0x;
include_once \dirname(__DIR__, 4).'/vendor/doctrine/persistence/src/Persistence/ObjectManager.php';
include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/EntityManagerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/src/EntityManager.php';
class EntityManagerGhostEbeb667 extends \Doctrine\ORM\EntityManager implements \Symfony\Component\VarExporter\LazyObjectInterface
{
use \Symfony\Component\VarExporter\LazyGhostTrait;
private const LAZY_OBJECT_PROPERTY_SCOPES = [
"\0".parent::class."\0".'cache' => [parent::class, 'cache', null, 16],
"\0".parent::class."\0".'closed' => [parent::class, 'closed', null, 16],
"\0".parent::class."\0".'config' => [parent::class, 'config', null, 16],
"\0".parent::class."\0".'conn' => [parent::class, 'conn', null, 16],
"\0".parent::class."\0".'eventManager' => [parent::class, 'eventManager', null, 16],
"\0".parent::class."\0".'expressionBuilder' => [parent::class, 'expressionBuilder', null, 16],
"\0".parent::class."\0".'filterCollection' => [parent::class, 'filterCollection', null, 16],
"\0".parent::class."\0".'metadataFactory' => [parent::class, 'metadataFactory', null, 16],
"\0".parent::class."\0".'proxyFactory' => [parent::class, 'proxyFactory', null, 16],
"\0".parent::class."\0".'repositoryFactory' => [parent::class, 'repositoryFactory', null, 16],
"\0".parent::class."\0".'unitOfWork' => [parent::class, 'unitOfWork', null, 16],
'cache' => [parent::class, 'cache', null, 16],
'closed' => [parent::class, 'closed', null, 16],
'config' => [parent::class, 'config', null, 16],
'conn' => [parent::class, 'conn', null, 16],
'eventManager' => [parent::class, 'eventManager', null, 16],
'expressionBuilder' => [parent::class, 'expressionBuilder', null, 16],
'filterCollection' => [parent::class, 'filterCollection', null, 16],
'metadataFactory' => [parent::class, 'metadataFactory', null, 16],
'proxyFactory' => [parent::class, 'proxyFactory', null, 16],
'repositoryFactory' => [parent::class, 'repositoryFactory', null, 16],
'unitOfWork' => [parent::class, 'unitOfWork', null, 16],
];
}
// Help opcache.preload discover always-needed symbols
class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
if (!\class_exists('EntityManagerGhostEbeb667', false)) {
\class_alias(__NAMESPACE__.'\\EntityManagerGhostEbeb667', 'EntityManagerGhostEbeb667', false);
}

View File

@@ -0,0 +1,28 @@
<?php
namespace ContainerGfxmI0x;
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ValueResolverInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php';
class RequestPayloadValueResolverGhost3590451 extends \Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestPayloadValueResolver implements \Symfony\Component\VarExporter\LazyObjectInterface
{
use \Symfony\Component\VarExporter\LazyGhostTrait;
private const LAZY_OBJECT_PROPERTY_SCOPES = [
"\0".parent::class."\0".'serializer' => [parent::class, 'serializer', null, 530],
"\0".parent::class."\0".'translator' => [parent::class, 'translator', null, 530],
"\0".parent::class."\0".'validator' => [parent::class, 'validator', null, 530],
'serializer' => [parent::class, 'serializer', null, 530],
'translator' => [parent::class, 'translator', null, 530],
'validator' => [parent::class, 'validator', null, 530],
];
}
// Help opcache.preload discover always-needed symbols
class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class);
class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class);
class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class);
if (!\class_exists('RequestPayloadValueResolverGhost3590451', false)) {
\class_alias(__NAMESPACE__.'\\RequestPayloadValueResolverGhost3590451', 'RequestPayloadValueResolverGhost3590451', false);
}

View File

@@ -0,0 +1,30 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCacheWarmerService extends App_KernelDevDebugContainer
{
/**
* Gets the public 'cache_warmer' shared service.
*
* @return \Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php';
return $container->services['cache_warmer'] = new \Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate(new RewindableGenerator(function () use ($container) {
yield 0 => ($container->privates['config_builder.warmer'] ?? $container->load('getConfigBuilder_WarmerService'));
yield 1 => ($container->privates['router.cache_warmer'] ?? $container->load('getRouter_CacheWarmerService'));
yield 2 => ($container->privates['doctrine.orm.proxy_cache_warmer'] ?? $container->load('getDoctrine_Orm_ProxyCacheWarmerService'));
}, 3), true, ($container->targetDir.''.'/App_KernelDevDebugContainerDeprecations.log'));
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_AppClearerService extends App_KernelDevDebugContainer
{
/**
* Gets the public 'cache.app_clearer' shared service.
*
* @return \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php';
return $container->services['cache.app_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')), 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService'))]);
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_AppService extends App_KernelDevDebugContainer
{
/**
* Gets the public 'cache.app' shared service.
*
* @return \Symfony\Component\Cache\Adapter\FilesystemAdapter
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/psr/cache/src/CacheItemPoolInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/ResettableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/AbstractAdapterTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/ContractsTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AbstractAdapter.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/PruneableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/FilesystemCommonTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/FilesystemTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/FilesystemAdapter.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Marshaller/MarshallerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Marshaller/DefaultMarshaller.php';
$container->services['cache.app'] = $instance = new \Symfony\Component\Cache\Adapter\FilesystemAdapter('3ch+vfAnYd', 0, ($container->targetDir.''.'/pools/app'), ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true)));
$instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService')));
return $instance;
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_App_TaggableService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'cache.app.taggable' shared service.
*
* @return \Symfony\Component\Cache\Adapter\TagAwareAdapter
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/psr/cache/src/CacheItemPoolInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/TagAwareCacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/PruneableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/ResettableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/ContractsTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/TagAwareAdapter.php';
return $container->privates['cache.app.taggable'] = new \Symfony\Component\Cache\Adapter\TagAwareAdapter(($container->services['cache.app'] ?? $container->load('getCache_AppService')));
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_GlobalClearerService extends App_KernelDevDebugContainer
{
/**
* Gets the public 'cache.global_clearer' shared service.
*
* @return \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/cache/src/CacheItemPoolInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/ResettableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/ArrayAdapter.php';
return $container->services['cache.global_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService')), 'cache.system' => ($container->services['cache.system'] ?? $container->load('getCache_SystemService')), 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')), 'cache.rate_limiter' => ($container->privates['cache.rate_limiter'] ?? $container->load('getCache_RateLimiterService')), 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? $container->load('getCache_SecurityIsGrantedAttributeExpressionLanguageService')), 'cache.doctrine.orm.default.result' => ($container->privates['cache.doctrine.orm.default.result'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter()), 'cache.doctrine.orm.default.query' => ($container->privates['cache.doctrine.orm.default.query'] ??= new \Symfony\Component\Cache\Adapter\ArrayAdapter())]);
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_Messenger_RestartWorkersSignalService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'cache.messenger.restart_workers_signal' shared service.
*
* @return \Symfony\Component\Cache\Adapter\FilesystemAdapter
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/psr/cache/src/CacheItemPoolInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/ResettableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/AbstractAdapterTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/ContractsTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AbstractAdapter.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/PruneableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/FilesystemCommonTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/FilesystemTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/FilesystemAdapter.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Marshaller/MarshallerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Marshaller/DefaultMarshaller.php';
$container->privates['cache.messenger.restart_workers_signal'] = $instance = new \Symfony\Component\Cache\Adapter\FilesystemAdapter('p-vvwonJ+5', 0, ($container->targetDir.''.'/pools/app'), ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true)));
$instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService')));
return $instance;
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_RateLimiterService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'cache.rate_limiter' shared service.
*
* @return \Symfony\Component\Cache\Adapter\RedisAdapter
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/psr/cache/src/CacheItemPoolInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/ResettableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/AbstractAdapterTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/ContractsTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AbstractAdapter.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/RedisTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/RedisAdapter.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Marshaller/MarshallerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Marshaller/DefaultMarshaller.php';
$container->privates['cache.rate_limiter'] = $instance = new \Symfony\Component\Cache\Adapter\RedisAdapter(\Symfony\Component\Cache\Adapter\AbstractAdapter::createConnection($container->getEnv('REDIS_CACHE_URL'), ['lazy' => true]), 'Ysu6vzaXuc', 0, ($container->privates['cache.default_marshaller'] ??= new \Symfony\Component\Cache\Marshaller\DefaultMarshaller(NULL, true)));
$instance->setLogger(($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService')));
return $instance;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_SecurityIsGrantedAttributeExpressionLanguageService extends App_KernelDevDebugContainer
{
/**
* Gets the public 'cache.security_is_granted_attribute_expression_language' shared service.
*
* @return \Symfony\Component\Cache\Adapter\AdapterInterface
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/psr/cache/src/CacheItemPoolInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/ResettableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/AbstractAdapterTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/ContractsTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AbstractAdapter.php';
return $container->services['cache.security_is_granted_attribute_expression_language'] = \Symfony\Component\Cache\Adapter\AbstractAdapter::createSystemCache('pQb2Ziu4kH', 0, $container->getParameter('container.build_id'), ($container->targetDir.''.'/pools/system'), ($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService')));
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_SystemClearerService extends App_KernelDevDebugContainer
{
/**
* Gets the public 'cache.system_clearer' shared service.
*
* @return \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php';
return $container->services['cache.system_clearer'] = new \Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer(['cache.system' => ($container->services['cache.system'] ?? $container->load('getCache_SystemService')), 'cache.security_is_granted_attribute_expression_language' => ($container->services['cache.security_is_granted_attribute_expression_language'] ?? $container->load('getCache_SecurityIsGrantedAttributeExpressionLanguageService'))]);
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getCache_SystemService extends App_KernelDevDebugContainer
{
/**
* Gets the public 'cache.system' shared service.
*
* @return \Symfony\Component\Cache\Adapter\AdapterInterface
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/psr/cache/src/CacheItemPoolInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AdapterInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/ResettableInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/psr/log/src/LoggerAwareTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/AbstractAdapterTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache-contracts/CacheTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Traits/ContractsTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/cache/Adapter/AbstractAdapter.php';
return $container->services['cache.system'] = \Symfony\Component\Cache\Adapter\AbstractAdapter::createSystemCache('yx81lGDddZ', 0, $container->getParameter('container.build_id'), ($container->targetDir.''.'/pools/system'), ($container->privates['monolog.logger.cache'] ?? $container->load('getMonolog_Logger_CacheService')));
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConfigBuilder_WarmerService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'config_builder.warmer' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\CacheWarmer\ConfigBuilderCacheWarmer
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/CacheWarmer/ConfigBuilderCacheWarmer.php';
return $container->privates['config_builder.warmer'] = new \Symfony\Bundle\FrameworkBundle\CacheWarmer\ConfigBuilderCacheWarmer(($container->services['kernel'] ?? $container->get('kernel', 1)), ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)));
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_AboutService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.about' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\AboutCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/AboutCommand.php';
$container->privates['console.command.about'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\AboutCommand();
$instance->setName('about');
$instance->setDescription('Display information about the current project');
return $instance;
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_AssetsInstallService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.assets_install' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\AssetsInstallCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/AssetsInstallCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/filesystem/Filesystem.php';
$container->privates['console.command.assets_install'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\AssetsInstallCommand(($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem()), \dirname(__DIR__, 4));
$instance->setName('assets:install');
$instance->setDescription('Install bundle\'s web assets under a public directory');
return $instance;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_CacheClearService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.cache_clear' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/CacheClearCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/http-kernel/CacheClearer/ChainCacheClearer.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/filesystem/Filesystem.php';
$container->privates['console.command.cache_clear'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand(new \Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer(new RewindableGenerator(fn () => new \EmptyIterator(), 0)), ($container->privates['filesystem'] ??= new \Symfony\Component\Filesystem\Filesystem()));
$instance->setName('cache:clear');
$instance->setDescription('Clear the cache');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_CachePoolClearService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.cache_pool_clear' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\CachePoolClearCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/CachePoolClearCommand.php';
$container->privates['console.command.cache_pool_clear'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolClearCommand(($container->services['cache.global_clearer'] ?? $container->load('getCache_GlobalClearerService')), ['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']);
$instance->setName('cache:pool:clear');
$instance->setDescription('Clear cache pools');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_CachePoolDeleteService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.cache_pool_delete' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\CachePoolDeleteCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/CachePoolDeleteCommand.php';
$container->privates['console.command.cache_pool_delete'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolDeleteCommand(($container->services['cache.global_clearer'] ?? $container->load('getCache_GlobalClearerService')), ['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']);
$instance->setName('cache:pool:delete');
$instance->setDescription('Delete an item from a cache pool');
return $instance;
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_CachePoolInvalidateTagsService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.cache_pool_invalidate_tags' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\CachePoolInvalidateTagsCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/CachePoolInvalidateTagsCommand.php';
$container->privates['console.command.cache_pool_invalidate_tags'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolInvalidateTagsCommand(new \Symfony\Component\DependencyInjection\Argument\ServiceLocator($container->getService ??= $container->getService(...), [
'cache.app' => ['privates', 'cache.app.taggable', 'getCache_App_TaggableService', true],
'cache.rate_limiter' => ['privates', '.cache.rate_limiter.taggable', 'get_Cache_RateLimiter_TaggableService', true],
], [
'cache.app' => 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter',
'cache.rate_limiter' => 'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter',
]));
$instance->setName('cache:pool:invalidate-tags');
$instance->setDescription('Invalidate cache tags for all or a specific pool');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_CachePoolListService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.cache_pool_list' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\CachePoolListCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/CachePoolListCommand.php';
$container->privates['console.command.cache_pool_list'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolListCommand(['cache.app', 'cache.system', 'cache.validator', 'cache.serializer', 'cache.annotations', 'cache.property_info', 'cache.messenger.restart_workers_signal', 'cache.rate_limiter', 'cache.security_expression_language', 'cache.security_is_granted_attribute_expression_language', 'cache.doctrine.orm.default.result', 'cache.doctrine.orm.default.query']);
$instance->setName('cache:pool:list');
$instance->setDescription('List available cache pools');
return $instance;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_CachePoolPruneService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.cache_pool_prune' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/CachePoolPruneCommand.php';
$container->privates['console.command.cache_pool_prune'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand(new RewindableGenerator(function () use ($container) {
yield 'cache.app' => ($container->services['cache.app'] ?? $container->load('getCache_AppService'));
yield 'cache.messenger.restart_workers_signal' => ($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService'));
}, 2));
$instance->setName('cache:pool:prune');
$instance->setDescription('Prune cache pools');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_CacheWarmupService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.cache_warmup' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\CacheWarmupCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/CacheWarmupCommand.php';
$container->privates['console.command.cache_warmup'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\CacheWarmupCommand(($container->services['cache_warmer'] ?? $container->load('getCacheWarmerService')));
$instance->setName('cache:warmup');
$instance->setDescription('Warm up an empty cache');
return $instance;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_ConfigDebugService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.config_debug' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/BuildDebugContainerTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/ContainerDebugCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/AbstractConfigCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/ConfigDebugCommand.php';
$container->privates['console.command.config_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand();
$instance->setName('debug:config');
$instance->setDescription('Dump the current configuration for an extension');
return $instance;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_ConfigDumpReferenceService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.config_dump_reference' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/BuildDebugContainerTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/ContainerDebugCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/AbstractConfigCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/ConfigDumpReferenceCommand.php';
$container->privates['console.command.config_dump_reference'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand();
$instance->setName('config:dump-reference');
$instance->setDescription('Dump the default configuration for an extension');
return $instance;
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_ContainerDebugService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.container_debug' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\ContainerDebugCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/BuildDebugContainerTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/ContainerDebugCommand.php';
$container->privates['console.command.container_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ContainerDebugCommand();
$instance->setName('debug:container');
$instance->setDescription('Display current services for an application');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_ContainerLintService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.container_lint' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\ContainerLintCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/ContainerLintCommand.php';
$container->privates['console.command.container_lint'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\ContainerLintCommand();
$instance->setName('lint:container');
$instance->setDescription('Ensure that arguments injected into services match type declarations');
return $instance;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_DebugAutowiringService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.debug_autowiring' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\DebugAutowiringCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/BuildDebugContainerTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/ContainerDebugCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/DebugAutowiringCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/error-handler/ErrorRenderer/FileLinkFormatter.php';
$container->privates['console.command.debug_autowiring'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\DebugAutowiringCommand(NULL, ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE'))));
$instance->setName('debug:autowiring');
$instance->setDescription('List classes/interfaces you can use for autowiring');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_DotenvDebugService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.dotenv_debug' shared service.
*
* @return \Symfony\Component\Dotenv\Command\DebugCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/dotenv/Command/DebugCommand.php';
$container->privates['console.command.dotenv_debug'] = $instance = new \Symfony\Component\Dotenv\Command\DebugCommand('dev', \dirname(__DIR__, 4));
$instance->setName('debug:dotenv');
$instance->setDescription('List all dotenv files with variables and values');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_EventDispatcherDebugService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.event_dispatcher_debug' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\EventDispatcherDebugCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/EventDispatcherDebugCommand.php';
$container->privates['console.command.event_dispatcher_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\EventDispatcherDebugCommand(($container->privates['.service_locator.sPNPNE7'] ?? $container->load('get_ServiceLocator_SPNPNE7Service')));
$instance->setName('debug:event-dispatcher');
$instance->setDescription('Display configured listeners for an application');
return $instance;
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_MessengerConsumeMessagesService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.messenger_consume_messages' shared service.
*
* @return \Symfony\Component\Messenger\Command\ConsumeMessagesCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/SignalableCommandInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/messenger/Command/ConsumeMessagesCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/messenger/EventListener/ResetServicesListener.php';
$container->privates['console.command.messenger_consume_messages'] = $instance = new \Symfony\Component\Messenger\Command\ConsumeMessagesCommand(($container->privates['messenger.routable_message_bus'] ?? $container->load('getMessenger_RoutableMessageBusService')), ($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ($container->services['event_dispatcher'] ?? self::getEventDispatcherService($container)), ($container->privates['monolog.logger.messenger'] ?? $container->load('getMonolog_Logger_MessengerService')), ['async'], new \Symfony\Component\Messenger\EventListener\ResetServicesListener(($container->services['services_resetter'] ?? $container->load('getServicesResetterService'))), ['messenger.bus.default'], NULL, NULL);
$instance->setName('messenger:consume');
$instance->setDescription('Consume messages');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_MessengerDebugService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.messenger_debug' shared service.
*
* @return \Symfony\Component\Messenger\Command\DebugCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/messenger/Command/DebugCommand.php';
$container->privates['console.command.messenger_debug'] = $instance = new \Symfony\Component\Messenger\Command\DebugCommand(['messenger.bus.default' => ['App\\Message\\TriggerPriceImport' => [['App\\MessageHandler\\TriggerPriceImportHandler', []], ['App\\MessageHandler\\TriggerPriceImportHandler', []]], 'Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => [['process.messenger.process_message_handler', []]], 'Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => [['console.messenger.execute_command_handler', []]], 'Symfony\\Component\\HttpClient\\Messenger\\PingWebhookMessage' => [['http_client.messenger.ping_webhook_handler', []]], 'Symfony\\Component\\Messenger\\Message\\RedispatchMessage' => [['messenger.redispatch_message_handler', []]]]]);
$instance->setName('debug:messenger');
$instance->setDescription('List messages you can dispatch using the message buses');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_MessengerSetupTransportsService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.messenger_setup_transports' shared service.
*
* @return \Symfony\Component\Messenger\Command\SetupTransportsCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/messenger/Command/SetupTransportsCommand.php';
$container->privates['console.command.messenger_setup_transports'] = $instance = new \Symfony\Component\Messenger\Command\SetupTransportsCommand(($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ['async']);
$instance->setName('messenger:setup-transports');
$instance->setDescription('Prepare the required infrastructure for the transport');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_MessengerStatsService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.messenger_stats' shared service.
*
* @return \Symfony\Component\Messenger\Command\StatsCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/messenger/Command/StatsCommand.php';
$container->privates['console.command.messenger_stats'] = $instance = new \Symfony\Component\Messenger\Command\StatsCommand(($container->privates['messenger.receiver_locator'] ?? $container->load('getMessenger_ReceiverLocatorService')), ['async']);
$instance->setName('messenger:stats');
$instance->setDescription('Show the message count for one or more transports');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_MessengerStopWorkersService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.messenger_stop_workers' shared service.
*
* @return \Symfony\Component\Messenger\Command\StopWorkersCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/messenger/Command/StopWorkersCommand.php';
$container->privates['console.command.messenger_stop_workers'] = $instance = new \Symfony\Component\Messenger\Command\StopWorkersCommand(($container->privates['cache.messenger.restart_workers_signal'] ?? $container->load('getCache_Messenger_RestartWorkersSignalService')));
$instance->setName('messenger:stop-workers');
$instance->setDescription('Stop workers after their current message');
return $instance;
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_RouterDebugService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.router_debug' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/BuildDebugContainerTrait.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/RouterDebugCommand.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/error-handler/ErrorRenderer/FileLinkFormatter.php';
$container->privates['console.command.router_debug'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand(($container->services['router'] ?? self::getRouterService($container)), ($container->privates['debug.file_link_formatter'] ??= new \Symfony\Component\ErrorHandler\ErrorRenderer\FileLinkFormatter($container->getEnv('default::SYMFONY_IDE'))));
$instance->setName('debug:router');
$instance->setDescription('Display current routes for an application');
return $instance;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace ContainerGfxmI0x;
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
/**
* @internal This class has been auto-generated by the Symfony Dependency Injection Component.
*/
class getConsole_Command_RouterMatchService extends App_KernelDevDebugContainer
{
/**
* Gets the private 'console.command.router_match' shared service.
*
* @return \Symfony\Bundle\FrameworkBundle\Command\RouterMatchCommand
*/
public static function do($container, $lazyLoad = true)
{
include_once \dirname(__DIR__, 4).'/vendor/symfony/console/Command/Command.php';
include_once \dirname(__DIR__, 4).'/vendor/symfony/framework-bundle/Command/RouterMatchCommand.php';
$container->privates['console.command.router_match'] = $instance = new \Symfony\Bundle\FrameworkBundle\Command\RouterMatchCommand(($container->services['router'] ?? self::getRouterService($container)), new RewindableGenerator(fn () => new \EmptyIterator(), 0));
$instance->setName('router:match');
$instance->setDescription('Help debug routes by simulating a path info match');
return $instance;
}
}

Some files were not shown because too many files have changed in this diff Show More