Sim*_*Sca 5 php configuration propel autoload composer-php
我在php项目中使用Composer配置Propel时遇到问题.
这是我的树目录出现的方式:
project/
|--/public_html/index.php
|--/app/
| |--data/
| | |--propel.json
| | |--schema.xml
| |--vendor/
| |--composer.json
Run Code Online (Sandbox Code Playgroud)
在/ data /文件夹中,我将存储我的所有推进文件,即generated-classes /,generated-conf /和generated-sql /.
为了实现这个目的,使用/ data /文件夹中的终端,我按以下顺序放置命令:
$ propel sql:build
$ propel model:build
$ propel config:convert
Run Code Online (Sandbox Code Playgroud)
一切顺利.
为了做更合适的工作,在composer.json中我添加了这个额外的功能:
"autoload": {
"classmap": ["./data/generated-classes/"]
}
Run Code Online (Sandbox Code Playgroud)
所以,几乎在理论上,推杆
require '../app/vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
里面的index.php应该足够了.不幸的是,当我尝试在此页面中使用一个推进类时,返回错误
键入:Propel\Runtime\Exception\RuntimeException
消息:没有为数据库"my_api"定义连接.你忘了定义一个连接还是写错了?
文件:'C:\ pathToMyProject'\ project\app\vendor\propel\propel\src\Propel\Runtime\ServiceContainer\StandardServiceContainer.php
行:279
我认为propel没有找到存储在/ data /文件夹中的propel.json文件.
作为额外的,如果在index.php中,我只需添加
require_once '../app/data/generated-conf/config.php';
Run Code Online (Sandbox Code Playgroud)
一切顺利.
有没有使用这最后一个require_once自动加载推进的技巧?(显然保持原样).
谢谢阅读.
CLI命令的顺序很重要:
composer install或update获取推进composer dump-autoload --optimize您可以在应用程序的引导过程中包括配置文件-就像您已经拥有的一样。
或者,您可以使用filesComposers autoload部分中的指令来定义文件,该文件应包含在每个请求中。
引用:https : //getcomposer.org/doc/04-schema.md#files
"autoload": {
"files": ["./data/generated-conf/config.php"],
"classmap": ["./data/generated-classes/"]
}
Run Code Online (Sandbox Code Playgroud)