1

为了在我们的服务器上保持代码完整性,我们希望将 /vendor/* 目录保持在源代码控制之下,而不是每次我们推出到另一台服务器时都使用 composer 下载文件 - 即我们可以确定 /vendor/*文件是相同的。

我们对提交给源代码管理的所有文件运行语法检查器,并遇到以下错误:

文件 '/vendor/sensio/generator-bundle/Sensio/Bundle/GeneratorBundle/Resources/skeleton/bundle/Bundle.php' 未能通过 PHP 语法检查并出现以下错误:
PHP 解析错误:语法错误,意外的 '}',在第 3 行的 /vendor/sensio/generator-bundle/Sensio/Bundle/GeneratorBundle/Resources/skeleton/bundle/Bundle.php 中需要 T_NS_SEPARATOR

此文件中的“错误”是故意的吗?任何帮助表示赞赏。文件内容如下:

<?php
namespace {{ namespace }};

use Symfony\Component\HttpKernel\Bundle\Bundle;

class {{ bundle }} extends Bundle
{
}
4

2 回答 2

1

是的,这个文件中的“错误”是故意的,因为它并不是真正由 php “按原样”进行的。它是命令app/console generate:bundle用来生成包的模板。

So {{ namespace }} will be replaced by a real namespace and {{ bundle }} by the bundle name you choose when you generate the bundle.

于 2012-09-12T10:16:44.523 回答
0

首先,您必须检查是否php/bin在您的$PATH.

PATH=$PATH: /your/path/to/php/bin
export PATH

除了确保 PHP 可以使用 CLI 执行(在 shell 中exec)。

其次检查您的服务器要求,即运行 Sympony2:

您可以通过在 Symfony 发行版中运行 web/config.php 轻松查看您的系统是否满足所有要求。由于 CLI 经常使用不同的 php.ini 配置文件,因此从命令行通过以下方式检查您的要求也是一个好主意:

php app/check.php

必需的:

  1. PHP 需要是 PHP 5.3.2 的最低版本
  2. 需要启用 Sqlite3
  3. 需要启用 JSON
  4. 需要启用 ctype
  5. 你的 PHP.ini 需要有 date.timezone 设置

选修的:

  1. 您需要安装 PHP-XML 模块
  2. 您需要至少有 2.6.21 版本的 libxml
  3. 需要启用 PHP 标记器
  4. 需要启用mbstring函数
  5. 需要启用 iconv
  6. 需要启用 POSIX(仅在 *nix 上)
  7. Intl 需要安装 ICU 4+
  8. APC 3.0.17+(或需要安装其他操作码缓存)
  9. PHP.ini 推荐设置
    9.1。short_open_tag = 关闭
    9.2。magic_quotes_gpc = 关闭
    9.3。register_globals = 关闭
    9.4。session.autostart = 关闭

如果你想使用 Doctrine,你需要安装 PDO。此外,您需要为要使用的数据库服务器安装 PDO 驱动程序。

于 2012-09-12T09:25:12.697 回答