作曲家更新和 PHP 短标记



我遇到了作曲家和PHP短标签的问题<?

在下面使用此代码。

<?
namespace SPACENAME;
class generic_class {
private $class_name = 'this_is_a_test';
/**
* This function is used to return the class name property.
*/
public function some_function() {
return true;
}
}
?>

如果你注意到,我们有一个名为generic_class的类和一个包含单词类名的注释,并且正在使用 PHP 的短标签<?

当我进行作曲家更新时,我的自动加载类显示以下内容:

<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'SPACENAMEname' => $vendorDir . '/the/path/to/generic_class.php'
);
?>

它似乎在注释中选择了类一词,并将其视为类定义,而不是使用generic_class的实际类定义。但是,如果我<?php使用 PHP 的完整标签,那么这个问题就不会发生,我的自动加载类是正确的。

<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'SPACENAMEgeneric_class' => $vendorDir . '/the/path/to/generic_class.php'
);
?>

因此,在某种程度上,我通过将短标签交换为完整标签来解决此问题。但是,我目前在一个相当大的团队中工作,他们都在同一项目中使用作曲家,并且没有遇到短标签的问题。我看不到我能够改变他们对短标签的用法/意见,所以我希望有人有一个解决方案,或者至少有一个答案,为什么这可能发生在我的机器上而不是其他人?

我确实尝试在谷歌上搜索答案,但一无所获,是否有作曲家设置可以阻止它将短标签识别为有效的 php,因此它无法知道什么是代码和什么是注释?

可能有帮助的信息

  • 我们都有相同的操作系统(Windows)。

  • 我们都在同一个版本的作曲家身上。

  • 我们都在同一个代码库中工作。

  • 目前我们有8个人在做这个项目。

  • 我们都有不同的PHP服务器设置,我是唯一一个 使用 WAMPSERVER 3。

基本上,您只需要在配置中禁用短标签即可。刚刚设置

short_open_tag=0

在你的php.ini.请注意:comped使用的php解释器有时与Apache版本有不同的php.ini

请参阅: http://php.net/manual/en/ini.core.php#ini.short-open-tag

相关内容

  • 没有找到相关文章

最新更新