Symfony2语法错误(在供应商文件中)


Symfony2 Syntax Errors (in vendor files)

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

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

文件"/vender/sensio/GeneratorBundle/sensio/bundle/GeneratorBundle/Resources/skelet/bundle/bundle.php"未通过php语法检查,出现以下错误:PHP分析错误:语法错误,意外的"}",第3行的/vender/sensio/generator bundle/sensio/bundle/GeneratorBundle/Resources/skelet/bundle/bundle.PHP中应为T_NS_SEPARATOR

这个文件中的"错误"是故意的吗?感谢您的帮助。以下文件内容:

<?php
namespace {{ namespace }};
use Symfony'Component'HttpKernel'Bundle'Bundle;
class {{ bundle }} extends Bundle
{
}

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

因此,{{ namespace }}将被一个真实的名称空间取代,{{ bundle }}将被您在生成bundle时选择的bundle名称取代。

首先必须检查php/bin是否在$PATH上。

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

此外,请确保PHP可以使用CLI执行(在带有exec的shell中)。

第二次检查您的服务器需求,这是为了运行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需要有日期时区设置

可选:

  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=关闭

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