true, 'bootstrap/cache' => false, 'vendor' => false, 'modules' => false, 'modules/_pending' => false, 'plugins' => false, 'plugins/_pending' => false, 'templates' => false, 'templates/_pending' => false, 'lang-packs' => false, // 언어팩 활성 디렉토리 (코어/모듈/플러그인/템플릿 lang-packs) 'lang-packs/_pending' => false, // 외부 ZIP/URL/GitHub 다운로드 staging 'storage/app/core_pending' => false, // 코어 업데이트 _pending (기본값, 커스텀 경로는 Step 3에서 설정) ]); } // 인스톨러 기본 설정값 if (!defined('DEFAULT_INSTALL_CONFIG')) { define('DEFAULT_INSTALL_CONFIG', [ // Write DB 설정 'db_write_host' => 'localhost', 'db_write_port' => '3306', 'db_write_database' => '', 'db_write_username' => '', 'db_write_password' => '', 'db_prefix' => 'g7_', // Read DB 설정 'use_read_db' => false, 'db_read_host' => 'localhost', 'db_read_port' => '3306', 'db_read_database' => '', 'db_read_username' => '', 'db_read_password' => '', // 사이트 설정 'app_name' => '그누보드7', 'app_env' => 'production', // 관리자 계정 설정 'admin_name' => '관리자', 'admin_email' => '', 'admin_password' => '', 'admin_language' => 'ko', // 코어 업데이트 설정 'core_update_pending_path' => '', // 빈 값 = 기본값(storage/app/core_pending) 사용 'core_update_github_url' => 'https://github.com/gnuboard/g7', 'core_update_github_token' => '', // GitHub Personal Access Token (프라이빗 저장소용) // PHP CLI / Composer 경로 설정 'php_binary' => 'php', // PHP CLI 바이너리 경로 (예: /usr/local/php82/bin/php) 'composer_binary' => '', // Composer 바이너리 경로 (빈 값 = 시스템 PATH 사용) // Vendor 설치 모드 (auto|composer|bundled) // - auto: composer 사용 가능 시 composer, 불가 시 vendor-bundle.zip 추출 // - composer: 강제 composer 실행 // - bundled: 강제 vendor-bundle.zip 추출 (공유 호스팅 환경) 'vendor_mode' => 'auto', ]); } // 설치 단계별 파일 매핑 // Step 5 (installation)에서 완료/실패/중단 화면까지 모두 처리 if (!defined('STEP_FILE_MAP')) { define('STEP_FILE_MAP', [ 0 => 'welcome', 1 => 'license', 2 => 'requirements', 3 => 'configuration', 4 => 'extension-selection', 5 => 'installation', ]); } // 인스톨러 기본 상태 정의 if (!defined('DEFAULT_INSTALLATION_STATE')) { define('DEFAULT_INSTALLATION_STATE', [ 'current_step' => 0, 'step_status' => [ '0' => 'pending', '1' => 'pending', '2' => 'pending', '3' => 'pending', '4' => 'pending', '5' => 'pending', ], 'completed_tasks' => [], 'current_task' => null, 'current_task_name' => null, 'installation_status' => 'not_started', 'config' => [], 'selected_extensions' => [ 'admin_templates' => [], 'user_templates' => [], 'modules' => [], 'plugins' => [], 'language_packs' => [], ], 'extension_names' => [], // 확장 이름 매핑 (identifier → {ko: '...', en: '...'}) ]); } // 지원 언어 목록 (언어 추가 시 이 한 곳만 수정) if (!defined('SUPPORTED_LANGUAGES')) { define('SUPPORTED_LANGUAGES', [ 'ko' => '한국어 (Korean)', 'en' => 'English', ]); } // 설치 완료 후 인스톨러 파일 삭제 여부 if (!defined('DELETE_INSTALLER_AFTER_COMPLETE')) { define('DELETE_INSTALLER_AFTER_COMPLETE', true); }