Skip to content

feat(support): converge Config/Log/Filesystem to L13 API (task 3.5) - #41

Open
agissept wants to merge 1 commit into
migration/3.4-session-symfony-decouplefrom
migration/3.5-config-log-filesystem
Open

feat(support): converge Config/Log/Filesystem to L13 API (task 3.5)#41
agissept wants to merge 1 commit into
migration/3.4-session-symfony-decouplefrom
migration/3.5-config-log-filesystem

Conversation

@agissept

Copy link
Copy Markdown
Member

Task 3.5 — Config/Log/Filesystem light convergence

Expose L13-shaped API surfaces while keeping the 4.2 engine underneath.

Changes

Config\Repository:

  • Add Macroable trait + implement Contracts\Config\Repository
  • Add typed accessors: string(), integer(), float(), boolean(), array()
  • Add getMany(), prepend(), push(), all()

Log\Writer → Logger:

  • Rename class to Logger, implement Psr\Log\LoggerInterface
  • Add Conditionable trait, write() L13 signature
  • Add getLogger(), withContext(), withoutContext()
  • Keep BC: getMonolog(), useFiles/useDailyFiles/useErrorLog
  • Update all internal references (Mailer, Application alias, Facade, LogServiceProvider)

Filesystem\Filesystem:

  • Add Macroable + Conditionable traits
  • Widen 7 method signatures: get($path, $lock), append($path, $data, $lock), getRequire($path, $data), requireOnce($file, $data), files($dir, $hidden), allFiles($dir, $hidden), directories($dir, $depth)
  • Add 20 L13 methods: missing, json, sharedGet, hash, replace, replaceInFile, chmod, link, relativeLink, basename, dirname, guessExtension, mimeType, isReadable, isEmptyDirectory, hasSameHash, ensureDirectoryExists, moveDirectory, allDirectories, deleteDirectories
  • FilesystemServiceProvider: bindSharedsingleton

Test

Full suite: 1642 tests, 0 failures, 0 errors ✅

@agissept
agissept force-pushed the migration/3.5-config-log-filesystem branch from 3cc845c to 047f1ac Compare September 11, 2026 15:04
Config\Repository:
- Add Macroable trait + implements Contracts\Config\Repository
- Add typed accessors: string(), integer(), float(), boolean(), array()
- Add getMany(), prepend(), push(), all()

Log\Writer -> Logger:
- Rename class to Logger, implement Psr\Log\LoggerInterface
- Add Conditionable trait, write() L13 signature
- Add getLogger(), withContext(), withoutContext()
- Keep BC: getMonolog(), useFiles/useDailyFiles/useErrorLog

Filesystem\Filesystem:
- Add Macroable + Conditionable traits
- Widen 7 method signatures (get/append/getRequire/requireOnce/files/allFiles/directories)
- Add 20 L13 methods (missing/json/hash/replace/chmod/link/basename/...)
- FilesystemServiceProvider: bindShared -> singleton

Update all internal references (Mailer, Facade, Application alias map, tests).
@agissept
agissept force-pushed the migration/3.5-config-log-filesystem branch from 047f1ac to 3c25f35 Compare September 11, 2026 15:22
@agissept agissept self-assigned this Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant