codeigniter-4 - CodeIgniter 4/多个网站/共享资源
问题描述
我正在使用 CodeIgniter 4 设置多个网站,这些网站将共享相同的资源(即:模型、库、助手、第三方等)。我的目标是能够管理共享资源中的代码更新和迁移,以便这些更改在所有网站中都是全局的。下面是一个结构示例:
- SYSTEM_CI4(由所有 CI4 安装共享)
- 资源(由所有 CI4 安装共享)
- WEBSITE_1 (CI4)
- WEBSITE_2 (CI4)
- WEBSITE_4 (CI4)
- 等 (CI4)
WEBSITE_1 中的共享资源在目录之外时如何使用它?
任何帮助将不胜感激!
先感谢您!!!
解决方案
这在 CI4 中非常容易。以下是您可以采取的实现这一目标的方法之一。
假设默认设置是 app -> CI4 文件夹。
然后,您将需要创建另一个文件夹,假设 Website1 与 CI4 中的基本应用程序文件夹处于同一级别。
完成此操作后,Website1 的路由应存储在 Website1 文件夹中,其文件夹结构与原始 CI4 项目相同。
迁移将位于 Website1/app/Migrations 文件夹中,如果您的连接不同,则您需要在迁移中提及连接名称或动态切换它们。
为了让 CI4 成功找到您的网站路由,您需要在 Autoload 文件中提及路由,如下所示:
$psr4 = [
'App' => APPPATH, // To ensure filters, etc still found,
APP_NAMESPACE => APPPATH, // For custom namespace
'Config' => APPPATH . 'Config',
'Website1' => ROOTPATH .'Website1',
'Website1/app' => ROOTPATH .'Website1/app'
这将使您能够使用在 App 或 Website1 中定义的类,以便在 CI4 项目的任何地方使用。
Example of Folder Structure :
Resources to be shared :
app\Config\ <-- For shared Configurations
app\Models\ <-- For shared Models
app\Database\Migrations\ <-- For shared Migrations
Website1 Folder:
Website1\app\Config\ <-- For Website1 Configurations
Website1\app\Models\ <-- For Website1 Models
Website1\app\Database\Migrations\ <-- For Website1 Migrations
推荐阅读
- blockchain - ERC20:转账金额超过限额,即使被批准
- python - 向量运算应该只改变向量,还是改变向量并返回运算结果?
- django - 如何让用户关联到另一个模型 DRF。ValueError:精确查找的 QuerySet 值必须使用切片限制为一个结果
- mysql - 无法在 M1 MacBook Big Sur 中安装 mysql2 0.5.3
- django - 如何在不使用 for 循环的情况下解决这个 django 查询问题?
- c# - 如何通过反射清除类中的所有静态事件处理程序?
- django - Django 的无限流响应在 apache 日志中记录 500
- python - Python:subprocess.call 和变体对于特定应用程序从执行的 .py 中失败,但不是从 CLI 中的 python
- google-cloud-firestore - Firestore 聚合 - 扇出和更新云功能
- bash - bash parse options from string created in other method