$config['APP_NAME']??'App', 'short_name' =>$config['APP_SHORT_NAME']??str_replace(' ','',$config['APP_NAME'])??'App', 'start_url' =>$config['APP_START_URL']??'/', ]; # "display": browser (default), standalone, minimal-ui, and fullscreen # fallback for each given mode: fullscreen → standalone → minimal-ui → browser $options=[ 'display', 'description', 'background_color', 'theme_color', ]; foreach($options as $option) { $config_name='APP_'.strtoupper($option); isset($config[$config_name]) && $mf[$option] = $config[$config_name]; } # Ensure override is set if (isset($mf['display']) && !isset($mf['display_override'])) { $mf['display_override']= [ 'window-controls-overlay', $mf['display'], 'browser', ]; } $mf['icons'] = [ ['src' => __ICO__.'/android-icon-36x36.png', 'sizes' => '36x36', 'type' => 'image/png', 'density' => '0.75' ], ['src' => __ICO__.'/android-icon-48x48.png', 'sizes' => '48x48', 'type' => 'image/png', 'density' => '1.0' ], ['src' => __ICO__.'/android-icon-72x72.png', 'sizes' => '72x72', 'type' => 'image/png', 'density' => '1.5' ], ['src' => __ICO__.'/android-icon-96x96.png', 'sizes' => '96x96', 'type' => 'image/png', 'density' => '2.0' ], ['src' => __ICO__.'/android-icon-144x144.png', 'sizes' => '144x144', 'type' => 'image/png', 'density' => '3.0' ], ['src' => __ICO__.'/android-icon-192x192.png', 'sizes' => '192x192', 'type' => 'image/png', 'density' => '4.0' ] ]; echo json_encode($mf,JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);