diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-09 11:24:48 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-09 11:24:48 +0900 |
| commit | 596482de82ff32705e85f18c1c9ae784e6cd2c6f (patch) | |
| tree | 6a970fa30f7770d702d3f6c53232c123d0478d16 /crates/shirabe | |
| parent | 738a258496318edb6e264b13b8a6d0dc313795d3 (diff) | |
| download | php-shirabe-596482de82ff32705e85f18c1c9ae784e6cd2c6f.tar.gz php-shirabe-596482de82ff32705e85f18c1c9ae784e6cd2c6f.tar.zst php-shirabe-596482de82ff32705e85f18c1c9ae784e6cd2c6f.zip | |
refactor(xdebug-handler): extract composer/xdebug_handler into the shirabe-xdebug-handler crate
Move `Composer\XdebugHandler` out of shirabe-external-packages and into
its own crate, so the path is `shirabe_xdebug_handler::XdebugHandler`
instead of
`shirabe_external_packages::composer::xdebug_handler::XdebugHandler`.
Standing alone, the stub no longer sits in a crate that shirabe-php-rpc
depends on, so drop the dependency-cycle rationale from the comments that
explain why callers reach for shirabe_php_rpc directly.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe')
| -rw-r--r-- | crates/shirabe/Cargo.toml | 1 | ||||
| -rw-r--r-- | crates/shirabe/src/command/diagnose_command.rs | 4 | ||||
| -rw-r--r-- | crates/shirabe/src/console/application.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/repository/platform_repository.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/util/ini_helper.rs | 7 |
5 files changed, 8 insertions, 8 deletions
diff --git a/crates/shirabe/Cargo.toml b/crates/shirabe/Cargo.toml index 469b7e32..a2cf1f50 100644 --- a/crates/shirabe/Cargo.toml +++ b/crates/shirabe/Cargo.toml @@ -19,6 +19,7 @@ shirabe-symfony-console.workspace = true shirabe-symfony-filesystem.workspace = true shirabe-symfony-finder.workspace = true shirabe-symfony-process.workspace = true +shirabe-xdebug-handler.workspace = true anyhow.workspace = true async-trait.workspace = true base64.workspace = true diff --git a/crates/shirabe/src/command/diagnose_command.rs b/crates/shirabe/src/command/diagnose_command.rs index eade37fc..2af2acfc 100644 --- a/crates/shirabe/src/command/diagnose_command.rs +++ b/crates/shirabe/src/command/diagnose_command.rs @@ -888,8 +888,8 @@ impl DiagnoseCommand { warnings.insert("xdebug_profile".to_string(), PhpMixed::Bool(true)); } else if diagnostics.xdebug_active { // PHP: XdebugHandler::isXdebugActive(). As with IniHelper::get_all, the port of that - // method in shirabe_external_packages cannot reach the PHP RPC bridge (the dependency - // would cycle), so the real runtime is queried through the diagnose payload instead. + // method in shirabe_xdebug_handler is a stub, so the real runtime is queried through + // the diagnose payload instead. warnings.insert("xdebug_loaded".to_string(), PhpMixed::Bool(true)); } diff --git a/crates/shirabe/src/console/application.rs b/crates/shirabe/src/console/application.rs index f5c953da..cc456c3c 100644 --- a/crates/shirabe/src/console/application.rs +++ b/crates/shirabe/src/console/application.rs @@ -54,7 +54,6 @@ use crate::util::HttpDownloader; use crate::util::Platform; use crate::util::Silencer; use indexmap::IndexMap; -use shirabe_external_packages::composer::xdebug_handler::XdebugHandler; use shirabe_php_shim::Catch as _; use shirabe_php_shim::{ LogicException as ShimLogicException, PHP_VERSION, PHP_VERSION_ID, PhpMixed, RuntimeException, @@ -99,6 +98,7 @@ use shirabe_symfony_console::style::style_interface::StyleInterface; use shirabe_symfony_console::style::symfony_style::SymfonyStyle; use shirabe_symfony_console::terminal::Terminal; use shirabe_symfony_process::exception::ProcessTimedOutException; +use shirabe_xdebug_handler::XdebugHandler; /// The PHP `Composer\Console\Application` and `Symfony\Component\Console\Application` are /// flattened into a single struct. Methods that are overridden by subclass and called via diff --git a/crates/shirabe/src/repository/platform_repository.rs b/crates/shirabe/src/repository/platform_repository.rs index 710ba28c..7e123151 100644 --- a/crates/shirabe/src/repository/platform_repository.rs +++ b/crates/shirabe/src/repository/platform_repository.rs @@ -16,7 +16,6 @@ use crate::plugin::plugin_interface::{self}; use crate::repository::ArrayRepository; use crate::repository::RepositoryInterface; use indexmap::IndexMap; -use shirabe_external_packages::composer::xdebug_handler::XdebugHandler; use shirabe_pcre::{CaptureKey, Preg}; use shirabe_php_rpc::PlatformInfo; use shirabe_php_shim::{ @@ -25,6 +24,7 @@ use shirabe_php_shim::{ str_replace, str_starts_with, strpos, strtolower, var_export, }; use shirabe_semver::constraint::SimpleConstraint; +use shirabe_xdebug_handler::XdebugHandler; use std::sync::{LazyLock, Mutex}; static LAST_SEEN_PLATFORM_PHP: LazyLock<Mutex<Option<String>>> = LazyLock::new(|| Mutex::new(None)); diff --git a/crates/shirabe/src/util/ini_helper.rs b/crates/shirabe/src/util/ini_helper.rs index c36b9189..4ff9a5e2 100644 --- a/crates/shirabe/src/util/ini_helper.rs +++ b/crates/shirabe/src/util/ini_helper.rs @@ -5,10 +5,9 @@ pub struct IniHelper; impl IniHelper { /// Returns an array of php.ini locations with at least one entry. pub fn get_all() -> Vec<String> { - // PHP: XdebugHandler::getAllIniFiles(). shirabe_external_packages::XdebugHandler's port - // of that method can't reach the PHP RPC bridge (shirabe-php-rpc already depends on - // shirabe-external-packages, so the reverse dependency would cycle), so query the real - // PHP runtime's loaded/scanned ini files here instead. + // PHP: XdebugHandler::getAllIniFiles(). shirabe_xdebug_handler::XdebugHandler's port + // of that method is a stub that returns the PHP default, so query the real PHP + // runtime's loaded/scanned ini files here instead. shirabe_php_rpc::get_all_ini_files() } |
