如何为 symfony2 框架配置 $this->cwd

How do I configure $this->cwd for symfony2 framework

我是 Symfony 的新手,我被分配了一个 Symfony 2 project.Now 我在使用 app/console server:run.

时遇到了一些问题

该项目是一个工作系统,因此问题应该是因为我对 Symfony 框架的了解有限。

这就是我不断得到的

proc_open() : CreateProcess failed, error code - 267 in C:\xampp\htdocs\xxx\vendor\symfony\symfony\src\Symfony\Component\Process\Process.php on line 246.

第246行是这部分

  $this->process = proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $this->env, $this->options);

我尝试将 $this->cwd 更改为 "C:/xampp/htdocs/xxx",它可以运行,但它会出现另一个问题,这是在我访问 localhost:8000 之后,它显示了这个

Warning: require(app_dev.php): failed to open stream: No such file or directory in C:\xampp\xxx\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Resources\config\router_dev.php on line 30


Fatal error: require(): Failed opening required 'app_dev.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\xxx\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Resources\config\router_dev.php on line 30

有什么问题吗?

编辑:

我已经按照 Matteo 的建议更新了所有文件,供应商提出了一些问题,我已经解决了新问题(希望如此)。但是现在我陷入了另一个问题

The given document root directory "C:/xampp/htdocs/xxx/app/../web" does not exist. 

如评论中所述,我没有名为 "web" 的文件夹。它已重命名为 public。我已经更改了 composer.json 但它似乎没有任何作用。

{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
    "psr-0": { "": "src/" }
},
"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "~2.4",
    "doctrine/orm": "~2.2,>=2.2.3",
    "doctrine/doctrine-bundle": "~1.2",
    "twig/extensions": "~1.0",
    "symfony/assetic-bundle": "~2.3",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.4",
    "sensio/distribution-bundle": "~2.3",
    "sensio/framework-extra-bundle": "~3.0",
    "sensio/generator-bundle": "~2.3",
    "incenteev/composer-parameter-handler": "~2.0",
    "richsage/rms-push-notifications-bundle": "dev-master",
    "friendsofsymfony/user-bundle": "~1.3",
    "ircmaxell/password-compat": "~1.0.3"
},
"scripts": {
    "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"
    ],
    "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"
    ]
},
"config": {
    "bin-dir": "bin"
},
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "public",
    "incenteev-parameters": {
        "file": "app/config/parameters.yml"
    },
    "branch-alias": {
        "dev-master": "2.4-dev"
    }
}
}

如果我在 cmd 中输入 app/console --version,它会显示 Symfony 版本 2.6.1 - app/dev/debug

请帮帮我。

here所述,这是一个错误。它在当前框架版本(2.6.1)中得到解决。

所以解决办法就是升级到当前版本。您可以在 github repo 上的升级文件中验证是否发生了某些更改,但没有 BC(中断兼容性)。

此外,您当前的框架版本 (2.4.2) 不受支持,因此是执行此任务的好时机。

总的来说,升级到框架的最新稳定版本是一个很好的做法。查看发布过程的sf2 release roadmap和各种框架版本的支持结束。

希望对您有所帮助