Giter Club home page Giter Club logo

doc-en's People

Contributors

aidanlister avatar alindeman avatar bjori avatar cmb69 avatar colder avatar daverandom avatar felipensp avatar girgias avatar jimwins avatar jmcastagnetto avatar kallez avatar kamil-tekiela avatar kocsismate avatar krakjoe avatar laruence avatar lawngnome avatar msamesch avatar mumumu avatar nikic avatar nunoplopes avatar philip avatar salathe avatar saundefined avatar scoates avatar sgolemon avatar thefrozenfire avatar tony2001 avatar tpunt avatar vrana avatar weltling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doc-en's Issues

Duplicate word in doc pt-br

From manual page: https://php.net/function.crypt


In portuguese-br the translate have duplicate words
"crypt() retornará uma string criptografada usando o algoritmo de encriptação Unix Standard DES-based OU OU algoritmos alternativos disponíveis no sistema."
You can remove one of "ou"

Use HTTP/1.1 instead of HTTP/1.0 in examples in the manual?

Checked when looking at #709 - there's also event/ but I'm not familiar with that

Users may be surprised if they add headers to those examples and those headers only exist in HTTP/1.1.

For stream/book.xml - is it actually using HTTP/1.0 or HTTP/1.1 - maybe there should be a changelog (I forget if that or something else was what changed in 8.0)

NOTE: HTTP/1.0 may actually be faster for some of the examples due to not supporting keepalive if the server closes connections (no keepalive in 1.0) - Connection: close may need to be added to ensure the same behavior

stream/examples.xml
49:fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");

stream/functions/stream-socket-client.xml
156:    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");

stream/book.xml
21-    A <literal>wrapper</literal> is additional code which tells the stream how to handle
22-    specific protocols/encodings.  For example, the <literal>http</literal>
23:    wrapper knows how to translate a URL into an <literal>HTTP/1.0</literal>
24-    request for a file on a remote server.  There are many wrappers
25-    built into PHP by default (See <xref linkend="wrappers"/>),
26-    and additional, custom wrappers may be added either within a
27-    PHP script using <function>stream_wrapper_register</function>,

stream/functions/stream-set-timeout.xml
81:    fwrite($fp, "GET / HTTP/1.0\r\n\r\n");

network/functions/header.xml
73://    (to override http status messages for clients that are still using HTTP/1.0)

PHP 8.0 documentation tracker

Pages which need to be added/modified for complete documentation of PHP 8.0:

Based of the migration guide: https://www.php.net/manual/en/migration80.php (formally #170)

