11Architecture and Command Lifecycle
2- ==================================
2+ =================================
33
44The package has two connected execution models: local command execution and
55consumer repository synchronization.
@@ -14,9 +14,8 @@ Local Command Lifecycle
1414 ``FastForward\DevTools\Composer\Capability\DevToolsCommandProvider ``.
15154. ``standards `` is used as the default command when no explicit command name
1616 is given.
17- 5. Individual commands resolve local configuration first and packaged
18- fallbacks second through
19- ``FastForward\DevTools\Console\Command\AbstractCommand::getConfigFile() ``.
17+ 5. Commands receive dependencies through constructor injection from
18+ ``DevToolsServiceProvider ``.
2019
2120Consumer Synchronization Lifecycle
2221----------------------------------
@@ -39,24 +38,33 @@ Documentation Pipeline
3938----------------------
4039
41401. ``FastForward\DevTools\Console\Command\DocsCommand `` reads PSR-4 paths from
42- ``composer.json ``.
43- 2. It generates a temporary ``phpdocumentor.xml `` file in
44- `` tmp/cache/phpdoc `` .
41+ ``composer.json `` via `` ComposerJsonInterface `` .
42+ 2. It generates a temporary ``phpdocumentor.xml `` file in the configured cache
43+ directory .
45443. phpDocumentor builds API pages from those PSR-4 paths.
46454. phpDocumentor also builds the guide from the selected ``docs/ `` source
4746 directory.
48475. ``FastForward\DevTools\Console\Command\ReportsCommand `` combines that
4948 documentation build with PHPUnit coverage generation.
5049
51- Key Abstraction
52- ---------------
50+ Dependency Injection
51+ --------------------
52+
53+ Commands receive their dependencies through constructor injection provided by
54+ ``DevToolsServiceProvider ``.
5355
54- `` FastForward\DevTools\Console\Command\AbstractCommand `` is the main shared layer. It
55- centralizes:
56+ .. list-table ::
57+ :header-rows: 1
5658
57- - current working directory detection;
58- - absolute path resolution;
59- - local-versus-packaged config lookup;
60- - command-to-command dispatch inside the same application;
61- - access to Composer package metadata such as PSR-4 namespaces and project
62- description.
59+ * - Interface
60+ - Purpose
61+ * - ``FastForward\DevTools\Process\ProcessBuilderInterface ``
62+ - Builds process commands with a fluent API for arguments.
63+ * - ``FastForward\DevTools\Process\ProcessQueueInterface ``
64+ - Queues and executes multiple processes in sequence.
65+ * - ``FastForward\DevTools\Filesystem\FilesystemInterface ``
66+ - Abstracts filesystem operations.
67+ * - ``FastForward\DevTools\Composer\Json\ComposerJsonInterface ``
68+ - Reads and validates ``composer.json `` metadata.
69+ * - ``Symfony\Component\Config\FileLocatorInterface ``
70+ - Locates configuration files.
0 commit comments