推动 ORM 和 PHP

Propel ORM and PHP

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

Fatal error: Uncaught Error: Class 'Propel\Runtime\Propel' not found in C:\MAMP\htdocs\Conference\vendor\bin\generated-conf\config.php:2 Stack trace: #0 C:\MAMP\htdocs\Conference\vendor\bin\list.php(6): require_once() #1 {main} thrown in C:\MAMP\htdocs\Conference\vendor\bin\generated-conf\config.php on line 2.

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

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

这是什么意思?我是缺少某些文件还是什么?

我认为您在构建过程中漏掉了一步。 我假设您已完成 schema.xml 文件,并且还正确配置了 propel.yaml(或允许的扩展文件)。另外我假设你有 Propel with Composer。 如果您拥有所有这些,接下来的步骤是:

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

好了!每次我构建项目时,这对我都有效。