如何将此库:https://github.com/troydavisson/PHRETS
包含在symfony项目中?
这是我的composer.json:
{
"name": "marysalcedo/reactive-pandora",
"license": "proprietary",
"type": "project",
"autoload": {
"psr-0": {
"": "src/",
"SymfonyStandard": "app/"
},
"files": []
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.6.*",
"doctrine/orm": "~2.2,>=2.2.3,<2.5",
"doctrine/dbal": "<2.5",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~3.0,>=3.0.12",
"sensio/framework-extra-bundle": "~3.0,>=3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"doctrine/mongodb-odm": "1.0.*@dev",
"doctrine/mongodb-odm-bundle": "3.0.*@dev",
"maciejczyzewski/bottomline": "*",
"doctrine/doctrine-fixtures-bundle": "2.2.*",
"troydavisson/phrets": "2.*"
},
"minimum-stability": "dev",
"require-dev": {
"sensio/generator-bundle": "~2.3"
},
"scripts": {
"post-root-package-install": [
"SymfonyStandard\\Composer::hookRootPackageInstall"
],
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-update-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
]
},
"config": {
"bin-dir": "bin"
},
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
}
}
}
每当我尝试使用对象\ PHRETS \ Configuration时,我都会收到错误:
new \PHRETS\Configuration();
这是我回来的错误:
[Symfony\Component\Debug\Exception\ClassNotFoundException]
Attempted to load class "Configuration" from namespace "PHRETS".
Did you forget a "use" statement for e.g.
为什么不包含它?
答案 0 :(得分:1)
你绝对确定你确实安装了这个包吗?
1)我使用了基于作曲家的自定义项目,并尝试创建该类的新实例并且它有效。输出低于。
2)然后我安装了Symfony2
(v2.6
)的新副本和包。尝试创建实例,它也运行良好。
试试这个:
php composer.phar update
然后在你的控制器中:
$c = new \PHRETS\Configuration();
var_dump($c);
我的设置输出:
object(PHRETS\Configuration)[570]
protected 'username' => null
protected 'password' => null
protected 'login_url' => null
protected 'user_agent' => string 'PHRETS/2.0' (length=10)
protected 'user_agent_password' => null
protected 'rets_version' =>
object(PHRETS\Versions\RETSVersion)[571]
protected 'number' => string '1.5' (length=3)
protected 'valid_versions' =>
array (size=5)
0 => string '1.5' (length=3)
1 => string '1.7' (length=3)
2 => string '1.7.1' (length=5)
3 => string '1.7.2' (length=5)
4 => string '1.8' (length=3)
protected 'http_authentication' => string 'digest' (length=6)
protected 'strategy' => null
protected 'options' =>
array (size=0)
empty
只是为了澄清关于use
陈述的混淆。
use
时,无需使用FQN
。 如果省略前导反斜杠,PHP将尝试在与{namespace}匹配的use
语句中找到别名。如果没有找到,它将假定当前类的命名空间。采用众所周知的Doctrine
映射示例:
use `Doctrine\ORM\Mapping` as ORM
....
@ORM\Column() // This resolves to `Doctrine\ORM\Mapping\Column` `FQN`
如果您只使用类名(例如Configuration
)use
语句是强制性的。