diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-16 10:00:50 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-16 10:00:50 +0900 |
| commit | 112df62a01e482f33b68e1dac190f70085fcec64 (patch) | |
| tree | 19d126032309193cfd5f5d0fb63b6562ef17e5c9 /crates/shirabe/src/command/repository_command.rs | |
| parent | 3fb08fab7ca69a028a9a89544b246ca70534cbce (diff) | |
| download | php-shirabe-112df62a01e482f33b68e1dac190f70085fcec64.tar.gz php-shirabe-112df62a01e482f33b68e1dac190f70085fcec64.tar.zst php-shirabe-112df62a01e482f33b68e1dac190f70085fcec64.zip | |
refactor(php-shim): give parse_url a typed UrlComponents result
parse_url now returns Option<UrlComponents> instead of a PhpMixed array,
and the component-selecting overload with the PHP_URL_* constants is gone:
callers read the field they want. Two call sites change behaviour as a
result, both towards PHP:
* CurlDownloader::handle_redirect tested scheme and host with is_null(), so
an unparsable Location header (PhpMixed::Bool(false)) counted as an
absolute URL. PHP's truthiness test sends it to the relative-path branch.
* Url::get_origin appended a literal port 0, which PHP treats as falsy and
leaves off.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/command/repository_command.rs')
| -rw-r--r-- | crates/shirabe/src/command/repository_command.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/shirabe/src/command/repository_command.rs b/crates/shirabe/src/command/repository_command.rs index ef75ffd0..4853d3d3 100644 --- a/crates/shirabe/src/command/repository_command.rs +++ b/crates/shirabe/src/command/repository_command.rs @@ -12,8 +12,8 @@ use crate::json::JsonFile; use indexmap::IndexMap; use shirabe_pcre::Preg; use shirabe_php_shim::{ - InvalidArgumentException, PHP_URL_HOST, PhpMixed, RuntimeException, impl_php_class, parse_url, - php_regex, strtolower, + InvalidArgumentException, PhpMixed, RuntimeException, impl_php_class, parse_url, php_regex, + strtolower, }; use shirabe_symfony_console::command::Command; use shirabe_symfony_console::input::InputInterface; @@ -64,9 +64,9 @@ impl RepositoryCommand { .get("url") .and_then(|v| v.as_string()) .map(|url| { - parse_url(url, PHP_URL_HOST) - .as_string() - .unwrap_or("") + parse_url(url) + .and_then(|parsed| parsed.host) + .unwrap_or_default() .ends_with("packagist.org") }) .unwrap_or(false); |
