DDEV and some PHP8.1 fixes.
This commit is contained in:
parent
efaf84631d
commit
7a39be8270
8 changed files with 275 additions and 14 deletions
258
.ddev/config.yaml
Normal file
258
.ddev/config.yaml
Normal file
|
@ -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:
|
|
@ -130,7 +130,7 @@ class Page implements ArrayAccess
|
||||||
* The return value will be casted to boolean if non-boolean was returned.
|
* The return value will be casted to boolean if non-boolean was returned.
|
||||||
* @since 5.0.0
|
* @since 5.0.0
|
||||||
*/
|
*/
|
||||||
public function offsetExists($offset): bool
|
public function offsetExists(mixed $offset): bool
|
||||||
{
|
{
|
||||||
return isset($this->page[$offset]);
|
return isset($this->page[$offset]);
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ class Page implements ArrayAccess
|
||||||
* @return mixed Can return all value types.
|
* @return mixed Can return all value types.
|
||||||
* @since 5.0.0
|
* @since 5.0.0
|
||||||
*/
|
*/
|
||||||
public function offsetGet($offset)
|
public function offsetGet(mixed $offset): mixed
|
||||||
{
|
{
|
||||||
return $this->page[$offset] ?? null;
|
return $this->page[$offset] ?? null;
|
||||||
}
|
}
|
||||||
|
@ -167,7 +167,7 @@ class Page implements ArrayAccess
|
||||||
* @return void
|
* @return void
|
||||||
* @since 5.0.0
|
* @since 5.0.0
|
||||||
*/
|
*/
|
||||||
public function offsetSet($offset, $value)
|
public function offsetSet(mixed $offset, mixed $value): void
|
||||||
{
|
{
|
||||||
$this->page[$offset] = $value;
|
$this->page[$offset] = $value;
|
||||||
}
|
}
|
||||||
|
@ -184,7 +184,7 @@ class Page implements ArrayAccess
|
||||||
* @return void
|
* @return void
|
||||||
* @since 5.0.0
|
* @since 5.0.0
|
||||||
*/
|
*/
|
||||||
public function offsetUnset($offset)
|
public function offsetUnset(mixed $offset): void
|
||||||
{
|
{
|
||||||
if (isset($this->page[$offset])) {
|
if (isset($this->page[$offset])) {
|
||||||
unset($this->page[$offset]);
|
unset($this->page[$offset]);
|
||||||
|
|
|
@ -48,7 +48,7 @@ class BaseCollection extends \ArrayIterator
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function offsetSet($offset, $value)
|
public function offsetSet(mixed $offset, mixed $value): void
|
||||||
{
|
{
|
||||||
if (is_null($offset)) {
|
if (is_null($offset)) {
|
||||||
$this->totalCount++;
|
$this->totalCount++;
|
||||||
|
@ -60,7 +60,7 @@ class BaseCollection extends \ArrayIterator
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function offsetUnset($offset)
|
public function offsetUnset(mixed $offset): void
|
||||||
{
|
{
|
||||||
if ($this->offsetExists($offset)) {
|
if ($this->offsetExists($offset)) {
|
||||||
$this->totalCount--;
|
$this->totalCount--;
|
||||||
|
|
|
@ -794,7 +794,10 @@ class Conversation
|
||||||
return [];
|
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)) {
|
if (empty($str_blocked)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,7 +245,7 @@ class Nav
|
||||||
|
|
||||||
$gdirpath = 'directory';
|
$gdirpath = 'directory';
|
||||||
|
|
||||||
if (strlen(DI::config()->get('system', 'singleuser'))) {
|
if (empty(DI::config()->get('system', 'singleuser'))) {
|
||||||
$gdir = DI::config()->get('system', 'directory');
|
$gdir = DI::config()->get('system', 'directory');
|
||||||
if (strlen($gdir)) {
|
if (strlen($gdir)) {
|
||||||
$gdirpath = Profile::zrl($gdir, true);
|
$gdirpath = Profile::zrl($gdir, true);
|
||||||
|
|
|
@ -57,7 +57,7 @@ class Database extends AbstractSessionHandler
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function read($id)
|
public function read($id): string|false
|
||||||
{
|
{
|
||||||
if (empty($id)) {
|
if (empty($id)) {
|
||||||
return '';
|
return '';
|
||||||
|
@ -136,7 +136,7 @@ class Database extends AbstractSessionHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function gc($max_lifetime): bool
|
public function gc($max_lifetime): int|false
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return $this->dba->delete('session', ["`expire` < ?", time()]);
|
return $this->dba->delete('session', ["`expire` < ?", time()]);
|
||||||
|
|
|
@ -117,7 +117,7 @@ class Database
|
||||||
$port = trim($serverdata[1]);
|
$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'));
|
$port = trim($this->configCache->get('database', 'port'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ class ParsedLogIterator implements \Iterator
|
||||||
* @see Iterator::next()
|
* @see Iterator::next()
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function next()
|
public function next(): void
|
||||||
{
|
{
|
||||||
$parsed = $this->read();
|
$parsed = $this->read();
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ class ParsedLogIterator implements \Iterator
|
||||||
* @see Iterator::rewind()
|
* @see Iterator::rewind()
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function rewind()
|
public function rewind(): void
|
||||||
{
|
{
|
||||||
$this->value = null;
|
$this->value = null;
|
||||||
$this->reader->rewind();
|
$this->reader->rewind();
|
||||||
|
@ -202,7 +202,7 @@ class ParsedLogIterator implements \Iterator
|
||||||
* @see Iterator::current()
|
* @see Iterator::current()
|
||||||
* @return ?ParsedLogLing
|
* @return ?ParsedLogLing
|
||||||
*/
|
*/
|
||||||
public function current()
|
public function current(): mixed
|
||||||
{
|
{
|
||||||
return $this->value;
|
return $this->value;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue