无法使用Propel 2(未找到类)

时间:2013-11-02 10:52:30

标签: php orm propel

我试用几天来设置和使用Propel now 2.0。 PHP版本是5.4.4-14 + deb7u5

我做了什么:

0)新鲜的LAMP在/ var / www

中有一个“test”文件夹

1)Composer.json与

{
    "require": {
        "propel/propel": "2.0.*@dev"
    }
}

(也尝试使用主页中显示的alpha,没有成功,下载但我无法使用)

2)下载所有必要的文件。

3)我可以启动“vendor / bin / propel”并在一些绿色文本后退出。

4)我使用http://propelorm.org/documentation/02-buildtime.html

中指示的外键创建schema.xml

5)我设置了buildtime.cconfiguration

6)我可以创建sql:build和模型:build(我在generated-sql中找到bookstore.sql,在generated-classes中找到类)

7)我无法插入sql 。我启动sql:insert,屏幕没有错误但数据库中没有插入(连接/密码没问题,双重检查)。

8)我在数据库中加载自己的SQL。

9)我创建了一个index.php:

<?php
// setup the autoloading
require_once 'vendor/autoload.php';
use Propel\Runtime\Propel;
use Propel\Runtime\Connection\ConnectionManagerSingle;
$serviceContainer = Propel::getServiceContainer();
$serviceContainer->setAdapterClass('bookstore', 'mysql');
$manager = new ConnectionManagerSingle();
$manager->setConfiguration(array (
  'dsn'      => 'mysql:host=localhost;dbname=my_db_name',
  'user'     => 'my_db_user',
  'password' => 's3cr3t',
));
$serviceContainer->setConnectionManager('bookstore', $manager);

echo 'All ok, for now...';

$author = new Author();
$author->setFirstName('Jane');
$author->setLastName('Austen');
$author->save();

/* /end of php file */ 

正常打印回显但下一行脚本退出时出错500,而在Apache日志中我读到“未找到类作者”。

除了指南中的指示外,还有其他配置可以调整吗?

4 个答案:

答案 0 :(得分:7)

我通过将其添加到我的composer.json然后再次运行安装来解决类似情况。

 "autoload": { 
      "classmap": ["generated-classes/"] 
 } 

答案 1 :(得分:2)

我也有这个错误。显然问题在于自动加载配置并运行php composer.phar dump-autoload命令修复它。

php composer.phar dump-autoload

答案 2 :(得分:1)

如果你想解决这个问题,你应该结合jerrygarcuih和Abaobi Orajiaku的发型师。 谢谢你们。

将models文件夹添加到composer.json

 "autoload": { 
      "classmap": ["generated-classes/"] 
 } 

然后运行composer&#39; dump-autoload&#39;。

所有生成的类都应位于同一名称空间中。

答案 3 :(得分:1)

我有一个类似的问题。我通过包含类图的确切路径来解决它。

"autoload": {
    "classmap": [
        "path/to/generated-classes/",
        "path/to/generated-classes/Base/",
        "path/to/generated-classes/Map/"
    ]
}