我试用几天来设置和使用Propel now 2.0。 PHP版本是5.4.4-14 + deb7u5
我做了什么:
0)新鲜的LAMP在/ var / www
中有一个“test”文件夹1)Composer.json与
{
"require": {
"propel/propel": "2.0.*@dev"
}
}
(也尝试使用主页中显示的alpha,没有成功,下载但我无法使用)
2)下载所有必要的文件。
3)我可以启动“vendor / bin / propel”并在一些绿色文本后退出。
4)我使用http://propelorm.org/documentation/02-buildtime.html
中指示的外键创建schema.xml5)我设置了buildtime.cconfiguration
6)我可以创建sql:build
和模型:build(我在generated-sql中找到bookstore.sql,在generated-classes中找到类)
7)我无法插入sql 。我启动sql:insert
,屏幕没有错误但数据库中没有插入(连接/密码没问题,双重检查)。
8)我在数据库中加载自己的SQL。
9)我创建了一个index.php:
<?php
// setup the autoloading
require_once 'vendor/autoload.php';
use Propel\Runtime\Propel;
use Propel\Runtime\Connection\ConnectionManagerSingle;
$serviceContainer = Propel::getServiceContainer();
$serviceContainer->setAdapterClass('bookstore', 'mysql');
$manager = new ConnectionManagerSingle();
$manager->setConfiguration(array (
'dsn' => 'mysql:host=localhost;dbname=my_db_name',
'user' => 'my_db_user',
'password' => 's3cr3t',
));
$serviceContainer->setConnectionManager('bookstore', $manager);
echo 'All ok, for now...';
$author = new Author();
$author->setFirstName('Jane');
$author->setLastName('Austen');
$author->save();
/* /end of php file */
正常打印回显但下一行脚本退出时出错500,而在Apache日志中我读到“未找到类作者”。
除了指南中的指示外,还有其他配置可以调整吗?
答案 0 :(得分:7)
我通过将其添加到我的composer.json然后再次运行安装来解决类似情况。
"autoload": {
"classmap": ["generated-classes/"]
}
答案 1 :(得分:2)
我也有这个错误。显然问题在于自动加载配置并运行php composer.phar dump-autoload
命令修复它。
php composer.phar dump-autoload
答案 2 :(得分:1)
如果你想解决这个问题,你应该结合jerrygarcuih和Abaobi Orajiaku的发型师。 谢谢你们。
将models文件夹添加到composer.json
"autoload": {
"classmap": ["generated-classes/"]
}
然后运行composer&#39; dump-autoload&#39;。
所有生成的类都应位于同一名称空间中。
答案 3 :(得分:1)
我有一个类似的问题。我通过包含类图的确切路径来解决它。
"autoload": {
"classmap": [
"path/to/generated-classes/",
"path/to/generated-classes/Base/",
"path/to/generated-classes/Map/"
]
}