PHP 中的 Propel 和 Composer:无关联
Propel and Composer in PHP: no connection
我在 php 项目中使用 Composer 配置 Propel 时遇到问题。
这是我的树目录的显示方式:
project/
|--/public_html/index.php
|--/app/
| |--data/
| | |--propel.json
| | |--schema.xml
| |--vendor/
| |--composer.json
在 /data/ 文件夹中,我将存储所有推进文件,即 generated-类/ 、 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应该够了。不幸的是,当我尝试在此页面中使用一个推进器 类 时,returns 错误
Type: Propel\Runtime\Exception\RuntimeException
Message: No connection defined for database "my_api". Did you forget to define a connection or is it wrong written?
File: 'C:\pathToMyProject'\project\app\vendor\propel\propel\src\Propel\Runtime\ServiceContainer\StandardServiceContainer.php
Line: 279
我以为 propel 找不到存储在 /data/folder 中的 propel.json 文件。
另外,如果在 index.php 中,我只需添加
require_once '../app/data/generated-conf/config.php';
一切顺利。
有一个技巧可以在不使用最后一个的情况下自动加载推进器require_once? (显然保持树原样)。
感谢阅读。
CLI 命令的顺序很重要:
composer install
或 update
获取推进器
- 然后是使用 propel
生成模型的命令
- 然后使用
composer dump-autoload --optimize
重新扫描/重新生成自动加载文件
您可以在应用程序的 bootstrap 进程中包含配置文件 - 就像您已经拥有的那样。
或者您可以使用 Composers autoload
部分中的 files
指令
定义文件,该文件应包含在每个请求中。
引用:https://getcomposer.org/doc/04-schema.md#files
"autoload": {
"files": ["./data/generated-conf/config.php"],
"classmap": ["./data/generated-classes/"]
}
我在 php 项目中使用 Composer 配置 Propel 时遇到问题。
这是我的树目录的显示方式:
project/
|--/public_html/index.php
|--/app/
| |--data/
| | |--propel.json
| | |--schema.xml
| |--vendor/
| |--composer.json
在 /data/ 文件夹中,我将存储所有推进文件,即 generated-类/ 、 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应该够了。不幸的是,当我尝试在此页面中使用一个推进器 类 时,returns 错误
Type: Propel\Runtime\Exception\RuntimeException
Message: No connection defined for database "my_api". Did you forget to define a connection or is it wrong written?
File: 'C:\pathToMyProject'\project\app\vendor\propel\propel\src\Propel\Runtime\ServiceContainer\StandardServiceContainer.php
Line: 279
我以为 propel 找不到存储在 /data/folder 中的 propel.json 文件。
另外,如果在 index.php 中,我只需添加
require_once '../app/data/generated-conf/config.php';
一切顺利。
有一个技巧可以在不使用最后一个的情况下自动加载推进器require_once? (显然保持树原样)。
感谢阅读。
CLI 命令的顺序很重要:
composer install
或update
获取推进器- 然后是使用 propel 生成模型的命令
- 然后使用
composer dump-autoload --optimize
重新扫描/重新生成自动加载文件
您可以在应用程序的 bootstrap 进程中包含配置文件 - 就像您已经拥有的那样。
或者您可以使用 Composers
autoload
部分中的files
指令 定义文件,该文件应包含在每个请求中。引用:https://getcomposer.org/doc/04-schema.md#files
"autoload": { "files": ["./data/generated-conf/config.php"], "classmap": ["./data/generated-classes/"] }