致命错误:在 ConnectionFactory.php 中找不到类 ConnectionWrapper

Posted

技术标签:

【中文标题】致命错误:在 ConnectionFactory.php 中找不到类 ConnectionWrapper【英文标题】:Fatal error: Class ConnectionWrapper not found in ConnectionFactory.php 【发布时间】:2015-12-19 17:37:56 【问题描述】:

我是Propel ORM 的新手。我将 ORM 安装到我的服务器上。我做了所有的配置。我的模型类已生成,我可以创建对象并调用它们的特定方法。

但是,当我尝试调用 propel 类的 save 方法时,它会在 apache 日志中打印 致命错误。您可以在下面看到日志错误:

致命错误:找不到类 ConnectionWrapper ConnectionFactory.php 第 46 行

这是我的composer.php 文件,它生成autoload.php 文件:


  "require": 
    "propel/propel": "~2.0@dev",
    "slim/slim": "2.*"
  ,
  "autoload": 
    "classmap": ["generated-classes/"]
   
 

这是我的test_service.php 文件,我称之为propel methods

<?php
require_once 'vendor/autoload.php';
require_once 'generated-conf/config.php';
echo "ENTERED"."\n";


$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));
echo $date."\n";

$customer = new Customer();
$customer->setName("Jason");
$customer->setSurname("Statham");
$customer->setType(2);
$customer->setEmail("jasonstatham@gmail.com");
$customer->setGender("Male");
$customer->setPassword("123");
$customer->setSignupDate($date);



echo $customer->getName()."\n";
echo $customer->getSurname()."\n";
echo $customer->getType()."\n";
echo $customer->getEmail()."\n";
echo $customer->getGender()."\n";
echo $customer->getPassword()."\n";
echo date_format($customer->getSignupDate(), 'Y-m-d H:i:s');
$customer->save();

echo "EXIT"."\n";

?>

在上面的代码中,Propel classgetset 方法可以正常工作。然而,当谈到

$customer->save();

apache 将错误打印到日志中。 这是对请求的响应:

ENTERED
1970-01-01 02:00:00
Jason
Statham
2
jasonstatham@gmail.com
Male
123
1970-01-01 02:00:00

我在这里想念什么? 谢谢。

【问题讨论】:

你在自动加载类吗?没有看到您的代码就很难排除故障... 【参考方案1】:

我解决了我的问题...

问题是由于propel.yaml文件包含数据库信息引起的:

propel:
 database:
  connections:
      test:
          adapter: mysql
          classname: Propel\Runtime\Connection\ConnectionWrapper
          dsn: "mysql:host=localhost;dbname=test"
          user: admin
          password: admin
          attributes:
runtime:
  defaultConnection: test
  connections:
      - test
  generator:
  defaultConnection: test
  connections:
      - test

这是解决问题的文件。一开始我把ConnectionWrapper类的系统路径写到类名里面,就是报错。它采用 ConnectionWrapper 类的命名空间关系。所以当我用命名空间关系改变它时,问题就解决了。

【讨论】:

以上是关于致命错误:在 ConnectionFactory.php 中找不到类 ConnectionWrapper的主要内容,如果未能解决你的问题,请参考以下文章

CAD2014总是出现致命错误

使命召唤14致命错误怎么解决?

打开AutoCAD 文件就会弹出致命错误

cad 2014安装后打开出现致命错误;unhandled access violation writing...

致命错误 Firebase 快照

steam上游戏打不开,说C盘上有致命错误?