Core:

  • New features:
    • Type declarations (#174)
      • Union types
      • mixed
      • static return
    • Constructor Promotion (#188)
    • match expressions (#206)
      • UnhandledMatchError
    • Named arguments allow passing arguments to a function based on the parameter name, rather than the parameter position. (#251)
    • Attributes (#254)
    • Null-safe operator (#244)
    • Stringable interface (#478)
    • WeakMap (core) (#479)
    • $object::class (#239)
    • Catch without variable (#238)
    • traits can now have abstract private methods and they are validated against the implementation provided in the using class, according to our usual inheritance rules. (#476)
    • ValueError (#205)
    • DateTime format specifier p (#230)
  • Modified features:
    • throw expression (#238)
    • &new; and &instanceof; can now be used with arbitrary expressions
    • trailing commas in parameter lists (#241)
    • private methods do not enforce inheritance rules on child classes any more (except __construct) (#481)
    • Numeric strings (#215)
      • Comparison
      • When a string is considered numeric
    • Float to string conversion (#215)
    • Operator precedence
  • Deprecated
    • Optional args after mandatory ones (#251, #270)
    • The ability to define case-insensitive constants has been removed. The third argument to define() may no longer be true.

Classes

Functions/Methods:

  • New functions
    • Standard
      • fdiv() (#258)
      • get_debug_type() (#591)
      • get_resource_id() (#227)
      • str_contains() (#216)
      • str_start_with() (#217)
      • str_ends_with() (#217)
    • Date and Time
      • DateTime::createFromInterface() (#257)
      • DateTimeImmutable::createFromInterface() (#257)
    • GD
      • imagegetinterpolation() (0ebd26c)
    • LDAP
      • ldap_count_references() (#733)
    • OpenSSL (ad0175b)
      • openssl_cms_encrypt()
      • openssl_cms_decrypt()
      • openssl_cms_read()
      • openssl_cms_sign()
      • openssl_cms_verify()
    • ZIP
      • ZipArchive::setProgressCallback() (#228)
      • ZipArchive::setCancelCallback() (#228)
  • Modified functions
    • printf and friends (#268)
    • imagepolygon and friends (de8b75c)
  • Deprecated
    • PGSQL aliases (7a81e2b)
    • Enchant (94f2c27)
      • enchant_broker_set_dict_path()
      • enchant_broker_get_dict_path()
      • enchant_dict_add_to_personal()
      • enchant_broker_free()
    • libxml_disable_entity_loader()
    • Procedural ZIP API (e727888)
    • Reflection
      • ReflectionFunction::isDisabled()
      • ReflectionParameter::getClass()
      • ReflectionParameter::isArray()
      • ReflectionParameter::isCallable()

Constants:

  • New
    • Filter
      • FILTER_VALIDATE_BOOL (#676)
    • Intl
      • IntlDateFormatter::RELATIVE_FULL (#267)
      • IntlDateFormatter::RELATIVE_LONG (#267)
      • IntlDateFormatter::RELATIVE_MEDIUM (#267)
      • IntlDateFormatter::RELATIVE_SHORT (#267)
    • Reflection (98df2cf)
      • ReflectionClassConstant::IS_PUBLIC
      • ReflectionClassConstant::IS_PROTECTED
      • ReflectionClassConstant::IS_PRIVATE
    • OpenSSL (1ae5ae9)
      • OPENSSL_ENCODING_DER
      • OPENSSL_ENCODING_SMIME
      • OPENSSL_ENCODING_PEM
  • Deprecated
    • Enchant (94f2c27)
      • ENCHANT_MYSPELL
      • ENCHANT_ISPELL
    • PGSQL_LIBPQ_VERSION_STR (fa7cb18)

DOMImplementation::getFeature() is undocumented

From manual page: https://php.net/class.domimplementation


ReflectionClass detect method getFeature() missed in manual:

Method [  public method getFeature ] {
  - Parameters [2] {
    Parameter #0 [  $feature ]
    Parameter #1 [  $version ]
  }
}

ReflectionMethod not detect hasFeature() parameters:

Method [  public method hasFeature ] {
  - Parameters [0] {
  }
}

but in manual:
public hasFeature(string $feature, string $version): bool

SplDoublyLinkedList::__construct() does not exist

From manual page: https://php.net/class.spldoublylinkedlist


The documentation describe a constructor.
https://www.php.net/manual/de/spldoublylinkedlist.construct.php
https://www.php.net/manual/en/spldoublylinkedlist.construct.php

I think, there is no constructor. (or misunderstand I something?)

I tried to extend 'SplDoublyLinkedList' in an own class and got the unexpected fatal error (see comment in code)

<?php
        
        class Liste extends SplDoublyLinkedList 
        {
            public function __construct() {
                parent::__construct(); //<b>Fatal error</b>:  Uncaught Error: Cannot call constructor in [...][...]:6
                $this->push('klaus');
                
            }
            
            public function liste() {
                $this->push('herbert');
            }
        }

$hallo = new Liste();
$hallo->push('padina');
$hallo->push('doof');
$hallo->liste();
foreach($hallo as $key=>$item) {
    echo($key.' => '.$item."\n");

Wrong statement about errno passed to error handler

From manual page: https://php.net/function.set-error-handler

Warning
Prior to PHP 8.0.0, the errno value was always 0 if the expression which caused the diagnostic was prepended by the @ error-control operator.

That's not true. The value of errno is always that of the actual error regardless of the @ operator, both in PHP 7 (and lower) and in PHP 8.

What was always zero before PHP 8 and is not always zero in PHP 8, is the value returned by error_reporting() inside the error handler.

In PHP 8 the value returned by error_reporting() inside the error handler CHANGES SOMEHOW if the expression that triggers the error has @ error suppression. How exactly it changes is utterly undocumented.

https://3v4l.org/vT9J2

The same wrong statement is also present here:
https://www.php.net/manual/en/language.operators.errorcontrol.php

Warning
Prior to PHP 8.0.0, the value of the severity passed to the custom error handler was always 0 if the diagnostic was suppressed. This is no longer the case as of PHP 8.0.0.

Note that here it is more confusing because it says "the severity"; one can only guess that it refers to err_no

Returning wrong year

From manual page: https://php.net/function.date


Dear all,

I used your function date in echo date(“Y-W”, strtotime(“2021-01-01"));
I expected 2020-53 but instead, I got 2021-53.

I'm working in PHP version 7.3.11

Thank you in advance,

Developer at Digitaal Kantoor Gouda

Issue with Tiff & Custom size Images

From manual page: https://php.net/book.imagick


Hi
We are using ImageMagick plugin for Print2Metal website and we have encountered an issue when we upload a Tiff image on the website with a custom size. The saved image is of incorrect size.
Example:
We uploaded a tiff image with a custom size of 22 x 17.5 inch, but the saved image is not of the requested size (Please check the attached image).
Can you please let us know if you have any solution for this issue?
Thank you.
Kind regards,
TestImage

Sandhya Prabhakar
Client Service Coordinator

Always put __construct first in class method list

Is it possible to sort the class methods where __construct is first? It looks very odd when it's shorted alphabetically without the __.

Example:

https://www.php.net/manual/en/class.recursiveiteratoriterator.php

public beginChildren(): void
public beginIteration(): void
public callGetChildren(): RecursiveIterator
public callHasChildren(): bool
public __construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0)
public current(): mixed

Docker

From:
Snapshot-Content-Location: https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine
Subject: Install Docker Engine on Ubuntu | Docker Documentation
Date: Mon, 24 May 2021 07:32:10 -0000
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----MultipartBoundary--NvpcdfSE0hYdBVxxceVt5D0PABCW1HbNo6nTHbjjrJ----"

------MultipartBoundary--NvpcdfSE0hYdBVxxceVt5D0PABCW1HbNo6nTHbjjrJ----
Content-Type: text/html
Content-ID: [email protected]
Content-Transfer-Encoding: binary
Content-Location: https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine

<title>Install Docker Engine on Ubuntu | Docker Documentation</title>
</header>
<div class="wrapper right-open">
    <div class="container-fluid">
        <div class="row">
            <div class="col-body">
                <main class="col-content content">
                    <section class="section"><h1>Install Docker Engine on Ubuntu</h1><p><em class="reading-time">Estimated reading time: 10 minutes</em></p><p>To get started with Docker Engine on Ubuntu, make sure you

meet the prerequisites, then
install Docker.

Prerequisites

OS requirements

To install Docker Engine, you need the 64-bit version of one of these Ubuntu versions:

  • Ubuntu Hirsute 21.04
  • Ubuntu Groovy 20.10
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)
  • Ubuntu Xenial 16.04 (LTS)

Docker Engine is supported on x86_64 (or amd64), armhf, and arm64 architectures.

Uninstall old versions

Older versions of Docker were called docker, docker.io, or docker-engine. If these are installed, uninstall them:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

It’s OK if apt-get reports that none of these packages are installed.

The contents of /var/lib/docker/, including images, containers, volumes, and networks, are preserved. If you do not need to save your existing data, and want to start with a clean installation, refer to the uninstall Docker Engine section at the bottom of this page.

Supported storage drivers

Docker Engine on Ubuntu supports overlay2, aufs and btrfs storage drivers.

Docker Engine uses the overlay2 storage driver by default. If you need to use aufs instead, you need to configure it manually. See use the AUFS storage driver

Installation methods

You can install Docker Engine in different ways, depending on your needs:

  • Most users set up Docker’s repositories and install from them, for ease of installation and upgrade tasks. This is the recommended approach.

  • Some users download the DEB package and install it manually and manage upgrades completely manually. This is useful in situations such as installing Docker on air-gapped systems with no access to the internet.

  • In testing and development environments, some users choose to use automated convenience scripts to install Docker.

Install using the repository

Before you install Docker Engine for the first time on a new host machine, you need to set up the Docker repository. Afterward, you can install and update Docker from the repository.

Set up the repository

  1. Update the apt package index and install packages to allow apt to use a repository over HTTPS:

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">sudo </span>apt-get update
    
    $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
  2. Add Docker’s official GPG key:

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> curl <span class="nt">-fsSL</span> https://download.docker.com/linux/ubuntu/gpg | <span class="nb">sudo </span>gpg <span class="nt">--dearmor</span> <span class="nt">-o</span> /usr/share/keyrings/docker-archive-keyring.gpg
    

  3. Use the following command to set up the stable repository. To add the nightly or test repository, add the word nightly or test (or both) after the word stable in the commands below. Learn about nightly and test channels.

    <blockquote>
      <p><strong>Note</strong>: The <code class="highlighter-rouge">lsb_release -cs</code> sub-command below returns the name of your
    

    Ubuntu distribution, such as xenial. Sometimes, in a distribution
    like Linux Mint, you might need to change $(lsb_release -cs)
    to your parent Ubuntu distribution. For example, if you are using
    Linux Mint Tessa, you could use bionic. Docker does not offer any guarantees on untested
    and unsupported Ubuntu distributions.


    <ul class="nav nav-tabs">
      <li class="active"><a data-toggle="tab" data-target="#x86_64_repo">x86_64 / amd64</a></li>
      <li><a data-toggle="tab" data-target="#armhf_repo">armhf</a></li>
      <li><a data-toggle="tab" data-target="#arm64_repo">arm64</a></li>
    </ul>
    <div class="tab-content">
      <div id="x86_64_repo" class="tab-pane fade in active">
    
        <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">echo</span> <span class="se">\</span>
    

    "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu </span>
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

      </div>
      <div id="armhf_repo" class="tab-pane fade">
    
        <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">echo</span> <span class="se">\</span>
    

    "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu </span>
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

      </div>
      <div id="arm64_repo" class="tab-pane fade">
    
        <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">echo</span> <span class="se">\</span>
    

    "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu </span>
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

      </div>
    </div>
    <p><!-- tab-content --></p>
    

Install Docker Engine

  1. Update the apt package index, and install the latest version of Docker Engine and containerd, or go to the next step to install a specific version:

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp"> $</span> <span class="nb">sudo </span>apt-get update
    

    $ sudo apt-get install docker-ce docker-ce-cli containerd.io

    <blockquote>
      <p>Got multiple Docker repositories?</p>
    
      <p>If you have multiple Docker repositories enabled, installing
    

    or updating without specifying a version in the apt-get install or
    apt-get update command always installs the highest possible version,
    which may not be appropriate for your stability needs.


  2. To install a specific version of Docker Engine, list the available versions in the repo, then select and install:

    <p>a. List the versions available in your repo:</p>
    
    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> apt-cache madison docker-ce
    
    docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
    <p>b. Install a specific version using the version string from the second column,
    

    for example, 5:18.09.13-0ubuntu-xenial.

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">sudo </span>apt-get install docker-ce<span class="o">=</span>&lt;VERSION_STRING&gt; docker-ce-cli<span class="o">=</span>&lt;VERSION_STRING&gt; containerd.io
    

  3. Verify that Docker Engine is installed correctly by running the hello-world image.

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">sudo </span>docker run hello-world
    

    <p>This command downloads a test image and runs it in a container. When the
    

    container runs, it prints an informational message and exits.

Docker Engine is installed and running. The docker group is created but no users are added to it. You need to use sudo to run Docker commands. Continue to Linux postinstall to allow non-privileged users to run Docker commands and for other optional configuration steps.

Upgrade Docker Engine

To upgrade Docker Engine, first run sudo apt-get update, then follow the installation instructions, choosing the new version you want to install.

Install from a package

If you cannot use Docker’s repository to install Docker Engine, you can download the .deb file for your release and install it manually. You need to download a new file each time you want to upgrade Docker.

  1. Go to https://download.docker.com/linux/ubuntu/dists/, choose your Ubuntu version, then browse to pool/stable/, choose amd64, armhf, or arm64, and download the .deb file for the Docker Engine version you want to install.

    <blockquote>
      <p><strong>Note</strong>: To install a <strong>nightly</strong> or <strong>test</strong> (pre-release) package,
    

    change the word stable in the above URL to nightly or test.
    Learn about nightly and test channels.


  2. Install Docker Engine, changing the path below to the path where you downloaded the Docker package.

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">sudo </span>dpkg <span class="nt">-i</span> /path/to/package.deb
    

    <p>The Docker daemon starts automatically.</p>
    
  3. Verify that Docker Engine is installed correctly by running the hello-world image.

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">sudo </span>docker run hello-world
    

    <p>This command downloads a test image and runs it in a container. When the
    

    container runs, it prints an informational message and exits.

Docker Engine is installed and running. The docker group is created but no users are added to it. You need to use sudo to run Docker commands. Continue to Post-installation steps for Linux to allow non-privileged users to run Docker commands and for other optional configuration steps.

Upgrade Docker Engine

To upgrade Docker Engine, download the newer package file and repeat the installation procedure, pointing to the new file.

Install using the convenience script

Docker provides convenience scripts at get.docker.com and test.docker.com for installing edge and testing versions of Docker Engine - Community into development environments quickly and non-interactively. The source code for the scripts is in the docker-install repository. Using these scripts is not recommended for production environments, and you should understand the potential risks before you use them:

  • The scripts require root or sudo privileges to run. Therefore, you should carefully examine and audit the scripts before running them.
  • The scripts attempt to detect your Linux distribution and version and configure your package management system for you. In addition, the scripts do not allow you to customize any installation parameters. This may lead to an unsupported configuration, either from Docker’s point of view or from your own organization’s guidelines and standards.
  • The scripts install all dependencies and recommendations of the package manager without asking for confirmation. This may install a large number of packages, depending on the current configuration of your host machine.
  • The script does not provide options to specify which version of Docker to install, and installs the latest version that is released in the “edge” channel.
  • Do not use the convenience script if Docker has already been installed on the host machine using another mechanism.

This example uses the script at get.docker.com to install the latest release of Docker Engine - Community on Linux. To install the latest testing version, use test.docker.com instead. In each of the commands below, replace each occurrence of get with test.

Warning:

Always examine scripts downloaded from the internet before running them locally.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
<...>

If you would like to use Docker as a non-root user please see the post-installation steps for Linux.

Docker Engine - Community is installed. It starts automatically on DEB-based distributions. On RPM-based distributions, you need to start it manually using the appropriate systemctl or service command. As the message indicates, non-root users can’t run Docker commands by default.

Upgrade Docker after using the convenience script

If you installed Docker using the convenience script, you should upgrade Docker using your package manager directly. There is no advantage to re-running the convenience script, and it can cause issues if it attempts to re-add repositories which have already been added to the host machine.

Uninstall Docker Engine

  1. Uninstall the Docker Engine, CLI, and Containerd packages:

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">sudo </span>apt-get purge docker-ce docker-ce-cli containerd.io
    

  2. Images, containers, volumes, or customized configuration files on your host are not automatically removed. To delete all images, containers, and volumes:

    <div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span> <span class="nb">sudo </span>rm <span class="nt">-rf</span> /var/lib/docker
    

    $ sudo rm -rf /var/lib/containerd

You must delete any edited configuration files manually.

Next steps

requirements, apt, installation, ubuntu, install, uninstall, upgrade, update
      <div class="container">
          <div class="top_footer">
              <div class="row">
                  <div class="col-xs-12 col-sm-3 col-md-3">
                      <ul class="footer_links">
                          <li><b><a href="https://www.docker.com/why-docker">Why Docker?</a></b></li>
                          <li><a href="https://www.docker.com/what-container">What is a Container?</a></li>
                          <li><a href="https://www.docker.com/dockercon-live/2021/?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-registration-dockercon">Register for DockerCon21</a></li>
                          <li><b><a href="https://www.docker.com/products/overview">Products</a></b></li>
                          <li><a href="https://www.docker.com/products/docker-desktop">Docker Desktop</a></li>
                          <li><a href="https://www.docker.com/products/docker-hub">Docker Hub</a></li>
                          <li><a href="https://www.docker.com/roadmap">Docker Product Roadmap</a></li>
                          <li><b><a href="https://www.docker.com/products/docker-desktop">Features</a></b></li>
                          <li><a href="https://www.docker.com/products/container-runtime">Container Runtime</a></li>
                          <li><a href="https://www.docker.com/products/developer-tools">Developer Tools</a></li>
                      </ul>
                  </div>
                  <div class="col-xs-12 col-sm-3 col-md-3">
                      <ul class="footer_links">
                          <li><b><a href="https://www.docker.com/products/docker-desktop">Developers</a></b></li>
                          <li><a href="https://www.docker.com/use-cases">Use Cases</a></li>
                          <li><a href="https://www.docker.com/play-with-docker">Play with Docker</a></li>
                          <li><a href="https://www.docker.com/docker-community">Community</a></li>
                          <li><a href="https://www.docker.com/open-source">Open Source</a></li>
                          <li><a href="https://www.docker.com/community/docker-captains">Docker Captains</a></li>
                      </ul>
                  </div>
                  <div class="col-xs-12 col-sm-3 col-md-3">
                      <ul class="footer_links">
                          <li><b><a href="https://www.docker.com/products/docker-desktop">Pricing</a></b></li>
                          <li><a href="https://www.docker.com/pricing/faq">FAQs</a></li>
                          <li><a href="https://www.docker.com/partners/programs">Verified Publisher Program</a></li>
                      </ul>
                  </div>
                  <div class="col-xs-12 col-sm-3 col-md-3">
                      <ul class="footer_links">
                          <li><b><a href="https://www.docker.com/company" target="_blank" rel="noopener">Company</a></b></li>
                          <li><a href="https://www.docker.com/company">About Us</a></li>
                          <li><a href="https://www.docker.com/blog/" target="_blank" rel="noopener">Blog</a></li>
                          <li><a href="https://www.docker.com/customers">Customers</a></li>
                          <li><a href="https://www.docker.com/partners">Partners</a></li>
                          <li><a href="https://www.docker.com/company/newsroom">Newsroom</a></li>
                          <li><a href="https://www.docker.com/careers">Careers</a></li>
                          <li><a href="https://www.docker.com/company/contact">Contact Us</a></li>
                      </ul>
                  </div>
              </div>
              <div class="footer-nav">
                  <nav class="footer_sub_nav">
                      <ul class="menu">
                          <li><a href="http://status.docker.com/">Status</a></li>
                          <li><a href="https://www.docker.com/legal">Legal</a></li>
                          <li><a href="https://www.docker.com/company/contact">Contact</a></li>
                      </ul>
                  </nav>
              </div>
          </div>
          <div class="bottom_footer">
              <div class="footer-copyright col-xs-12 col-md-8">
                  <p class="copyright">
                      Copyright © 2013-2021 Docker Inc. All rights reserved. </p>
              </div>
              <div class="footer_social_nav">
                  <ul class="nav-social">
                      <li class="fa fa-twitter"><a href="http://twitter.com/docker">Twitter</a></li>
                      <li class="fa fa-youtube"><a href="http://www.youtube.com/user/dockerrun">Youtube</a></li>
                      <li class="fa fa-github"><a href="https://github.com/docker">GitHub</a></li>
                      <li class="fa fa-linkedin"><a href="https://www.linkedin.com/company/docker">Linkedin</a></li>
                      <li class="fa fa-facebook"><a href="https://www.facebook.com/docker.run">Facebook</a></li>
                      <li class="fa fa-slideshare"><a href="https://www.slideshare.net/docker">Slideshare</a></li>
                      <li class="fa fa-reddit"><a href="https://www.reddit.com/r/docker">Reddit</a></li>
                  </ul>
              </div>
          </div>
      </div>
      
      </footer>
      
      ------MultipartBoundary--NvpcdfSE0hYdBVxxceVt5D0PABCW1HbNo6nTHbjjrJ------

      Copy/paste schrapnel in ini list

      From manual page: https://php.net/ini.list

      Some session settings in middle of memchache partially modified


      memcache.hash_strategy | "standard" | PHP_INI_ALL | Available since memcache 2.2.0.
      memcache.hash_function | "crc32" | PHP_INI_ALL | Available since memcache 2.2.0.

      session.save_handler | "files" | PHP_INI_ALL | Supported since memcache 2.1.2
      session.save_path | "" | PHP_INI_ALL | Supported since memcache 2.1.2

      memcache.protocol | ascii | >PHP_INI_ALL | Supported since memcache 3.0.0
      memcache.redundancy | 1 | >PHP_INI_ALL | Supported since memcache 3.0.0

      DateTime.createFromFormat description is misleading

      From manual page: https://php.net/datetime.createfromformat


      The description of the parsing process of the string with the date and time clearly says:

      If format does not contain the character ! then portions of the generated time which are not specified in format will be set to the current system time.

      This is not true if the format contains hours, minutes, seconds, or microseconds.
      According to the source code, they will be zeroed, not equal to the current system time even without "!" or "|" modifier.

      Example:

      $dt = \DateTimeImmutable::createFromFormat("H:i", '15:30', new DateTimeZone('Europe/Moscow'));
      echo $dt->format('c u');
      
      // Output will be: 2021-06-08T15:30:00+03:00 000000 (for any given system seconds & microseconds)

      yaml extension is not compiling with PHP 8.1

      From manual page: https://php.net/book.yaml


      Unfortunately, the yaml extension is not compiled in PHP 8.1
      Is it problem of yaml lib?

      /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c:545:4: error: 'ZEND_ATOL' undeclared (first use in this function); did you mean 'ZEND_AST_OR'? 2: 545 | ZEND_ATOL(*lval, buf); 2: | ^~~~~~~~~ 2: | ZEND_AST_OR

      Full (relevant) log:

      The following error(s) happened: make failed
      1: phpize
      2: Configuring for:
      2: PHP Api Version:         20201009
      2: Zend Module Api No:      20201009
      2: Zend Extension Api No:   420201009
      2: configure.ac:18: warning: $as_echo is obsolete; use AS_ECHO(["message"]) instead
      2: build/php.m4:2111: PHP_CONFIG_NICE is expanded from...
      2: configure.ac:18: the top level
      2: configure.ac:161: warning: The macro `AC_LANG_C' is obsolete.
      2: configure.ac:161: You should run autoupdate.
      2: ./lib/autoconf/c.m4:72: AC_LANG_C is expanded from...
      2: build/libtool.m4:2728: _LT_AC_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:2727: AC_LIBTOOL_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: The macro `AC_LANG_C' is obsolete.
      2: configure.ac:161: You should run autoupdate.
      2: ./lib/autoconf/c.m4:72: AC_LANG_C is expanded from...
      2: lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
      2: lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
      2: ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
      2: ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
      2: build/libtool.m4:561: _LT_AC_LOCK is expanded from...
      2: build/libtool.m4:1185: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from...
      2: build/libtool.m4:2728: _LT_AC_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:2727: AC_LIBTOOL_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: The macro `AC_TRY_LINK' is obsolete.
      2: configure.ac:161: You should run autoupdate.
      2: ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from...
      2: lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
      2: lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
      2: ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
      2: ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
      2: build/libtool.m4:561: _LT_AC_LOCK is expanded from...
      2: build/libtool.m4:1185: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from...
      2: build/libtool.m4:2728: _LT_AC_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:2727: AC_LIBTOOL_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe
      2: build/libtool.m4:1185: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from...
      2: build/libtool.m4:2728: _LT_AC_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:2727: AC_LIBTOOL_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe
      2: build/libtool.m4:1185: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from...
      2: build/libtool.m4:2728: _LT_AC_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:2727: AC_LIBTOOL_LANG_C_CONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me:${as_lineno-$LINENO}: WARNING: output file \`$ofile' does not exist
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me: WARNING: output file \`$ofile' does not exist
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me:${as_lineno-$LINENO}: WARNING: output file \`$ofile' does not look like a libtool script
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me: WARNING: output file \`$ofile' does not look like a libtool script
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me:${as_lineno-$LINENO}: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: tag name \"$tagname\" already exists
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: The macro `AC_LANG_CPLUSPLUS' is obsolete.
      2: configure.ac:161: You should run autoupdate.
      2: ./lib/autoconf/c.m4:262: AC_LANG_CPLUSPLUS is expanded from...
      2: build/libtool.m4:2810: _LT_AC_LANG_CXX_CONFIG is expanded from...
      2: build/libtool.m4:2809: AC_LIBTOOL_LANG_CXX_CONFIG is expanded from...
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe
      2: build/libtool.m4:1185: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from...
      2: build/libtool.m4:2810: _LT_AC_LANG_CXX_CONFIG is expanded from...
      2: build/libtool.m4:2809: AC_LIBTOOL_LANG_CXX_CONFIG is expanded from...
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      2: configure.ac:161: warning: back quotes and double quotes must not be escaped in: $as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe
      2: build/libtool.m4:1185: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from...
      2: build/libtool.m4:2810: _LT_AC_LANG_CXX_CONFIG is expanded from...
      2: build/libtool.m4:2809: AC_LIBTOOL_LANG_CXX_CONFIG is expanded from...
      2: build/libtool.m4:1918: _LT_AC_TAGCONFIG is expanded from...
      2: build/libtool.m4:70: AC_LIBTOOL_SETUP is expanded from...
      2: build/libtool.m4:52: _AC_PROG_LIBTOOL is expanded from...
      2: build/libtool.m4:39: AC_PROG_LIBTOOL is expanded from...
      2: configure.ac:161: the top level
      1: /tmp/pickle.tmp/yaml/yaml-2.2.1/configure  
      2: checking for grep that handles long lines and -e... /bin/grep
      2: checking for egrep... /bin/grep -E
      2: checking for a sed that does not truncate output... /bin/sed
      2: checking for pkg-config... /usr/bin/pkg-config
      2: checking pkg-config is at least version 0.9.0... yes
      2: checking for cc... cc
      2: checking whether the C compiler works... yes
      2: checking for C compiler default output file name... a.out
      2: checking for suffix of executables...
      2: checking whether we are cross compiling... no
      2: checking for suffix of object files... o
      2: checking whether the compiler supports GNU C... yes
      2: checking whether cc accepts -g... yes
      2: checking for cc option to enable C11 features... none needed
      2: checking how to run the C preprocessor... cc -E
      2: checking for icc... no
      2: checking for suncc... no
      2: checking for system library directory... lib
      2: checking if compiler supports -R... no
      2: checking if compiler supports -Wl,-rpath,... yes
      2: checking build system type... x86_64-pc-linux-musl
      2: checking host system type... x86_64-pc-linux-musl
      2: checking target system type... x86_64-pc-linux-musl
      2: checking for PHP prefix... /usr/local
      2: checking for PHP includes... -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
      2: checking for PHP extension directory... /usr/local/lib/php/extensions/no-debug-non-zts-20201009
      2: checking for PHP installed headers prefix... /usr/local/include/php
      2: checking if debug is enabled... no
      2: checking if zts is enabled... no
      2: checking for gawk... no
      2: checking for nawk... no
      2: checking for awk... awk
      2: checking if awk is broken... no
      2: checking whether to enable LibYAML suppot... yes, shared
      2: checking for yaml headers... found in /usr
      2: checking for stdio.h... yes
      2: checking for stdlib.h... yes
      2: checking for string.h... yes
      2: checking for inttypes.h... yes
      2: checking for stdint.h... yes
      2: checking for strings.h... yes
      2: checking for sys/stat.h... yes
      2: checking for sys/types.h... yes
      2: checking for unistd.h... yes
      2: checking for yaml.h... yes
      2: checking for a sed that does not truncate output... /bin/sed
      2: checking for ld used by cc... /usr/x86_64-alpine-linux-musl/bin/ld
      2: checking if the linker (/usr/x86_64-alpine-linux-musl/bin/ld) is GNU ld... yes
      2: checking for /usr/x86_64-alpine-linux-musl/bin/ld option to reload object files... -r
      2: checking for BSD-compatible nm... /usr/bin/nm -B
      2: checking whether ln -s works... yes
      2: checking how to recognize dependent libraries... pass_all
      2: checking for dlfcn.h... yes
      2: checking the maximum length of command line arguments... 98304
      2: checking command to parse /usr/bin/nm -B output from cc object... ok
      2: checking for objdir... .libs
      2: checking for ar... ar
      2: checking for ranlib... ranlib
      2: checking for strip... strip
      2: checking if cc supports -fno-rtti -fno-exceptions... no
      2: checking for cc option to produce PIC... -fPIC
      2: checking if cc PIC flag -fPIC works... yes
      2: checking if cc static flag -static works... yes
      2: checking if cc supports -c -o file.o... yes
      2: checking whether the cc linker (/usr/x86_64-alpine-linux-musl/bin/ld -m elf_x86_64) supports shared libraries... yes
      2: checking whether -lc should be explicitly linked in... no
      2: checking dynamic linker characteristics... GNU/Linux ld.so
      2: checking how to hardcode library paths into programs... immediate
      2: checking whether stripping libraries is possible... yes
      2: checking if libtool supports shared libraries... yes
      2: checking whether to build shared libraries... yes
      2: checking whether to build static libraries... no
      2: 
      2: creating libtool
      2: appending configuration tag "CXX" to libtool
      2: configure: patching config.h.in
      2: configure: creating ./config.status
      2: config.status: creating config.h
      1: make
      2: /bin/sh /tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/libtool --mode=compile cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2    -c /tmp/pickle.tmp/yaml/yaml-2.2.1/yaml.c -o yaml.lo  -MMD -MF yaml.dep -MT yaml.lo
      2: mkdir .libs
      2:  cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pickle.tmp/yaml/yaml-2.2.1/yaml.c -MMD -MF yaml.dep -MT yaml.lo  -fPIC -DPIC -o .libs/yaml.o
      2: /bin/sh /tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/libtool --mode=compile cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2    -c /tmp/pickle.tmp/yaml/yaml-2.2.1/parse.c -o parse.lo  -MMD -MF parse.dep -MT parse.lo
      2:  cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pickle.tmp/yaml/yaml-2.2.1/parse.c -MMD -MF parse.dep -MT parse.lo  -fPIC -DPIC -o .libs/parse.o
      2: /bin/sh /tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/libtool --mode=compile cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2    -c /tmp/pickle.tmp/yaml/yaml-2.2.1/emit.c -o emit.lo  -MMD -MF emit.dep -MT emit.lo
      2:  cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pickle.tmp/yaml/yaml-2.2.1/emit.c -MMD -MF emit.dep -MT emit.lo  -fPIC -DPIC -o .libs/emit.o
      2: /bin/sh /tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/libtool --mode=compile cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2    -c /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c -o detect.lo  -MMD -MF detect.dep -MT detect.lo
      2:  cc -I. -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/include -I/tmp/pickle.tmp/pickle-c01c50303518c74c0c424557f3d8de4f4a712437/main -I/tmp/pickle.tmp/yaml/yaml-2.2.1 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c -MMD -MF detect.dep -MT detect.lo  -fPIC -DPIC -o .libs/detect.o
      2: /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c: In function 'scalar_is_numeric':
      2: /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c:545:24: error: macro "ZEND_ATOL" passed 2 arguments, but takes just 1
      2:   545 |    ZEND_ATOL(*lval, buf);
      2:       |                        ^
      2: In file included from /usr/local/include/php/Zend/zend_range_check.h:22,
      2:                  from /usr/local/include/php/Zend/zend_portability.h:74,
      2:                  from /usr/local/include/php/Zend/zend_types.h:25,
      2:                  from /usr/local/include/php/Zend/zend.h:27,
      2:                  from /usr/local/include/php/main/php.h:31,
      2:                  from /tmp/pickle.tmp/yaml/yaml-2.2.1/php_yaml.h:46,
      2:                  from /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c:36:
      2: /usr/local/include/php/Zend/zend_long.h:76: note: macro "ZEND_ATOL" defined here
      2:    76 | #  define ZEND_ATOL(s) atoll((s))
      2:       |
      2: /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c:545:4: error: 'ZEND_ATOL' undeclared (first use in this function); did you mean 'ZEND_AST_OR'?
      2:   545 |    ZEND_ATOL(*lval, buf);
      2:       |    ^~~~~~~~~
      2:       |    ZEND_AST_OR
      2: /tmp/pickle.tmp/yaml/yaml-2.2.1/detect.c:545:4: note: each undeclared identifier is reported only once for each function it appears in
      

      Flexible heredoc/nowdoc is undocumented

      From manual page: https://php.net/language.types.string


      Heredoc documentation still insists, with a big red warning box and an example, that the closing marker must be by itself on a line without leading whitespace and trailed by only at most a semicolon. This is not true since PHP 7.3, which introduced “flexible” heredoc/nowdoc syntax.

      Recommend Projects

      • React photo React

        A declarative, efficient, and flexible JavaScript library for building user interfaces.

      • Vue.js photo Vue.js

        🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

      • Typescript photo Typescript

        TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

      • TensorFlow photo TensorFlow

        An Open Source Machine Learning Framework for Everyone

      • Django photo Django

        The Web framework for perfectionists with deadlines.

      • D3 photo D3

        Bring data to life with SVG, Canvas and HTML. 📊📈🎉

      Recommend Topics

      • javascript

        JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

      • web

        Some thing interesting about web. New door for the world.

      • server

        A server is a program made to process requests and deliver data to clients.

      • Machine learning

        Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

      • Game

        Some thing interesting about game, make everyone happy.

      Recommend Org

      • Facebook photo Facebook

        We are working to build community through open source technology. NB: members must have two-factor auth.

      • Microsoft photo Microsoft

        Open source projects and samples from Microsoft.

      • Google photo Google

        Google ❤️ Open Source for everyone.

      • D3 photo D3

        Data-Driven Documents codes.