Browse Source

[comet] Update to PHP8 (#6303)

* [comet] Update to PHP8
with JIT

* Fix variables to int
Joan Miquel 4 years ago
parent
commit
fa5289bcd7

+ 4 - 4
frameworks/PHP/comet/comet-mysql.dockerfile

@@ -1,18 +1,18 @@
-FROM ubuntu:20.04
+FROM ubuntu:20.10
 
 ARG DEBIAN_FRONTEND=noninteractive
 
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq php7.4 php7.4-common php7.4-cli php7.4-xml php7.4-mysql  > /dev/null
+    apt-get install -yqq php8.0-cli php8.0-xml php8.0-mysql  > /dev/null
 
 RUN apt-get install -yqq composer > /dev/null
 
 RUN apt-get install -y php-pear php-dev libevent-dev > /dev/null
-RUN printf "\n\n /usr/lib/x86_64-linux-gnu/\n\n\nno\n\n\n" | pecl install event > /dev/null && echo "extension=event.so" > /etc/php/7.4/cli/conf.d/event.ini
+RUN pecl install event-3.0.2 > /dev/null && echo "extension=event.so" > /etc/php/8.0/cli/conf.d/event.ini
 
-COPY php.ini /etc/php/7.4/cli/php.ini
+COPY php.ini /etc/php/8.0/cli/php.ini
 
 ADD ./ /comet
 WORKDIR /comet

+ 4 - 6
frameworks/PHP/comet/comet.dockerfile

@@ -1,24 +1,22 @@
-FROM ubuntu:20.04
+FROM ubuntu:20.10
 
 ARG DEBIAN_FRONTEND=noninteractive
 
 RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /dev/null
 RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 RUN apt-get update -yqq > /dev/null && \
-    apt-get install -yqq php7.4 php7.4-common php7.4-cli php7.4-pgsql php7.4-xml > /dev/null
+    apt-get install -yqq php8.0-cli php8.0-pgsql php8.0-xml > /dev/null
 
 RUN apt-get install -yqq composer > /dev/null
 
 RUN apt-get install -y php-pear php-dev libevent-dev > /dev/null
-RUN printf "\n\n /usr/lib/x86_64-linux-gnu/\n\n\nno\n\n\n" | pecl install event > /dev/null && echo "extension=event.so" > /etc/php/7.4/cli/conf.d/event.ini
+RUN pecl install event-3.0.2 > /dev/null && echo "extension=event.so" > /etc/php/8.0/cli/conf.d/event.ini
 
-COPY php.ini /etc/php/7.4/cli/php.ini
+COPY php.ini /etc/php/8.0/cli/php.ini
 
 ADD ./ /comet
 WORKDIR /comet
 
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
 
-EXPOSE 8080
-
 CMD php /comet/app.php start

+ 3 - 0
frameworks/PHP/comet/php.ini

@@ -8,3 +8,6 @@ opcache.huge_code_pages=1
 mysqlnd.collect_statistics = Off
 
 memory_limit = 512M
+
+opcache.jit_buffer_size=128M
+opcache.jit=tracing

+ 1 - 1
frameworks/PHP/comet/src/Controllers/QueryController.php

@@ -13,7 +13,7 @@ class QueryController
     public function __invoke(Request $request, Response $response, $args)    
     {
     	$queryParams = $request->getQueryParams();
-    	$q = $queryParams['q'] ?? 0;
+    	$q = (int) $queryParams['q'] ?? 0;
         $query_count = $q > 1 ? min($q, 500) : 1;
 
     	while ($query_count--) {

+ 1 - 1
frameworks/PHP/comet/src/Controllers/UpdateController.php

@@ -13,7 +13,7 @@ class UpdateController
     public function __invoke(Request $request, Response $response, $args)    
     {
     	$queryParams = $request->getQueryParams();
-    	$q = $queryParams['q'] ?? 0;
+    	$q = (int) $queryParams['q'] ?? 0;
         $query_count = $q > 1 ? min($q, 500) : 1;
 
 		// TODO Speedup with signle transaction?