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

xv8emn3q  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(127)

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

<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 />

我试过这个solution,但它不适合我。
有人知道怎么解决吗?

utugiqy6

utugiqy61#

问题的根源在于缺少PHP扩展。具体来说:

请记住,这在框架的存储库www.example.com文件中清楚地说明README.md了。
服务器要求
需要PHP 7.4或更高版本,并安装以下扩展:

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

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

此外,这里还指出:
错误:缺少函数locale_set_default(...)#3171
请安装intl扩展-这是必需组件。

a14dhokn

a14dhokn2#

我在这里找到了我的临时解决方案,没有更新Xampp中的PHP版本。
转到C:\xampp\htdocs\projectfolder\system\CodeIgniter.php - line 184并更改下一行。
之前:

locale_set_default($this->config->defaultLocale ?? 'en');

之后:

if( function_exists('locale_set_default' ) ) :
    locale_set_default($this->config->defaultLocale ?? 'en');
    endif;

当我将Xampp更新到7.4版本(download here)时,我只需要在xampp\php\php.ini文件中启用extension=intl。正如here所解释的,您只需要取消注解从;extension=intlextension=intl的行。
然后,您可以将C:\xampp\htdocs\projectfolder\system\CodeIgniter.php - line 184保留为开始时的状态。

locale_set_default($this->config->defaultLocale ?? 'en');

相关问题