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"
FRONTEND_DIST = PROJECT_ROOT / "frontend" / "dist"
DB_PATH = STORAGE_DIR / "guides.db"
PROJECTS_DIR = PROJECT_ROOT / "projects"
PROJECTS_CACHE_DIR = STORAGE_DIR / "projects"
ALLOWED_FORMATS = [
"OnePager",
@@ -27,7 +29,8 @@ AGENT_TIMEOUT = 3600
MAX_CONCURRENT_GENERATIONS = 6
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_REWORK = "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_REWORK,
MODEL_CHAT,
MODEL_PROJECT_INDEX,
STORAGE_DIR,
)
from database import (
@@ -28,7 +29,7 @@ from database import (
update_baustein,
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)
_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, ""
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")
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 ""
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}".
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}
@@ -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")
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}".
SCHRITT 1 — HTML-Datei lesen:
Öffne die Datei {html_path} mit dem Read-Tool.
SCHRITT 2 — Fakten per Websuche prüfen:
Recherchiere mit WebSearch, ob Versionsnummern, Jahreszahlen und zentrale Fakten zu "{topic}" aktuell und korrekt sind.
{check_step}
SCHRITT 3 — Vollständigkeit prüfen anhand dieser Spezifikation:
{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:
now = datetime.now(timezone.utc).isoformat()
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_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
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)
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…")
current_step = "Inhalts-Review"
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)
if returncode != 0:

View File

@@ -3,7 +3,7 @@ from contextlib import asynccontextmanager
from fastapi import FastAPI
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 routes import router
@@ -12,6 +12,7 @@ from routes import router
async def lifespan(app: FastAPI):
(STORAGE_DIR / "html").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()
yield
await close_db()

View File

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

View File

@@ -1,6 +1,6 @@
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:
@@ -15,3 +15,11 @@ def final_paths(topic: str, format_name: 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"
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 shutil
import uuid
from datetime import datetime, timezone
from fastapi import APIRouter, HTTPException
from fastapi.responses import FileResponse
from config import FORMAT_META
from config import FORMAT_META, PROJECTS_DIR
from database import (
create_guide, delete_guide, get_guide, list_guides,
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,
TopicSuggestRequest, TopicSuggestion,
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")
@@ -30,6 +31,34 @@ async def get_formats():
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])
async def topic_suggestions(req: TopicSuggestRequest):
guides = await list_guides()
@@ -51,7 +80,7 @@ async def create(req: GuideCreateRequest):
"updated_at": now,
}
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

View File

@@ -1,12 +1,13 @@
<script setup>
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 TopicDetail from './components/TopicDetail.vue'
import BausteineView from './components/BausteineView.vue'
import HelpChat from './components/HelpChat.vue'
const guides = ref([])
const projects = ref([])
const manualTopics = ref([])
const selectedTopic = ref(null)
const previewGuide = ref(null)
@@ -31,19 +32,26 @@ function onSidebarLeave() {
if (!sidebarPinned.value) sidebarSticky.value = false
}
const projectNames = computed(() => projects.value.map((p) => p.name))
const topics = computed(() => {
const isProject = new Set(projectNames.value)
const topicDates = {}
for (const g of guides.value) {
if (isProject.has(g.topic)) continue
if (!topicDates[g.topic] || g.created_at > topicDates[g.topic]) {
topicDates[g.topic] = g.created_at
}
}
for (const t of manualTopics.value) {
if (isProject.has(t)) continue
if (!topicDates[t]) topicDates[t] = new Date().toISOString()
}
return Object.keys(topicDates).sort((a, b) => topicDates[b].localeCompare(topicDates[a]))
})
const isProjectSelected = computed(() => projectNames.value.includes(selectedTopic.value))
const doneByFormat = computed(() => {
const map = {}
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']
function autoPreview() {
@@ -113,13 +129,22 @@ function onHelpSelect(title) {
createTopic(title)
}
async function handleFormatClick({ format, instructions }) {
async function handleFormatClick({ format, instructions, reindex }) {
if (!selectedTopic.value) return
await apiCreate(selectedTopic.value, format, instructions)
await apiCreate(selectedTopic.value, format, instructions, reindex || false)
await loadGuides()
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 }) {
await apiRework(guideId, instructions)
await loadGuides()
@@ -193,7 +218,7 @@ function onVisibility() {
}
onMounted(async () => {
await loadGuides()
await Promise.all([loadGuides(), loadProjects()])
if (!selectedTopic.value && topics.value.length) {
selectTopic(topics.value[0])
}
@@ -211,6 +236,8 @@ onUnmounted(() => {
<div v-if="!sidebarPinned" class="hover-zone" @click="clickHoverZone"></div>
<TopicSidebar
:topics="topics"
:projects="projectNames"
:isProjectSelected="isProjectSelected"
:selectedTopic="selectedTopic"
:doneByFormat="doneByFormat"
:latestByFormat="latestByFormat"
@@ -221,6 +248,7 @@ onUnmounted(() => {
@create="createTopic"
@formatClick="handleFormatClick"
@deleteTopic="handleDeleteTopic"
@deleteProject="handleDeleteProject"
@cancelGuide="handleCancel"
@deleteGuide="handleDeleteGuide"
@preview="handlePreview"

View File

@@ -10,15 +10,24 @@ export async function fetchGuide(id) {
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`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ topic, format, instructions }),
body: JSON.stringify({ topic, format, instructions, reindex }),
})
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) {
const res = await fetch(`${BASE}/guides/${id}/rework`, {
method: 'POST',

View File

@@ -3,6 +3,8 @@ import { ref, computed } from 'vue'
const props = defineProps({
topics: { type: Array, required: true },
projects: { type: Array, default: () => [] },
isProjectSelected: { type: Boolean, default: false },
selectedTopic: { type: String, default: null },
doneByFormat: { type: Object, default: () => ({}) },
latestByFormat: { type: Object, default: () => ({}) },
@@ -11,7 +13,9 @@ const props = defineProps({
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('')
@@ -72,9 +76,10 @@ function toggleInput(format) {
function handlePlay(format) {
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
inputText.value = ''
reindex.value = false
}
function handleRefresh(format) {
@@ -128,6 +133,11 @@ function confirmDeleteTopic(topic) {
if (!confirm(`Thema "${topic}" und alle zugehörigen Guides löschen?`)) return
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>
<template>
@@ -154,6 +164,10 @@ function confirmDeleteTopic(topic) {
<div class="progress-info" v-if="activeGenerations.length">
<div v-for="(line, i) in activeGenerations" :key="i">{{ line }}</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 :class="['format-row', 'fmt-' + guideStatus(f.key)]">
<button class="format-name" @click="handleFormatClick(f.key)">
@@ -223,6 +237,18 @@ function confirmDeleteTopic(topic) {
<span>{{ t }}</span>
<button class="delete-topic" @click.stop="confirmDeleteTopic(t)" title="Löschen">&times;</button>
</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>
</aside>
</template>
@@ -348,6 +374,40 @@ function confirmDeleteTopic(topic) {
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 {
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