【问题标题】:Propel ORM and PHP推动 ORM 和 PHP
【发布时间】:2016-06-01 10:46:06
【问题描述】:

我正在使用 propel ORM 制作一个 php 应用程序。当我尝试运行它时,它给了我以下消息:

致命错误:未捕获的错误:在 C:\MAMP\htdocs\Conference\vendor\bin\generated-conf\config.php:2 中找不到类“Propel\Runtime\Propel”:2 堆栈跟踪:#0 C:\ MAMP\htdocs\Conference\vendor\bin\list.php(6): require_once() #1 {main} 在第 2 行的 C:\MAMP\htdocs\Conference\vendor\bin\generated-conf\config.php 中抛出.

在我的config.php 生成的文件中我写了这个:

'classname' => '\\Propel\\Runtime\\Connection\\ConnectionWrapper'

这一切意味着什么?是我遗漏了一些文件还是什么?

【问题讨论】:

  • 您能解释一下您在项目中添加 Propel ORM 的方式吗?您使用了作曲家还是以某种方式手动添加了它?如果您使用 composer,您是否包含了运行时自动加载器 composer 生成的文件?

标签: php orm propel


【解决方案1】:

我认为您在建筑物中缺少一步。 我假设您的 schema.xml 文件已完成,并且您还正确配置了 propel.yaml(或允许的扩展文件)。另外,我假设您使用 Composer 获得了 Propel。 如果您拥有所有这些,那么接下来的步骤是:

1) 打开终端并进入你的项目目录,其中有 schema.xml 和 propel.yaml 文件。

2) 执行以下命令获取生成的sql(我必须在Windows上这样做):

c:\MAMP\htdocs\Conference\vendor\bin\propel sql:build

3) 使用以下命令获取模型类:

c:\MAMP\htdocs\Conference\vendor\bin\propel model:build

4) 生成类后,您必须自动加载它们。使用文本编辑器打开 composer.json 文件并添加以下内容:

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

它应该是这样的,例如:

{
    "require": {
        "twig/twig": "~1.0",
        "propel/propel": "~2.0@dev"
    },

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

5) 要完成类自动加载,您需要在控制台上执行:

composer dump-autoload

6) 对于运行时连接设置,在运行时为通信类运行此命令:

c:\MAMP\htdocs\Conference\vendor\bin\propel config:convert

7) 假设您已经创建了数据库,您需要做的最后一件事是创建表,这是使用以下命令:

c:\MAMP\htdocs\Conference\vendor\bin\propel sql:insert

你去吧!每次构建项目时,这对我都有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多