#!/usr/bin/env bash # modules/app.module.sh # # Framework abstraction layer. # Dispatches app lifecycle functions to the active framework module. # # Active framework is determined by --framework flag (default: yii2-advanced) # Set in .dx-flags or passed as: dx build --framework=laravel function app::on_load() { load_module "framework/$(app::framework)" load_module proxy load_module composer # Register framework console name as alias for console command # yii2-advanced → yii, laravel → artisan # CMD_ALIASES is declared in dx CMD_ALIASES["$(app::console_name)"]=console CMD_ALIASES[console]=console } # ============================================ # Framework identity # ============================================ function app::framework { echo "${APP_FRAMEWORK:-yii2-advanced}"; } function app::console_name() { "framework::$(app::framework)::console_name"; } # ============================================ # Interface # ============================================ function app::scaffold() { "framework::$(app::framework)::scaffold" "${1:-$(ctx::root)}"; } function app::init() { "framework::$(app::framework)::init" "$@"; } function app::config() { "framework::$(app::framework)::config" "$@"; } function app::console() { "framework::$(app::framework)::console" "$@"; } function app::resolve_env() { "framework::$(app::framework)::resolve_env" "$@"; } function app::install_vendors() { "framework::$(app::framework)::install_vendors"; } function app::vendor_skip_message() { "framework::$(app::framework)::vendor_skip_message"; } function app::vhost_template_path() { "framework::$(app::framework)::vhost_template_path"; } function app::exists() { [[ -f "$(ctx::root)/composer.json" ]]; } function app::init_skip_message() { "framework::$(app::framework)::init_skip_message" "$@"; } function app::config_skip_message() { "framework::$(app::framework)::config_skip_message" "$@"; } function app::post_init_hint() { "framework::$(app::framework)::post_init_hint"; }