검증 규칙 */ public function rules(): array { $rules = [ // 원격 코드를 내려받는 지점이므로 https 고정 + 내부 주소 허용 설정과 무관하게 항상 차단 'url' => ['required', 'url', 'max:500', new PublicOutboundUrl(schemes: ['https'], allowInternalOptIn: false)], 'checksum' => ['nullable', 'string', 'regex:/^[a-f0-9]{64}$/i'], 'auto_activate' => ['nullable', 'boolean'], ]; // 모듈/플러그인이 validation rules 를 동적으로 추가할 수 있도록 훅 제공 return HookManager::applyFilters('core.language_packs.install_from_url_validation_rules', $rules, $this); } /** * 검증 메시지를 정의합니다. * * @return array 검증 메시지 */ public function messages(): array { return [ 'url.required' => __('language_packs.validation.url_required'), 'url.url' => __('language_packs.validation.url_invalid'), 'checksum.regex' => __('language_packs.validation.checksum_invalid'), ]; } }