Browse Source

[Ubiquity] Update to PHP 8 (#6187)

* update php version to 8.0

* set default fetch mode

* remove DbTrait

* remove DbTrait usage
J-C HERON 4 years ago
parent
commit
e7aaae2747

+ 1 - 2
frameworks/PHP/ubiquity/app/controllers/Cache.php

@@ -7,7 +7,6 @@ use controllers\utils\DbTrait;
  * Bench controller.
  */
 class Cache extends \Ubiquity\controllers\Controller {
-	use DbTrait;
 
 	protected $cache;
 
@@ -23,7 +22,7 @@ class Cache extends \Ubiquity\controllers\Controller {
 
 	public function cachedquery($queries = 1) {
 		$worlds = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 		while ($count --) {
 			$worlds[] = ($this->cache->fetch('models\\CachedWorld', \mt_rand(1, 10000)))->_rest;
 		}

+ 2 - 4
frameworks/PHP/ubiquity/app/controllers/Db.php

@@ -3,13 +3,11 @@ namespace controllers;
 
 use Ubiquity\orm\SDAO;
 use models\World;
-use controllers\utils\DbTrait;
 
 /**
  * Bench controller.
  */
 class Db extends \Ubiquity\controllers\Controller {
-	use DbTrait;
 
 	public function __construct() {}
 
@@ -26,7 +24,7 @@ class Db extends \Ubiquity\controllers\Controller {
 
 	public function query($queries = 1) {
 		$worlds = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 		for ($i = 0; $i < $count; ++ $i) {
 			$worlds[] = (SDAO::getById(World::class, [
 				'id' => \mt_rand(1, 10000)
@@ -38,7 +36,7 @@ class Db extends \Ubiquity\controllers\Controller {
 	public function update($queries = 1) {
 		$worlds = [];
 
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 		$ids = $this->getUniqueRandomNumbers($count);
 		foreach ($ids as $id) {
 			$world = SDAO::getById(World::class, [

+ 1 - 1
frameworks/PHP/ubiquity/app/controllers/DbMongo.php

@@ -16,7 +16,7 @@ class DbMongo extends Db_ {
 
 	public function update($queries = 1) {
 		$worlds = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 		$ids = $this->getUniqueRandomNumbers($count);
 		foreach ($ids as $id) {
 			$world = self::$pDao->execute([

+ 1 - 1
frameworks/PHP/ubiquity/app/controllers/DbMy.php

@@ -10,7 +10,7 @@ class DbMy extends Db_ {
 
 	public function update($queries = 1) {
 		$worlds = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 		$ids = $this->getUniqueRandomNumbers($count);
 		foreach ($ids as $id) {
 			$world = self::$pDao->execute([

+ 2 - 3
frameworks/PHP/ubiquity/app/controllers/DbRaw.php

@@ -7,7 +7,6 @@ use controllers\utils\DbTrait;
  * Bench controller.
  */
 class DbRaw extends \Ubiquity\controllers\Controller {
-	use DbTrait;
 
 	protected static $statement;
 
@@ -44,7 +43,7 @@ class DbRaw extends \Ubiquity\controllers\Controller {
 
 	public function query($queries = 1) {
 		$worlds = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 		while ($count --) {
 			self::$statement->execute([
 				\mt_rand(1, 10000)
@@ -57,7 +56,7 @@ class DbRaw extends \Ubiquity\controllers\Controller {
 	public function update($queries = 1) {
 		$worlds = [];
 		$keys = $values = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 		for ($i = 0; $i < $count; ++ $i) {
 			$values[] = $keys[] = $id = \mt_rand(1, 10000);
 			self::$statement->execute([

+ 3 - 3
frameworks/PHP/ubiquity/app/controllers/Db_.php

@@ -9,7 +9,7 @@ use controllers\utils\DbAsyncTrait;
  * Bench controller.
  */
 class Db_ extends \Ubiquity\controllers\Controller {
-	use DbTrait,DbAsyncTrait;
+	use DbAsyncTrait;
 
 	public function index() {
 		echo \json_encode(self::$pDao->execute([
@@ -19,7 +19,7 @@ class Db_ extends \Ubiquity\controllers\Controller {
 
 	public function query($queries = 1) {
 		$worlds = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 
 		while ($count --) {
 			$worlds[] = (self::$pDao->execute([
@@ -31,7 +31,7 @@ class Db_ extends \Ubiquity\controllers\Controller {
 
 	public function update($queries = 1) {
 		$worlds = [];
-		$count = $this->getCount($queries);
+		$count = \min(\max((int) $queries, 1), 500);
 
 		while ($count --) {
 			$world = self::$pDao->execute([

+ 0 - 15
frameworks/PHP/ubiquity/app/controllers/utils/DbTrait.php

@@ -1,15 +0,0 @@
-<?php
-namespace controllers\utils;
-
-trait DbTrait {
-
-	public function getCount($queries) {
-		$count = 1;
-		if ($queries > 1) {
-			if (($count = $queries) > 500) {
-				$count = 500;
-			}
-		}
-		return $count;
-	}
-}

+ 1 - 1
frameworks/PHP/ubiquity/composer.json

@@ -1,6 +1,6 @@
 {
 	"require" : {
-		"php" : "^7.4",
+		"php" : ">=7.4",
 		"phpmv/ubiquity" : "dev-master"
 	},
 	"require-dev" : {

+ 2 - 1
frameworks/PHP/ubiquity/deploy/conf/ubiquity-config.php

@@ -10,7 +10,8 @@ return array(
 			"user" => "benchmarkdbuser", // benchmarkdbuser
 			"password" => "benchmarkdbpass", // benchmarkdbpass
 			"options" => [
-				\PDO::ATTR_PERSISTENT => true
+				\PDO::ATTR_PERSISTENT => true,
+				\PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
 			],
 			"cache" => false
 		]

+ 6 - 6
frameworks/PHP/ubiquity/ubiquity.dockerfile

@@ -1,20 +1,20 @@
-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 nginx git unzip php7.4 php7.4-common php7.4-cli php7.4-fpm php7.4-mysql  > /dev/null
+    apt-get install -yqq nginx git unzip php8.0 php8.0-common php8.0-cli php8.0-fpm php8.0-mysql  > /dev/null
 
 RUN apt-get install -yqq composer > /dev/null
 
-COPY deploy/conf/* /etc/php/7.4/fpm/
+COPY deploy/conf/* /etc/php/8.0/fpm/
 
 ADD ./ /ubiquity
 WORKDIR /ubiquity
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/7.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.0/fpm/php-fpm.conf ; fi;
 
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
 
@@ -22,7 +22,7 @@ RUN chmod 777 -R /ubiquity/app/cache/*
 
 COPY deploy/conf/ubiquity-config.php app/config/config.php
 
-RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/7.4/fpm/php.ini
+RUN echo "opcache.preload=/ubiquity/app/config/preloader.script.php" >> /etc/php/8.0/fpm/php.ini
 
-CMD service php7.4-fpm start && \
+CMD service php8.0-fpm start && \
     nginx -c /ubiquity/deploy/nginx.conf -g "daemon off;"