Nette je PHP 7.3 ready

🗓 31/12/2018  ⏳ 2 min read  💬 400 words

Poslední verze Nette je opravdu PHP 7.3 ready. Beží na něm například portál componette.com.

Jak už nadpis napovídá, Nette, aktuálně poslední stable verze 2.4, je připraveno na PHP 7.3. Nejenom componette.com, ale i kluci z Pecka Design potvrzují připravenost.

Pokud váháte jak PHP 7.3 otestovat, doporučuji vyzkoušet Docker. Přes celkem jednoduchý Dockerfile jste schopni váš projekt rozjet a otestovat základní vlastnosti.

Toto je Dockerfile na componette:

FROM php:7.3-fpm-alpine

# Install application dependencies
RUN apk add --no-cache curl bash
RUN curl https://getcaddy.com | bash -s personal http.expires,http.realip
RUN docker-php-ext-install mbstring mysqli pdo pdo_mysql

ADD . /srv/app
ADD .docker/app/Caddyfile /etc/Caddyfile
COPY .docker/app/config/php.ini /usr/local/etc/php/

WORKDIR /srv/app/
RUN chown -R www-data:www-data /srv/app

CMD ["/usr/local/bin/caddy", "--conf", "/etc/Caddyfile", "--log", "stdout"]

Jak je vidno, vycházím tu z oficiálního PHP 7.3 FPM image a jako webserver používám Caddy server. Caddy server je napsaný v Go a jeho konfigurace je vážně minimalistická. Obohatil jsem ji raději komentáři, ať se v tom člověk lépe vyzná.

# Listening on
0.0.0.0

# Set the document root of the site.
root /srv/app/www

# Compress the transmitted data
gzip

# Set the path to the php-fpm process.
fastcgi / 127.0.0.1:9000 php

# Main rewrite to route non-existent files to index.php file.
rewrite {
  if {file} not favicon.ico
  to {path} {path}/ /index.php?{path}&{query}
}

header / {
  # Don't show Caddy/Gunicorn as server header.
  -Server

  # Enable HTTP Strict Transport Security (HSTS) to force clients to always
  # connect via HTTPS (do not use if only testing)
  Strict-Transport-Security "max-age=31536000;"

  # Enable cross-site filter (XSS) and tell browser to block detected attacks
  X-XSS-Protection "1; mode=block"

  # Prevent some browsers from MIME-sniffing a response away from the declared Content-Type
  X-Content-Type-Options "nosniff"

  # Disallow the site to be rendered within a frame (clickjacking protection)
  X-Frame-Options "DENY"
}

log stdout
errors stdout
on startup php-fpm --nodaemonize

Používáte Caddy server na produkci nebo jenom na vývoj, podělte se do komentářů.