]> git.mxchange.org Git - friendica.git/commitdiff
DDEV and some PHP8.1 fixes.
authorThorsten <thorsten.daners@antwerpes.de>
Fri, 18 Nov 2022 11:03:55 +0000 (12:03 +0100)
committerThorsten <thorsten.daners@antwerpes.de>
Fri, 18 Nov 2022 11:03:55 +0000 (12:03 +0100)
.ddev/config.yaml [new file with mode: 0644]
src/App/Page.php
src/BaseCollection.php
src/Content/Conversation.php
src/Content/Nav.php
src/Core/Session/Handler/Database.php
src/Database/Database.php
src/Model/Log/ParsedLogIterator.php

diff --git a/.ddev/config.yaml b/.ddev/config.yaml
new file mode 100644 (file)
index 0000000..810da8d
--- /dev/null
@@ -0,0 +1,258 @@
+name: my-friendica
+type: php
+docroot: ""
+php_version: "8.1"
+webserver_type: apache-fpm
+router_http_port: "80"
+router_https_port: "443"
+xdebug_enabled: false
+additional_hostnames: []
+additional_fqdns: []
+database:
+  type: mariadb
+  version: "10.4"
+nfs_mount_enabled: false
+mutagen_enabled: false
+use_dns_when_possible: true
+composer_version: "1"
+web_environment: []
+nodejs_version: "16"
+webimage_extra_packages: [php-gmp]
+
+# Key features of ddev's config.yaml:
+
+# name: <projectname> # Name of the project, automatically provides
+#   http://projectname.ddev.site and https://projectname.ddev.site
+
+# type: <projecttype>  # drupal6/7/8, backdrop, typo3, wordpress, php
+
+# docroot: <relative_path> # Relative path to the directory containing index.php.
+
+# php_version: "7.4"  # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"
+
+# You can explicitly specify the webimage but this
+# is not recommended, as the images are often closely tied to ddev's' behavior,
+# so this can break upgrades.
+
+# webimage: <docker_image>  # nginx/php docker image.
+
+# database:
+#   type: <dbtype> # mysql, mariadb
+#   version: <version> # database version, like "10.3" or "8.0"
+# Note that mariadb_version or mysql_version from v1.18 and earlier
+# will automatically be converted to this notation with just a "ddev config --auto"
+
+# router_http_port: <port>  # Port to be used for http (defaults to port 80)
+# router_https_port: <port> # Port for https (defaults to 443)
+
+# xdebug_enabled: false  # Set to true to enable xdebug and "ddev start" or "ddev restart"
+# Note that for most people the commands
+# "ddev xdebug" to enable xdebug and "ddev xdebug off" to disable it work better,
+# as leaving xdebug enabled all the time is a big performance hit.
+
+# xhprof_enabled: false  # Set to true to enable xhprof and "ddev start" or "ddev restart"
+# Note that for most people the commands
+# "ddev xhprof" to enable xhprof and "ddev xhprof off" to disable it work better,
+# as leaving xhprof enabled all the time is a big performance hit.
+
+# webserver_type: nginx-fpm  # or apache-fpm
+
+# timezone: Europe/Berlin
+# This is the timezone used in the containers and by PHP;
+# it can be set to any valid timezone,
+# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+# For example Europe/Dublin or MST7MDT
+
+# composer_root: <relative_path>
+# Relative path to the composer root directory from the project root. This is
+# the directory which contains the composer.json and where all Composer related
+# commands are executed.
+
+# composer_version: "2"
+# You can set it to "" or "2" (default) for Composer v2 or "1" for Composer v1
+# to use the latest major version available at the time your container is built.
+# It is also possible to use each other Composer version channel. This includes:
+#   - 2.2 (latest Composer LTS version)
+#   - stable
+#   - preview
+#   - snapshot
+# Alternatively, an explicit Composer version may be specified, for example "2.2.18".
+# To reinstall Composer after the image was built, run "ddev debug refresh".
+
+# nodejs_version: "16"
+# change from the default system Node.js version to another supported version, like 12, 14, 17, 18.
+# Note that you can use 'ddev nvm' or nvm inside the web container to provide nearly any
+# Node.js version, including v6, etc.
+
+# additional_hostnames:
+#  - somename
+#  - someothername
+# would provide http and https URLs for "somename.ddev.site"
+# and "someothername.ddev.site".
+
+# additional_fqdns:
+#  - example.com
+#  - sub1.example.com
+# would provide http and https URLs for "example.com" and "sub1.example.com"
+# Please take care with this because it can cause great confusion.
+
+# upload_dir: custom/upload/dir
+# would set the destination path for ddev import-files to <docroot>/custom/upload/dir
+# When mutagen is enabled this path is bind-mounted so that all the files
+# in the upload_dir don't have to be synced into mutagen
+
+# working_dir:
+#   web: /var/www/html
+#   db: /home
+# would set the default working directory for the web and db services.
+# These values specify the destination directory for ddev ssh and the
+# directory in which commands passed into ddev exec are run.
+
+# omit_containers: [db, dba, ddev-ssh-agent]
+# Currently only these containers are supported. Some containers can also be
+# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit
+# the "db" container, several standard features of ddev that access the
+# database container will be unusable. In the global configuration it is also
+# possible to omit ddev-router, but not here.
+
+# nfs_mount_enabled: false
+# Great performance improvement but requires host configuration first.
+# See https://ddev.readthedocs.io/en/latest/users/install/performance/#nfs
+
+# mutagen_enabled: false
+# Performance improvement using mutagen asynchronous updates.
+# See https://ddev.readthedocs.io/en/latest/users/install/performance/#mutagen
+
+# fail_on_hook_fail: False
+# Decide whether 'ddev start' should be interrupted by a failing hook
+
+# host_https_port: "59002"
+# The host port binding for https can be explicitly specified. It is
+# dynamic unless otherwise specified.
+# This is not used by most people, most people use the *router* instead
+# of the localhost port.
+
+# host_webserver_port: "59001"
+# The host port binding for the ddev-webserver can be explicitly specified. It is
+# dynamic unless otherwise specified.
+# This is not used by most people, most people use the *router* instead
+# of the localhost port.
+
+# host_db_port: "59002"
+# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic
+# unless explicitly specified.
+
+# phpmyadmin_port: "8036"
+# phpmyadmin_https_port: "8037"
+# The PHPMyAdmin ports can be changed from the default 8036 and 8037
+
+# host_phpmyadmin_port: "8036"
+# The phpmyadmin (dba) port is not normally bound on the host at all, instead being routed
+# through ddev-router, but it can be specified and bound.
+
+# mailhog_port: "8025"
+# mailhog_https_port: "8026"
+# The MailHog ports can be changed from the default 8025 and 8026
+
+# host_mailhog_port: "8025"
+# The mailhog port is not normally bound on the host at all, instead being routed
+# through ddev-router, but it can be bound directly to localhost if specified here.
+
+# webimage_extra_packages: [php7.4-tidy, php-bcmath]
+# Extra Debian packages that are needed in the webimage can be added here
+
+# dbimage_extra_packages: [telnet,netcat]
+# Extra Debian packages that are needed in the dbimage can be added here
+
+# use_dns_when_possible: true
+# If the host has internet access and the domain configured can
+# successfully be looked up, DNS will be used for hostname resolution
+# instead of editing /etc/hosts
+# Defaults to true
+
+# project_tld: ddev.site
+# The top-level domain used for project URLs
+# The default "ddev.site" allows DNS lookup via a wildcard
+# If you prefer you can change this to "ddev.local" to preserve
+# pre-v1.9 behavior.
+
+# ngrok_args: --basic-auth username:pass1234
+# Provide extra flags to the "ngrok http" command, see
+# https://ngrok.com/docs#http or run "ngrok http -h"
+
+# disable_settings_management: false
+# If true, ddev will not create CMS-specific settings files like
+# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalConfiguration.php
+# In this case the user must provide all such settings.
+
+# You can inject environment variables into the web container with:
+# web_environment:
+# - SOMEENV=somevalue
+# - SOMEOTHERENV=someothervalue
+
+# no_project_mount: false
+# (Experimental) If true, ddev will not mount the project into the web container;
+# the user is responsible for mounting it manually or via a script.
+# This is to enable experimentation with alternate file mounting strategies.
+# For advanced users only!
+
+# bind_all_interfaces: false
+# If true, host ports will be bound on all network interfaces,
+# not just the localhost interface. This means that ports
+# will be available on the local network if the host firewall
+# allows it.
+
+# default_container_timeout: 120
+# The default time that ddev waits for all containers to become ready can be increased from
+# the default 120. This helps in importing huge databases, for example.
+
+#web_extra_exposed_ports:
+#- name: nodejs
+#  container_port: 3000
+#  http_port: 2999
+#  https_port: 3000
+#- name: something
+#  container_port: 4000
+#  https_port: 4000
+#  http_port: 3999
+# Allows a set of extra ports to be exposed via ddev-router
+# The port behavior on the ddev-webserver must be arranged separately, for example
+# using web_extra_daemons.
+# For example, with a web app on port 3000 inside the container, this config would
+# expose that web app on https://<project>.ddev.site:9999 and http://<project>.ddev.site:9998
+# web_extra_exposed_ports:
+#  - container_port: 3000
+#    http_port: 9998
+#    https_port: 9999
+
+#web_extra_daemons:
+#- name: "http-1"
+#  command: "/var/www/html/node_modules/.bin/http-server -p 3000"
+#  directory: /var/www/html
+#- name: "http-2"
+#  command: "/var/www/html/node_modules/.bin/http-server /var/www/html/sub -p 3000"
+#  directory: /var/www/html
+
+# override_config: false
+# By default, config.*.yaml files are *merged* into the configuration
+# But this means that some things can't be overridden
+# For example, if you have 'nfs_mount_enabled: true'' you can't override it with a merge
+# and you can't erase existing hooks or all environment variables.
+# However, with "override_config: true" in a particular config.*.yaml file,
+# 'nfs_mount_enabled: false' can override the existing values, and
+# hooks:
+#   post-start: []
+# or
+# web_environment: []
+# or
+# additional_hostnames: []
+# can have their intended affect. 'override_config' affects only behavior of the
+# config.*.yaml file it exists in.
+
+# Many ddev commands can be extended to run tasks before or after the
+# ddev command is executed, for example "post-start", "post-import-db",
+# "pre-composer", "post-composer"
+# See https://ddev.readthedocs.io/en/stable/users/extend/custom-commands/ for more
+# information on the commands that can be extended and the tasks you can define
+# for them. Example:
+#hooks:
index 0f14d9f6e6530106ecbb87b0bd922a894ddcf4e8..5f4ac0f6ddff88660226b162714e387b6403362c 100644 (file)
@@ -130,7 +130,7 @@ class Page implements ArrayAccess
         * The return value will be casted to boolean if non-boolean was returned.
         * @since 5.0.0
         */
