为了账号安全,请及时绑定邮箱和手机立即绑定

CodeIgniter 4:带有多个公共文件夹的火花

CodeIgniter 4:带有多个公共文件夹的火花

PHP
慕尼黑5688855 2023-04-28 17:19:49
我正在使用新的 CodeIgniter 4 开发网站(我使用的是 CodeIgniter 3),但我遇到了一个问题:我使用多个公共文件夹在 1 个 CodeIgniter 系统上运行多个网站,例如:public/site1/index.phppublic/site2/index.phpETC。在 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:        ErrorExceptionMessage:     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”中使用它呢?谢谢你的帮助!
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

找到一个解决方案:我将“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);

有用。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信