From 0fbfedc42d8a2b596933f65310d65e1f93cf8238 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Tue, 18 Nov 2025 14:18:38 +0900 Subject: [PATCH 1/2] Add demo for Ray.Compiler usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add GreeterInterface, Greeter implementation - Add AppModule for DI bindings - Add compile.php and run.php scripts - Add comprehensive README with architecture explanation - Update .gitignore to exclude demo/.compiled - Update composer.json autoload-dev for demo namespace πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .gitignore | 1 + composer.json | 1 + demo/AppModule.php | 15 ++++++ demo/Greeter.php | 17 +++++++ demo/GreeterInterface.php | 10 ++++ demo/README.md | 98 +++++++++++++++++++++++++++++++++++++++ demo/compile.php | 18 +++++++ demo/run.php | 24 ++++++++++ 8 files changed, 184 insertions(+) create mode 100644 demo/AppModule.php create mode 100644 demo/Greeter.php create mode 100644 demo/GreeterInterface.php create mode 100644 demo/README.md create mode 100644 demo/compile.php create mode 100644 demo/run.php diff --git a/.gitignore b/.gitignore index a2d2b3bc..805215bd 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ build /coverage.xml *.bak .claude +/demo/.compiled diff --git a/composer.json b/composer.json index ab43f0b5..7b42b081 100644 --- a/composer.json +++ b/composer.json @@ -39,6 +39,7 @@ "autoload-dev": { "psr-4": { "Ray\\Compiler\\": ["tests", "tests/Fake"], + "Ray\\Compiler\\Demo\\": "demo", "Ray\\Di\\": "tests/Fake/Assisted" }, "files": ["tests/deleteFiles.php"] diff --git a/demo/AppModule.php b/demo/AppModule.php new file mode 100644 index 00000000..4ddc6e4a --- /dev/null +++ b/demo/AppModule.php @@ -0,0 +1,15 @@ +bind(GreeterInterface::class)->to(Greeter::class); + } +} diff --git a/demo/Greeter.php b/demo/Greeter.php new file mode 100644 index 00000000..2ebf33aa --- /dev/null +++ b/demo/Greeter.php @@ -0,0 +1,17 @@ +greeting, $name); + } +} diff --git a/demo/GreeterInterface.php b/demo/GreeterInterface.php new file mode 100644 index 00000000..47be17ab --- /dev/null +++ b/demo/GreeterInterface.php @@ -0,0 +1,10 @@ +compile($module, $scriptDir); + +echo "βœ“ Compilation complete! Scripts saved to: {$scriptDir}\n"; +echo "βœ“ Run 'php demo/run.php' to execute the compiled application\n"; diff --git a/demo/run.php b/demo/run.php new file mode 100644 index 00000000..9d9d859b --- /dev/null +++ b/demo/run.php @@ -0,0 +1,24 @@ +getInstance(GreeterInterface::class); + +echo $greeter->greet('World') . "\n"; +echo $greeter->greet('Ray.Compiler') . "\n"; + +echo "\n"; +echo "βœ“ Using pre-compiled dependency injection!\n"; +echo "βœ“ No reflection, no dependency resolution at runtime\n"; +echo "βœ“ Check {$scriptDir}/ for generated PHP scripts\n"; From dee40a51e44b302996b24160c5d937d56b8416a8 Mon Sep 17 00:00:00 2001 From: Akihito Koriyama Date: Tue, 18 Nov 2025 14:18:55 +0900 Subject: [PATCH 2/2] Add CI integration for demo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Run demo/compile.php to generate compiled scripts - Run demo/run.php to verify demo execution - Ensures .compiled/ directory exists before running πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/continuous-integration.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 3961e366..5b8d0c4a 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -11,3 +11,4 @@ jobs: with: old_stable: '["8.2", "8.3", "8.4"]' current_stable: 8.5 + script: demo/compile.php && php demo/run.php