SF4和x2B;docker:Proxymanager错误:语法错误,意外'';,期望函数(T_函数)或常数(T_常数)
我在我的分支上遇到了一个奇怪的错误。 我用的是docker和symfony 4 昨天,我首先犯了这个错误(不知从哪里冒出来): 然后,在我和我的同事试图修复前一个问题后,出现了下面的第二个错误(我记得我们做了一个composer更新,如果我没有错的话,但我不太确定是否记住了所有内容…) 在ProxyManager的configuration.php中:SF4和x2B;docker:Proxymanager错误:语法错误,意外'';,期望函数(T_函数)或常数(T_常数),docker,symfony,symfony4,Docker,Symfony,Symfony4,我在我的分支上遇到了一个奇怪的错误。 我用的是docker和symfony 4 昨天,我首先犯了这个错误(不知从哪里冒出来): 然后,在我和我的同事试图修复前一个问题后,出现了下面的第二个错误(我记得我们做了一个composer更新,如果我没有错的话,但我不太确定是否记住了所有内容…) 在ProxyManager的configuration.php中: class Configuration { public const DEFAULT_PROXY_NAMESPACE = 'Prox
class Configuration
{
public const DEFAULT_PROXY_NAMESPACE = 'ProxyManagerGeneratedProxy';
protected ?string $proxiesTargetDir;
protected string $proxiesNamespace = self::DEFAULT_PROXY_NAMESPACE;
protected ?GeneratorStrategyInterface $generatorStrategy;
protected ?AutoloaderInterface $proxyAutoloader;
protected ?ClassNameInflectorInterface $classNameInflector;
protected ?SignatureGeneratorInterface $signatureGenerator;
protected ?SignatureCheckerInterface $signatureChecker;
protected ?ClassSignatureGeneratorInterface $classSignatureGenerator;
public function setProxyAutoloader(AutoloaderInterface $proxyAutoloader) : void
{
$this->proxyAutoloader = $proxyAutoloader;
}
public function getProxyAutoloader() : AutoloaderInterface
{
return $this->proxyAutoloader
?? $this->proxyAutoloader = new Autoloader(
new FileLocator($this->getProxiesTargetDir()),
$this->getClassNameInflector()
);
}
DockerFile:
在DockerFile中,我们还尝试将php容器从7.3更新为7.4
FROM php:fpm-alpine
到
但是如果我使用php-v,它仍然在PHP7.3上。
也许这就是为什么我们上面有错误
DockerFile现在:
FROM devilbox/php-fpm-7-4:latest
RUN apk add --update --no-cache \
coreutils \
php7-fpm \
php7-apcu \
php7-ctype \
php7-curl \
php7-dom \
php7-gd \
php7-iconv \
php7-imagick \
php7-json \
php7-intl \
php7-mcrypt \
php7-fileinfo\
php7-mbstring \
php7-opcache \
php7-openssl \
php7-pdo \
php7-pdo_mysql \
php7-mysqli \
php7-xml \
php7-zlib \
php7-phar \
php7-tokenizer \
php7-session \
php7-simplexml \
php7-xdebug \
php7-zip \
php7-xmlwriter \
make \
curl
RUN docker-php-ext-install pdo pdo_mysql # solve "could not find driver" error.
RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
&& curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
&& php composer-setup.php && rm composer-setup.php* \
&& chmod +x composer.phar && mv composer.phar /usr/bin/composer
CMD ["php-fpm"]
EXPOSE 9000
如果我在另一个分支上签出,我也会遇到同样的问题,总是语法错误。
我对SF和docker非常陌生(我没有在项目中安装自己)
如果有人有任何想法,那就太好了。非常感谢您的时间和帮助。您真的重新构建了容器吗?问题确实是,您仍然在使用7.3,并且直到7.4才支持类型化属性,因此,如果您想继续使用此版本的symfony组件,请确保重新构建您的容器。感谢您的回复!是的,我们需要重建,你说得对。我的同事将DockerFile
中的图像从php:7.4.2-fpm-alpine
更改为以下命令:docker compose build——无缓存——pull
一切正常,我的项目返回:D
FROM devilbox/php-fpm-7-4:latest
RUN apk add --update --no-cache \
coreutils \
php7-fpm \
php7-apcu \
php7-ctype \
php7-curl \
php7-dom \
php7-gd \
php7-iconv \
php7-imagick \
php7-json \
php7-intl \
php7-mcrypt \
php7-fileinfo\
php7-mbstring \
php7-opcache \
php7-openssl \
php7-pdo \
php7-pdo_mysql \
php7-mysqli \
php7-xml \
php7-zlib \
php7-phar \
php7-tokenizer \
php7-session \
php7-simplexml \
php7-xdebug \
php7-zip \
php7-xmlwriter \
make \
curl
RUN docker-php-ext-install pdo pdo_mysql # solve "could not find driver" error.
RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
&& curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
&& php composer-setup.php && rm composer-setup.php* \
&& chmod +x composer.phar && mv composer.phar /usr/bin/composer
CMD ["php-fpm"]
EXPOSE 9000