Php 如何在两个(yii2 basic)应用程序之间共享模型文件夹

Php 如何在两个(yii2 basic)应用程序之间共享模型文件夹,php,model,yii2,Php,Model,Yii2,我有两个使用相同数据库的yii2basic应用程序。 我目前的结构是: /www /Project A /components /config /controller /models /... /Project B /components /config /controller /models /... 但我想创建这个结构 /www /Project A

我有两个使用相同数据库的
yii2basic
应用程序。 我目前的结构是:

/www
  /Project A
      /components
      /config
      /controller
      /models
      /...

  /Project B
      /components
      /config
      /controller
      /models
      /...
但我想创建这个结构

/www
  /Project A
      /components
      /config
      /controller
      /...

  /Project B
      /components
      /config
      /controller
      /...

  /shared
      /models
我该怎么做?

1)将您的模型放入
/path/to/www/shared/models
并将它们放入
shared/models
命名空间中

2) 在配置中为两个应用程序设置
@shared
别名,使其指向
/path/to/www/shared
,如下所示

return [
    // ...
    'aliases' => [
        '@shared' => '/path/to/www/shared',

    ],
];
然后,你应该能够像直接在你的应用程序中一样使用这些模型

您可以阅读有关自动加载和定义别名的更多信息

1)将您的模型放入
/path/to/www/shared/models
并放入
shared/models
命名空间

2) 在配置中为两个应用程序设置
@shared
别名,使其指向
/path/to/www/shared
,如下所示

return [
    // ...
    'aliases' => [
        '@shared' => '/path/to/www/shared',

    ],
];
然后,你应该能够像直接在你的应用程序中一样使用这些模型


您可以阅读有关自动加载和定义别名的更多信息

尽管它们共享同一个数据库,但它们是共享同一个域,还是托管在两个不同的域中?我建议遵循
advanceapp
结构,在同一根下导入两个
app
,使用yii-app-advanced并将共享模型放在一起。默认情况下,有两个应用程序(前端和后端),但您可以添加任意数量的应用程序。您可以创建一个
模块
,并将其作为两个项目的外部依赖项进行管理,尽管它们共享同一数据库,但共享同一个域,还是托管在两个不同的域中?我建议遵循
advanceapp
结构,在同一根下导入两个
app
,使用yii-app-advanced并将共享模型放在一起。默认情况下,有两个应用程序(前端和后端),但您可以添加任意数量的应用程序。您可以创建
模块
,并将其作为两个项目的外部依赖项进行管理