排查Yii项目中「Class 'CMap' not found」错误
解决旧版Yii项目搭建时
CMap类找不到的错误 检查入口文件的框架引入路径
旧版Yii 1.x的核心类依赖入口文件手动引入框架核心,打开项目的web入口index.php或控制台入口yiic.php,确认是否正确引入了Yii框架文件:require_once(dirname(__FILE__) . '/framework/yii.php');验证
framework目录的实际路径是否和代码中一致,比如你的项目在C:\laragon\www\yii,那么framework目录应该存在于该路径下,且yii.php文件正常可读。确认Yii框架文件完整性
检查framework/collections/CMap.php文件是否存在,若该文件缺失,说明Yii框架包不完整。重新下载对应版本的Yii 1.x框架包,替换项目中的framework目录。配置Yii的类导入规则
在项目的config/main.php(web环境)或config/console.php(控制台环境)中,确保import数组包含system.collections.*,让Yii自动加载集合类:'import' => array( 'system.collections.*', // 其他必要的导入项 ),调整composer自动加载的引入顺序
若项目同时使用composer,确保在入口文件中先引入Yii核心文件,再引入composer的自动加载文件,避免Yii的自动加载机制被覆盖:// 先加载Yii核心 require_once(dirname(__FILE__) . '/framework/yii.php'); // 再加载composer依赖 require_once(dirname(__FILE__) . '/vendor/autoload.php');清除缓存
重启Laragon服务,同时检查PHP是否开启了opcache,若开启可临时关闭(修改php.ini中的opcache.enable=0),避免旧的类加载缓存导致问题。
内容的提问来源于stack exchange,提问作者kaushalya senarathna
相关产品推荐
相关产品推荐

