소스 검색

[php] Symfony update to PHP 8.5 (#10322)

* [php] Symfony update to PHP 8.5

* Update and fix DbRawController
Joan Miquel 3 주 전
부모
커밋
844f0c8d57

+ 0 - 1
frameworks/PHP/symfony/config/packages/doctrine.yaml

@@ -11,7 +11,6 @@ doctrine:
             !php/const \PDO::ATTR_PERSISTENT: true
         url: '%env(resolve:DATABASE_URL)%'
     orm:
-        auto_generate_proxy_classes: true
         naming_strategy: doctrine.orm.naming_strategy.default
         auto_mapping: true
         mappings:

+ 0 - 1
frameworks/PHP/symfony/config/packages/prod/doctrine.yaml

@@ -1,6 +1,5 @@
 doctrine:
     orm:
-        auto_generate_proxy_classes: false
         metadata_cache_driver:
             type: pool
             pool: doctrine.system_cache_pool

+ 9 - 9
frameworks/PHP/symfony/src/Controller/DbRawController.php

@@ -3,7 +3,6 @@
 namespace App\Controller;
 
 use Doctrine\DBAL\Connection;
-use Doctrine\DBAL\FetchMode;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Annotation\Route;
@@ -22,8 +21,7 @@ class DbRawController
 
     public function db(): JsonResponse
     {
-        $statement = $this->connection->prepare('SELECT id,randomNumber FROM World WHERE id = ?');
-        $world = $statement->execute([mt_rand(1, 10000)]);
+        $world = $this->connection->executeQuery('SELECT id,randomNumber FROM World WHERE id = ?', [mt_rand(1, 10000)]);
 
         return new JsonResponse($world->fetchAssociative());
     }
@@ -40,7 +38,8 @@ class DbRawController
 
         $statement = $this->connection->prepare('SELECT id,randomNumber FROM World WHERE id = ?');
         for ($i = 0; $i < $queries; ++$i) {
-            $world = $statement->execute([mt_rand(1, 10000)]);
+            $statement->bindValue(1, mt_rand(1, 10000));
+            $world = $statement->executeQuery();
             $worlds[] = $world->fetchAssociative();
         }
 
@@ -61,11 +60,12 @@ class DbRawController
 
         for ($i = 0; $i < $queries; ++$i) {
             $id = mt_rand(1, 10000);
-            $world = $readStatement->execute([$id]);
-            $world =  $world->fetchAssociative();
-            $writeStatement->execute(
-                [$world['randomNumber'] = mt_rand(1, 10000), $id]
-            );
+            $readStatement->bindValue(1, $id);
+            $world = $readStatement->executeQuery();
+            $world = $world->fetchAssociative();
+            $writeStatement->bindValue(1, mt_rand(1, 10000));
+            $writeStatement->bindValue(2, $id);
+            $writeStatement->executeStatement();
             $worlds[] = $world;
         }
 

+ 1 - 2
frameworks/PHP/symfony/symfony-franken.dockerfile

@@ -1,8 +1,7 @@
-FROM dunglas/frankenphp:php8.4
+FROM dunglas/frankenphp:php8.5
 
 # add additional extensions here:
 RUN install-php-extensions \
-    opcache \
     pdo_pgsql \
     zip > /dev/null
 

+ 7 - 7
frameworks/PHP/symfony/symfony-mysql.dockerfile

@@ -7,27 +7,27 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 RUN apt-get install -yqq nginx git unzip curl \
-    php8.4-cli php8.4-fpm php8.4-mysql  \
-    php8.4-mbstring php8.4-xml php8.4-curl > /dev/null
+    php8.5-cli php8.5-fpm php8.5-mysql  \
+    php8.5-mbstring php8.5-xml php8.5-curl > /dev/null
 
 COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer
 
-COPY --link deploy/conf/* /etc/php/8.4/fpm/
+COPY --link deploy/conf/* /etc/php/8.5/fpm/
 WORKDIR /symfony
 COPY --link . .
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.4/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.5/fpm/php-fpm.conf ; fi;
 
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --no-scripts --quiet
 RUN cp deploy/mysql/.env . && composer dump-env prod && bin/console cache:clear
 
-RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.4/fpm/php.ini
+RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.5/fpm/php.ini
 
 EXPOSE 8080
 
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
-# RUN echo "catch_workers_output = yes" >> /etc/php/8.4/fpm/php-fpm.conf
+# RUN echo "catch_workers_output = yes" >> /etc/php/8.5/fpm/php-fpm.conf
 
 RUN mkdir -p /run/php
-CMD service php8.4-fpm start && \
+CMD service php8.5-fpm start && \
     nginx -c /symfony/deploy/nginx.conf

+ 7 - 7
frameworks/PHP/symfony/symfony-raw.dockerfile

@@ -7,27 +7,27 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 RUN apt-get install -yqq nginx git unzip curl \
-    php8.4-cli php8.4-fpm php8.4-pgsql  \
-    php8.4-mbstring php8.4-xml php8.4-curl > /dev/null
+    php8.5-cli php8.5-fpm php8.5-pgsql  \
+    php8.5-mbstring php8.5-xml php8.5-curl > /dev/null
 
 COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer
 
-COPY --link deploy/conf/* /etc/php/8.4/fpm/
+COPY --link deploy/conf/* /etc/php/8.5/fpm/
 WORKDIR /symfony
 COPY --link . .
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.4/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.5/fpm/php-fpm.conf ; fi;
 
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --no-scripts --quiet
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 
-RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.4/fpm/php.ini
+RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.5/fpm/php.ini
 
 EXPOSE 8080
 
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
-# RUN echo "catch_workers_output = yes" >> /etc/php/8.4/fpm/php-fpm.conf
+# RUN echo "catch_workers_output = yes" >> /etc/php/8.5/fpm/php-fpm.conf
 
 RUN mkdir -p /run/php
-CMD service php8.4-fpm start && \
+CMD service php8.5-fpm start && \
     nginx -c /symfony/deploy/nginx.conf

+ 2 - 2
frameworks/PHP/symfony/symfony-react.dockerfile

@@ -1,8 +1,8 @@
-FROM php:8.4-cli
+FROM php:8.5-cli
 
 RUN apt-get update -yqq && \
     apt-get install -yqq libpq-dev libicu-dev git > /dev/null && \
-    docker-php-ext-install pdo_pgsql opcache intl pcntl > /dev/null
+    docker-php-ext-install pdo_pgsql intl pcntl > /dev/null
 
 COPY --link deploy/swoole/php.ini /usr/local/etc/php/
 WORKDIR /symfony

+ 1 - 2
frameworks/PHP/symfony/symfony-roadrunner.dockerfile

@@ -1,4 +1,4 @@
-FROM php:8.4-cli
+FROM php:8.5-cli
 
 COPY --from=ghcr.io/roadrunner-server/roadrunner:2025.1 --link /usr/bin/rr /usr/local/bin/rr
 COPY --from=mlocati/php-extension-installer --link /usr/bin/install-php-extensions /usr/local/bin/
@@ -6,7 +6,6 @@ COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/compose
 
 RUN install-php-extensions \
     intl \
-    opcache \
     pdo_pgsql \
     sockets \
     zip > /dev/null

+ 4 - 4
frameworks/PHP/symfony/symfony-workerman.dockerfile

@@ -7,12 +7,12 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 RUN apt-get install -yqq unzip \
-    php8.4-cli php8.4-pgsql php8.4-mbstring php8.4-xml php8.4-curl > /dev/null
+    php8.5-cli php8.5-pgsql php8.5-mbstring php8.5-xml php8.5-curl > /dev/null
 
 COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer
 
-RUN apt-get install -y php-pear php8.4-dev libevent-dev > /dev/null && \
-    pecl install event-3.1.4 > /dev/null && echo "extension=event.so" > /etc/php/8.4/cli/conf.d/event.ini
+RUN apt-get install -y php-pear php8.5-dev libevent-dev > /dev/null && \
+    pecl install event-3.1.4 > /dev/null && echo "extension=event.so" > /etc/php/8.5/cli/conf.d/event.ini
 
 WORKDIR /symfony
 COPY --link . .
@@ -20,7 +20,7 @@ COPY --link . .
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --no-scripts --quiet
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 
-COPY --link deploy/conf/cli-php.ini /etc/php/8.4/cli/conf.d/20-adapterman.ini
+COPY --link deploy/conf/cli-php.ini /etc/php/8.5/cli/conf.d/20-adapterman.ini
 
 EXPOSE 8080
 

+ 7 - 7
frameworks/PHP/symfony/symfony.dockerfile

@@ -7,28 +7,28 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 RUN apt-get install -yqq nginx git unzip curl \
-    php8.4-bcmath php8.4-cli php8.4-fpm php8.4-pgsql  \
-    php8.4-mbstring php8.4-xml php8.4-curl php8.4-intl > /dev/null
+    php8.5-bcmath php8.5-cli php8.5-fpm php8.5-pgsql  \
+    php8.5-mbstring php8.5-xml php8.5-curl php8.5-intl > /dev/null
 
 COPY --from=composer/composer:latest-bin --link /composer /usr/local/bin/composer
 
-COPY --link deploy/conf/* /etc/php/8.4/fpm/
+COPY --link deploy/conf/* /etc/php/8.5/fpm/
 
 WORKDIR /symfony
 COPY --link . .
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.4/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.5/fpm/php-fpm.conf ; fi;
 
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --no-scripts --quiet
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 
-RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.4/fpm/php.ini
+RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.5/fpm/php.ini
 
 EXPOSE 8080
 
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
-# RUN echo "catch_workers_output = yes" >> /etc/php/8.4/fpm/php-fpm.conf
+# RUN echo "catch_workers_output = yes" >> /etc/php/8.5/fpm/php-fpm.conf
 
 RUN mkdir -p /run/php
-CMD service php8.4-fpm start && \
+CMD service php8.5-fpm start && \
     nginx -c /symfony/deploy/nginx.conf