管理您的应用程序
默认情况下,假设您只打算使用 CodeIgniter 来管理一个应用程序,您将在 app 目录中构建它。但是,您可以拥有多个应用程序集,它们共享一个 CodeIgniter 安装,甚至可以重命名或重新定位您的应用程序目录。
重要
当您安装 CodeIgniter v4.1.9 或更早版本时,如果您的 /composer.json
的 autoload.psr-4
中存在 App\\
和 Config\\
命名空间,如下所示,您需要删除这些行,并运行 composer dump-autoload
。
{
...
"autoload": {
"psr-4": {
"App\\": "app", <-- Remove this line
"Config\\": "app/Config" <-- Remove this line
}
},
...
}
重命名或重新定位应用程序目录
如果您想重命名您的应用程序目录,甚至将其移动到服务器上的不同位置(而不是您的项目根目录),请打开您的主 **app/Config/Paths.php** 文件,并在 $appDirectory
变量(大约在第 44 行)中设置一个 *完整的服务器路径*。
<?php
namespace Config;
class Paths
{
// ...
public $appDirectory = '/path/to/your/app';
// ...
}
您需要修改项目根目录中的另外两个文件,以便它们能够找到 **Paths** 配置文件。
** /spark ** 运行命令行应用程序。
<?php require FCPATH . '../app/Config/Paths.php'; // ^^^ Change this line if you move your application folder
** /public/index.php ** 是您的 Web 应用程序的前端控制器。
<?php require FCPATH . '../app/Config/Paths.php'; // ^^^ Change this line if you move your application folder
使用一个 CodeIgniter 安装运行多个应用程序
如果您想共享一个通用的 CodeIgniter 框架安装来管理多个不同的应用程序,只需将应用程序目录中的所有目录都放到它们自己的(子)目录中。
例如,假设您想创建两个名为 **foo** 和 **bar** 的应用程序。您可以像这样构建您的应用程序项目目录:
foo/
app/
public/
tests/
writable/
env
phpunit.xml.dist
spark
bar/
app/
public/
tests/
writable/
env
phpunit.xml.dist
spark
vendor/
autoload.php
codeigniter4/framework/
composer.json
composer.lock
注意
如果您从 Zip 文件安装 CodeIgniter,目录结构将如下所示:
foo/
bar/
codeigniter4/system/
这将有两个应用程序 **foo** 和 **bar**,它们都具有标准的应用程序目录和一个 **public** 文件夹,并共享一个通用的 **codeigniter4/framework**。
每个应用程序中的 **app/Config/Paths.php** 文件中的 $systemDirectory
变量将被设置为引用共享的通用 **codeigniter4/framework** 文件夹。
<?php
namespace Config;
class Paths
{
// ...
public $systemDirectory = __DIR__ . '/../../../vendor/codeigniter4/framework/system';
// ...
}
注意
如果您从 Zip 文件安装 CodeIgniter,$systemDirectory
将是 __DIR__ . '/../../../codeigniter4/system'
。
并修改每个应用程序中的 **app/Config/Constants.php** 文件中的 COMPOSER_PATH
常量。
<?php
defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . '../vendor/autoload.php');
只有在您更改应用程序目录时,请参阅 重命名或重新定位应用程序目录 并修改 **index.php** 和 **spark** 中的路径。