Milan Felix Šulc

Nette je PHP 7.3 ready

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

31/12/2018
2 min read
400 words

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ářů.

Currently working

I am currently digging deeper to serverless stuf. Also trying to do my best around Nette [contributte.org & componette.org]. Taking care of 242 libraries across various Github organizations.