-       public function offsetExists($offset): bool
+       public function offsetExists(mixed $offset): bool
        {
                return isset($this->page[$offset]);
        }
@@ -147,7 +147,7 @@ class Page implements ArrayAccess
         * @return mixed Can return all value types.
         * @since 5.0.0
         */
-       public function offsetGet($offset)
+       public function offsetGet(mixed $offset): mixed
        {
                return $this->page[$offset] ?? null;
        }
@@ -167,7 +167,7 @@ class Page implements ArrayAccess
         * @return void
         * @since 5.0.0
         */
-       public function offsetSet($offset, $value)
+       public function offsetSet(mixed $offset, mixed $value): void
        {
                $this->page[$offset] = $value;
        }
@@ -184,7 +184,7 @@ class Page implements ArrayAccess
         * @return void
         * @since 5.0.0
         */
-       public function offsetUnset($offset)
+       public function offsetUnset(mixed $offset): void
        {
                if (isset($this->page[$offset])) {
                        unset($this->page[$offset]);
index f6fa9bbd4dec7329215b81cb644f3260a4f0c2eb..c711755722c13804bb1fdef439b700bf58c62375 100644 (file)
@@ -48,7 +48,7 @@ class BaseCollection extends \ArrayIterator
        /**
         * @inheritDoc
         */
-       public function offsetSet($offset, $value)
+       public function offsetSet(mixed $offset, mixed $value): void
        {
                if (is_null($offset)) {
                        $this->totalCount++;
@@ -60,7 +60,7 @@ class BaseCollection extends \ArrayIterator
        /**
         * @inheritDoc
         */
-       public function offsetUnset($offset)
+       public function offsetUnset(mixed $offset): void
        {
                if ($this->offsetExists($offset)) {
                        $this->totalCount--;
index da9aee87b00aee1090954c904e1bda589abcdc4d..46a906b13829ca1448e1e2d6736b7ad67579be6a 100644 (file)
@@ -794,7 +794,10 @@ class Conversation
                        return [];
                }
 
-               $str_blocked = str_replace(["\n", "\r"], ",", $this->pConfig->get($this->session->getLocalUserId(), 'system', 'blocked'));
+               $blocked = $this->pConfig->get($this->session->getLocalUserId(), 'system', 'blocked');
+               if (!empty($blocked)) {
+                       $str_blocked = str_replace(["\n", "\r"], ",", $blocked);
+               }
                if (empty($str_blocked)) {
                        return [];
                }
index 0000b3d2962f3b35c390d61fb3f0fba195937f41..17fb1d12ce6272557f8a1a8c9bba2da1a1819446 100644 (file)
@@ -245,7 +245,7 @@ class Nav
 
                $gdirpath = 'directory';
 
-               if (strlen(DI::config()->get('system', 'singleuser'))) {
+               if (empty(DI::config()->get('system', 'singleuser'))) {
                        $gdir = DI::config()->get('system', 'directory');
                        if (strlen($gdir)) {
                                $gdirpath = Profile::zrl($gdir, true);
index 41ccb6b33f834e4f315fef4b6b78a5f2813bebff..6d067d8b6f34dcab783a2b3d354f4969d86f8a47 100644 (file)
@@ -57,7 +57,7 @@ class Database extends AbstractSessionHandler
                return true;
        }
 
-       public function read($id)
+       public function read($id): string|false
        {
                if (empty($id)) {
                        return '';
@@ -136,7 +136,7 @@ class Database extends AbstractSessionHandler
                }
        }
 
-       public function gc($max_lifetime): bool
+       public function gc($max_lifetime): int|false
        {
                try {
                        return $this->dba->delete('session', ["`expire` < ?", time()]);
index 79c39e9af763c7dccd4ea8b82c5a7ee659cb57d3..5dac99bcee88528618d04c321e6f148199ed42ca 100644 (file)
@@ -117,7 +117,7 @@ class Database
                        $port = trim($serverdata[1]);
                }
 
-               if (!empty(trim($this->configCache->get('database', 'port')))) {
+               if (!empty(trim((string) $this->configCache->get('database', 'port')))) {
                        $port = trim($this->configCache->get('database', 'port'));
                }
 
index 4309e4cd002dcd665d281045a3cb3565daae71d7..151a66adb472d74538a6f1496187136725566d4a 100644 (file)
@@ -160,7 +160,7 @@ class ParsedLogIterator implements \Iterator
         * @see Iterator::next()
         * @return void
         */
-       public function next()
+       public function next(): void
        {
                $parsed = $this->read();
 
@@ -177,7 +177,7 @@ class ParsedLogIterator implements \Iterator
         * @see Iterator::rewind()
         * @return void
         */
-       public function rewind()
+       public function rewind(): void
        {
                $this->value = null;
                $this->reader->rewind();
@@ -202,7 +202,7 @@ class ParsedLogIterator implements \Iterator
         * @see Iterator::current()
         * @return ?ParsedLogLing
         */
-       public function current()
+       public function current(): mixed
        {
                return $this->value;
        }