Remove Loader as a top-level package and split its responsibilities across Config, Environment, and helper boot
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
Línea de trabajo
Empieza por rastrear las responsabilidades y los usos en src/Loader/Loader.php, src/Loader/Setup.php, src/Config/Config.php, src/Environment/Environment.php, src/Storage/Uploads/UploadConfigProvider.php y src/App/Stages/LoadHelpersStage.php. Verifica el comportamiento de resolución jerárquica existente e identifica las pruebas y la documentación afectadas antes de separar las responsabilidades. Se considera terminado cuando Loader ya no sea un paquete de nivel superior, los nuevos responsables conserven un comportamiento compatible y las pruebas y la documentación se hayan actualizado según sea necesario.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Refactor the current Loader package out of the top-level framework architecture.
Its responsibilities should be split into the places that actually own them:
- hierarchical config file resolution should belong to
Config - environment bootstrap file resolution should belong to
Environment - helper loading should be handled separately and should not justify
Loaderremaining its own package
Why
Right now Loader acts like a standalone package, but the code shows it is mostly a shared utility for unrelated internal concerns.
Current usages include:
Configloading hierarchical config filesEnvironmentloading env bootstrap configUploadConfigProviderprobing/loading optional uploads config- helper directory loading during boot
This is a weak package boundary.
The most obvious mismatch is Environment: environment bootstrap should not depend on a separate generic loader package just to resolve a small config file that determines which .env file to load.
Current Behavior to Preserve
For config loading, preserve the current hierarchical resolution behavior:
- resolve the module-scoped file first
- if the setup is hierarchical and the module file does not exist, fall back to the shared file
For config imports that currently means:
modules/<module>/config/<file>.php- then
shared/config/<file>.php
Proposed Changes
- remove
Loaderas a standalone top-level package concept - move hierarchical config file resolution into
Config - move environment bootstrap file resolution into
Environment - update
UploadConfigProviderso its optional config lookup follows the new ownership boundaries - keep helper loading as a separate concern and do not let it define the long-term architecture of
Loader
Acceptance Criteria
Loaderis no longer treated as a standalone top-level packageConfigowns hierarchical config file resolutionEnvironmentno longer relies onLoaderfor its bootstrap config resolutionUploadConfigProviderno longer relies on a generic top-level loader abstraction if a more local ownership model is available- existing hierarchical config behavior remains compatible
- tests and docs are updated as needed
Notes
Relevant code:
src/Loader/Loader.phpsrc/Loader/Setup.phpsrc/Config/Config.phpsrc/Environment/Environment.phpsrc/Storage/Uploads/UploadConfigProvider.phpsrc/App/Stages/LoadHelpersStage.php
- Lenguaje dominante
- PHP
- Estrellas
- 36
- Forks
- 22
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de quantum-php/framework
-
routing testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
quantum-php/framework#547 ·
-
view
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
quantum-php/framework#542 ·
-
enhancement http
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
quantum-php/framework#565 · 1 comentario ·
-
components view
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
quantum-php/framework#551 ·
-
Add explicit @version special route token support for API major versioning within a single moduleAbiertorouting
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
quantum-php/framework#550 ·
Todos los issues de quantum-php/framework
Issues similares
-
sync-en
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
az-digital/az_quickstart#6077 ·
Los mantenedores suelen responder en 1 día
-
Toolkit
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
[Bug] v-quick-install-app install crashes with ValueError if no supported PHP version is installedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Add `kjkpc.net`Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
FGRibreau/mailchecker#625 ·