Nette je PHP 7.3 ready

31.12.2018
2 min read
322 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.

xf3l1x PeckaDesignDev

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.