how to develop multiple yii3 apps in the same folder just like yii2 advance demo

Author: Anonymous Publish Time: 2023.11.17 02:45:09

 

yes, this site was developed by Yii3

https://www.tianex.com

 

if you want to  develop multiple yii3 apps in the same folder,just like yii2 advance demo

we have a solution

the idea is filter the url accessed  to the different app(instance) and load different config files

1. move the yii3 demo config files to a subfolder of config ,maybe frontend

if you want to add backend just copy frontend files to backend

if you need the app frontend and backend ,the config should includ 2 subfolders 

config/frontend, config/backend

and modify the .merge-plan.php file in each app config folder

from  

return [
    '/' => [

to 

return [
    '/frontend (or othe app name)' => [

make sure it can load the right vender libs

 

2.modify the public/index.php to forward access to the different apps,

such as https://www.tianexcom/backend to load config/backend config files,

$request_uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

$_ENV['YII_ENV'] = '/frontend';
 
if (!empty($request_uri)) {
    if (str_starts_with($request_uri, '/backend')) {
        $_ENV['YII_ENV'] = '/backend';

}

 

to do this, you also need to mody the 

vendor\yiisoft\yii-runner\src\ApplicationRunner.php
 protected function createDefaultConfig(): Config
    {
        return ConfigFactory::create(new ConfigPaths($this->rootPath, 'config'.$this->environment), $this->environment);
    }

 

 

Comment

No Comments