【发布时间】:2015-03-15 00:24:34
【问题描述】:
我在我的 php 项目中使用 Composer 配置 Propel 时遇到问题。
这就是我的树目录的显示方式:
project/
|--/public_html/index.php
|--/app/
| |--data/
| | |--propel.json
| | |--schema.xml
| |--vendor/
| |--composer.json
在 /data/ 文件夹中,我将存储我所有的推进文件,即 generate-classes/ 、 generated-conf/ 和 generated-sql/ 。
为了实现这个目的,在 /data/ 文件夹中使用终端,我将命令按以下顺序排列:
$ propel sql:build
$ propel model:build
$ propel config:convert
一切顺利。
为了做出更适合的工作,我在 composer.json 中添加了这个额外的功能:
"autoload": {
"classmap": ["./data/generated-classes/"]
}
所以,几乎在理论上,把
require '../app/vendor/autoload.php';
里面的 index.php 应该足够了。不幸的是,当我尝试在此页面中使用一个推进类时,返回错误
类型:Propel\Runtime\Exception\RuntimeException
消息:没有为数据库“my_api”定义连接。是忘记定义连接还是写错了?
文件:'C:\pathToMyProject'\project\app\vendor\propel\propel\src\Propel\Runtime\ServiceContainer\StandardServiceContainer.php
行:279
我以为 propel 找不到存储在 /data/folder 中的 propel.json 文件。
作为额外的,如果在 index.php 中,我只需添加
require_once '../app/data/generated-conf/config.php';
一切顺利。
在不使用最后一个 require_once 的情况下自动加载推进有一个技巧吗? (显然保持树原样)。
感谢阅读。
【问题讨论】:
-
也很好奇。
标签: php configuration composer-php propel autoload