CodeIgniter 4:带有多个 public 文件夹的火花
CodeIgniter 4 : spark with multi public folders
我正在使用新的 CodeIgniter 4 开发网站(我使用的是 CodeIgniter 3),但我遇到了问题:
我在 1 个 CodeIgniter 系统上使用多个 public 文件夹来 运行 多个网站,例如:
public/site1/index.php
public/site2/index.php
等等
在 index.php(来自 CI4)中,我刚刚添加了以下行:
define('PUBFOLDER', basename(__DIR__));
并在 app/Config/Events.php 中添加了以下代码:
Events::on('pre_system', function () {
$configs = Database::connect(PUBFOLDER)
->table('option')
->get()
->getResult();
foreach($configs as $config)
{
config('App')->{$config->option_name} = $config->option_value;
}
});
(在这里找到:https://github.com/codeigniter4/CodeIgniter4/issues/1661#issuecomment-453723931)
当我导航时效果很好。
但现在我想使用 CLI 和 "spark",当我执行以下操作时:
php spark
我有一个逻辑错误:
Type: ErrorException
Message: Use of undefined constant PUBFOLDER - assumed 'PUBFOLDER' (this will throw an Error in a future version of PHP)
Filename: /home/www/ci4/www/app/Config/Events.php
那么我怎么才能告诉 spark 我想在 "site1" 中使用它呢?
感谢您的帮助!
只需找到一个解决方案:我已将 "spark" 文件复制到 "spark-site1" 和 "spark-site2"
在这些文件中,我在 PHP 打开标签之后添加了一行,例如:
#!/usr/bin/env php
<?php
define('PUBFOLDER', str_replace('spark-', '', basename(__FILE__)));
并将 FCPATH 定义修改为:
define('FCPATH', __DIR__ . '/public' . DIRECTORY_SEPARATOR . PUBFOLDER . DIRECTORY_SEPARATOR);
有效。
我正在使用新的 CodeIgniter 4 开发网站(我使用的是 CodeIgniter 3),但我遇到了问题:
我在 1 个 CodeIgniter 系统上使用多个 public 文件夹来 运行 多个网站,例如:
public/site1/index.php
public/site2/index.php
等等
在 index.php(来自 CI4)中,我刚刚添加了以下行:
define('PUBFOLDER', basename(__DIR__));
并在 app/Config/Events.php 中添加了以下代码:
Events::on('pre_system', function () {
$configs = Database::connect(PUBFOLDER)
->table('option')
->get()
->getResult();
foreach($configs as $config)
{
config('App')->{$config->option_name} = $config->option_value;
}
});
(在这里找到:https://github.com/codeigniter4/CodeIgniter4/issues/1661#issuecomment-453723931)
当我导航时效果很好。
但现在我想使用 CLI 和 "spark",当我执行以下操作时:
php spark
我有一个逻辑错误:
Type: ErrorException
Message: Use of undefined constant PUBFOLDER - assumed 'PUBFOLDER' (this will throw an Error in a future version of PHP)
Filename: /home/www/ci4/www/app/Config/Events.php
那么我怎么才能告诉 spark 我想在 "site1" 中使用它呢?
感谢您的帮助!
只需找到一个解决方案:我已将 "spark" 文件复制到 "spark-site1" 和 "spark-site2"
在这些文件中,我在 PHP 打开标签之后添加了一行,例如:
#!/usr/bin/env php
<?php
define('PUBFOLDER', str_replace('spark-', '', basename(__FILE__)));
并将 FCPATH 定义修改为:
define('FCPATH', __DIR__ . '/public' . DIRECTORY_SEPARATOR . PUBFOLDER . DIRECTORY_SEPARATOR);
有效。