调用未定义的函数 CodeIgniter\locale_set_default() - Xampp

Pol*_*Pol 5 xampp codeigniter codeigniter-4

我正在尝试使用 Xampp 设置 Codeigniter4,但是当调用CodeIgniter4 框架文件http://localhost/projectfolder/public/index.php中所述的公共地址时,出现下一个错误:README.md

<br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function CodeIgniter\locale_set_default() in
C:\xampp\htdocs\codeigniter4\system\CodeIgniter.php:184
Stack trace:
#0 C:\xampp\htdocs\codeigniter4\system\bootstrap.php(181): CodeIgniter\CodeIgniter-&gt;initialize()
#1 C:\xampp\htdocs\codeigniter4\public\index.php(36): require('C:\\xampp\\htdocs...')
#2 {main}
thrown in <b>C:\xampp\htdocs\codeigniter4\system\CodeIgniter.php</b> on line <b>184</b><br />
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个解决方案,但它对我不起作用。

有人知道如何解决吗?

ste*_*gwa 7

问题的根源是您缺少 PHP 扩展。尤其:

请记住,框架的存储库 README.md 文件中明确说明了这一点。

服务器要求

需要 PHP 7.4 或更高版本,并安装以下扩展:

此外,请确保您的 PHP 中启用了以下扩展:

  • json(默认启用 - 不要将其关闭)
  • xml(默认启用 - 不要将其关闭)
  • mysqlnd

另外,这里还指出:

Bug:缺少函数 locale_set_default(...) #3171

请安装intl扩展 - 这是必需的组件。


Pol*_*Pol 1

我在这里找到了我的临时解决方案,没有更新 Xampp 中的 PHP 版本。

转到C:\xampp\htdocs\projectfolder\system\CodeIgniter.php - line 184并更改下一行。

前:

locale_set_default($this->config->defaultLocale ?? 'en');
Run Code Online (Sandbox Code Playgroud)

后:

if( function_exists('locale_set_default' ) ) :
    locale_set_default($this->config->defaultLocale ?? 'en');
    endif;
Run Code Online (Sandbox Code Playgroud)

当我将 Xampp 更新到 7.4 版本(在此处下载extension=intl)时,我只需要在文件中启用xampp\php\php.ini。正如此处所解释的,您只需取消注释 from ;extension=intlto行即可extension=intl

然后你就可以保持一C:\xampp\htdocs\projectfolder\system\CodeIgniter.php - line 184开始的样子。

locale_set_default($this->config->defaultLocale ?? 'en');
Run Code Online (Sandbox Code Playgroud)