Conversation
…cause of PHP support
…lation detector for PHP support because of PHP support - Add E2E fixture tests (tests/e2e_php.rs) covering all e2e_checklist items: dep opt-in/opt-out, external opt-in/opt-out, allow_call_patterns - Add PHP fixture (tests/fixtures/php_sample/) with Laravel-style 4-layer architecture - Add CI dogfooding step for PHP fixture in ci.yml - Add website language guide pages (ja + en) for PHP - Update website index pages and sidebar with PHP support - Fix violation_detector: add backslash-separated crate name extraction for PHP imports - Fix violation_detector: add backslash-separated type name extraction for PHP call patterns - Fix PHP resolver: use PSR-4 src_dir mapping for resolved_path to match layer paths Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tree-sitter-php0.22.8usestatements: simple, aliased (as), grouped ({}),use function,use constcomposer.jsonautoload.psr-4[resolve.php]config section withnamespaceandcomposer_jsonkeys.phpextension registered inext_to_languagesomille initdetects PHP projectsChanges
src/infrastructure/parser/php.rs—PhpParserwith tree-sitter AST walkingsrc/infrastructure/resolver/php.rs—PhpResolverwith Internal/External/Stdlib classification +read_namespace_from_composer_contentsrc/infrastructure/parser/mod.rs— dispatch.phptoPhpParsersrc/infrastructure/resolver/mod.rs— dispatch.phptoPhpResolver, read[resolve.php]configsrc/usecase/init.rs—"php" => Some("php")inext_to_languageCargo.toml—tree-sitter-php = "0.22"README.md— PHP added to language support table,[resolve.php]reference, Laravel example configdocs/TODO.md— PHP support noted in summary and completed task listTest plan
--no-verify(10 parser tests failing withtodo!())cargo fmtapplied,cargo clippycleanParser test coverage
test_parse_php_simple_use—use App\Models\User;test_parse_php_aliased_use— alias ignored, original path returnedtest_parse_php_group_use—use App\Services\{Auth, Logger};expands to 2 importstest_parse_php_function_use—use function App\Helpers\format_date;test_parse_php_const_use—use const App\Config\MAX_RETRIES;test_parse_php_multiple_use— 3 mixed use statementstest_parse_php_no_imports— empty for plain class filetest_parse_php_names_class,_function,_commentResolver test coverage
\DateTime(leading backslash stripped)test_php_resolver_internal_resolved_path—App\Models\User→App/Models/User.phptest_php_resolver_external_no_path— no resolved_path for Externaltest_read_namespace_from_composer— PSR-4 key extractionNotes
use require/includeare intentionally not parsed (as per scope)mille initPHP support (scanning imports to generate layers) is not yet implemented — would require a follow-up PR🤖 Generated with Claude Code