Phred/tests
Funky Waddle 0cb49c71df Refactor M7 module scaffolding, route inclusion, and tests; implement providers discovery; fix URL extension negotiation; clean docs
• Add Service Providers loading from config/providers.php and merge with runtime config; ensure AppServiceProvider boots and contributes routes
• Create RouteGroups and guard module route includes in routes/web.php; update Kernel to auto-mount module routes and apply provider routes
• Implement create:module as a console Command (extends Phred\Console\Command):
	◦ Args: name, prefix; Flags: --update-composer, --no-dump
	◦ Stable root resolution (dirname(DIR, 2)); robust args/flags handling under ArrayInput
	◦ Scaffolds module dirs (Controllers, Views, Templates, Routes, Providers, etc.), ensures Controllers exists, adds .gitkeep
	◦ Writes Provider, View, Controller, Template stubs (fix variable interpolation via placeholders)
	◦ Appends guarded include snippet to routes/web.php
	◦ Optional composer PSR-4 mapping update (+ backup) and optional autoload dump
	◦ Prevents providers.php corruption via name validation and existence checks
• Add URL extension negotiation middleware tweaks:
	◦ Only set Accept for .json (and future .xml), never for none/php
	◦ Never override existing Accept header
• Add MVC base classes (Controller, APIController, ViewController, View, ViewWithDefaultTemplate); update ViewController signature and View render contract
• Add tests:
	◦ CreateModuleCommandTest with setup/teardown to snapshot/restore routes/web.php and composer.json; asserts scaffold and PSR-4 mapping
	◦ ProviderRouteTest for provider-contributed route
	◦ UrlExtensionNegotiationTest sets API_FORMAT=rest and asserts content-type behavior
	◦ MvcViewTest validates transformData+render
• Fix config/providers.php syntax and add comment placeholder for modules
• Update README: M5/M6/M7 docs, MVC examples, template selection conventions, modules section, URL extension negotiation, and module creation workflow
• Update MILESTONES.md: mark M6/M7 complete; add M8 task for register:orm; note M12 XML extension support
2025-12-16 16:14:22 -06:00
..
CommandDiscoveryTest.php initial commit 2025-12-14 17:10:01 -06:00
ConfigTest.php Router groups, Configs 2025-12-14 20:09:06 -06:00
ContentNegotiationTest.php refactor(core): enforce SOLID across HTTP pipeline; add small contracts and defaults; align tests 2025-12-15 09:15:49 -06:00
CreateModuleCommandTest.php Refactor M7 module scaffolding, route inclusion, and tests; implement providers discovery; fix URL extension negotiation; clean docs 2025-12-16 16:14:22 -06:00
ErrorHandlingTest.php refactor(core): enforce SOLID across HTTP pipeline; add small contracts and defaults; align tests 2025-12-15 09:15:49 -06:00
HttpKernelTest.php initial commit 2025-12-14 17:10:01 -06:00
MakeCommandTest.php refactor(core): enforce SOLID across HTTP pipeline; add small contracts and defaults; align tests 2025-12-15 09:15:49 -06:00
MvcViewTest.php Implement M5 service providers, M6 MVC bases, and URL extension negotiation; update docs and tests 2025-12-15 16:08:57 -06:00
ProviderRouteTest.php Implement M5 service providers, M6 MVC bases, and URL extension negotiation; update docs and tests 2025-12-15 16:08:57 -06:00
RouterGroupTest.php Router groups, Configs 2025-12-14 20:09:06 -06:00
UrlExtensionNegotiationTest.php Refactor M7 module scaffolding, route inclusion, and tests; implement providers discovery; fix URL extension negotiation; clean docs 2025-12-16 16:14:22 -06:00