Tovább a tartalomhoz

Bedrock

Modern WordPress fejlesztési környezet Composer alapokon a Roots csapattól.

A Bedrock egy modern WordPress boilerplate, amely továbbfejlesztett mappastruktúrával, Composer alapú függőségkezeléssel és egyszerű konfigurációval rendelkezik. A Roots csapat fejleszti és tartja karban.

A Bedrock a WordPress fejlesztés legjobb gyakorlatait követi:

  • Composer alapú függőségkezelés - WordPress core, pluginok és témák kezelése Composerrel
  • Továbbfejlesztett mappastruktúra - A wp-content mappa elkülönítve az alkalmazás gyökérkönyvtárától
  • Környezeti változók - .env fájl alapú konfiguráció (dotenv)
  • Biztonságosabb - A webroot csak a publikus fájlokat tartalmazza
  • Egyszerű deploy - Alkalmas modern deployment workflow-khoz
site/
├── composer.json # Függőségek definíciója
├── config/
│ ├── application.php # Fő WordPress konfiguráció
│ └── environments/
│ ├── development.php # Fejlesztői környezet beállítások
│ ├── staging.php # Staging környezet beállítások
│ └── production.php # Éles környezet beállítások
├── vendor/ # Composer függőségek
├── web/ # Webroot (document root)
│ ├── app/ # wp-content megfelelője
│ │ ├── mu-plugins/ # Must-use pluginok
│ │ ├── plugins/ # Pluginok
│ │ ├── themes/ # Témák
│ │ └── uploads/ # Feltöltések
│ ├── wp-config.php # WordPress betöltő
│ ├── index.php # WordPress belépési pont
│ └── wp/ # WordPress core (Composer által kezelt)
└── .env # Környezeti változók
  • PHP >= 8.0
  • Composer
Terminál
composer create-project roots/bedrock projekt-neve

Másold le a .env.example fájlt .env néven és töltsd ki:

Terminál
cd projekt-neve
cp .env.example .env

Szerkeszd a .env fájlt:

DB_NAME='adatbazis_neve'
DB_USER='adatbazis_felhasznalo'
DB_PASSWORD='adatbazis_jelszo'
DB_HOST='localhost'
WP_ENV='development'
WP_HOME='https://example.com'
WP_SITEURL="${WP_HOME}/wp"
# Generálj egyedi kulcsokat: https://roots.io/salts.html
AUTH_KEY='generalt-kulcs'
SECURE_AUTH_KEY='generalt-kulcs'
LOGGED_IN_KEY='generalt-kulcs'
NONCE_KEY='generalt-kulcs'
AUTH_SALT='generalt-kulcs'
SECURE_AUTH_SALT='generalt-kulcs'
LOGGED_IN_SALT='generalt-kulcs'
NONCE_SALT='generalt-kulcs'

A Bedrock alapértelmezetten a WPackagist repository-t használja.

Terminál
# WordPress.org pluginok
composer require wpackagist-plugin/wordpress-seo
# Prémium pluginok (ha van Composer repository-juk)
composer require developer/premium-plugin
Terminál
composer require wpackagist-theme/flavor
Terminál
composer update roots/wordpress

A Bedrock támogatja a különböző környezeteket a WP_ENV változó segítségével:

  • development - Fejlesztői környezet
  • staging - Tesztkörnyezet
  • production - Éles környezet

A config/environments/ mappában külön fájlokban definiálhatod az egyes környezetek beállításait:

config/environments/development.php:

<?php
use Roots\WPConfig\Config;
Config::define('SAVEQUERIES', true);
Config::define('WP_DEBUG', true);
Config::define('WP_DEBUG_DISPLAY', true);
Config::define('WP_DEBUG_LOG', true);
Config::define('SCRIPT_DEBUG', true);
ini_set('display_errors', '1');

config/environments/production.php:

<?php
use Roots\WPConfig\Config;
Config::define('WP_DEBUG', false);
Config::define('WP_DEBUG_DISPLAY', false);
Config::define('DISALLOW_FILE_EDIT', true);
Config::define('DISALLOW_FILE_MODS', true);

A must-use pluginokat a web/app/mu-plugins/ mappába helyezd. Ezek automatikusan betöltődnek és nem lehet őket kikapcsolni az admin felületen.

Composer csomagként:

{
"extra": {
"installer-paths": {
"web/app/mu-plugins/{$name}/": [
"type:wordpress-muplugin"
]
}
}
}

A Bedrock tökéletesen alkalmas Git-alapú deployment-re:

Terminál
# .gitignore már megfelelően van beállítva
git init
git add .
git commit -m "Initial commit"
Terminál
composer install --no-dev --optimize-autoloader

A document root a web/ mappára kell mutasson:

Apache (.htaccess a web/ mappában):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Nginx:

server {
listen 80;
server_name example.com;
root /srv/www/example.com/web;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}

A Roots csapat Sage témáját kifejezetten Bedrock-kal való használatra tervezték:

Terminál
# Sage téma telepítése
composer require roots/sage
# Vagy közvetlenül a themes mappába
cd web/app/themes
composer create-project roots/sage tema-neve

Prémium pluginokhoz, amelyek nem érhetők el WPackagist-en, több lehetőséged van:

{
"repositories": [
{
"type": "composer",
"url": "https://connect.developer.com"
}
]
}
{
"repositories": [
{
"type": "package",
"package": {
"name": "developer/premium-plugin",
"version": "1.0.0",
"type": "wordpress-plugin",
"dist": {
"url": "https://example.com/plugin.zip",
"type": "zip"
}
}
}
]
}

A SatisPress WordPress plugin segítségével saját Composer repository-t hozhatsz létre a prémium pluginjaidból.

Terminál
# Projekt létrehozása
composer create-project roots/bedrock
# Függőségek telepítése
composer install
# Plugin hozzáadása
composer require wpackagist-plugin/plugin-neve
# Plugin eltávolítása
composer remove wpackagist-plugin/plugin-neve
# Frissítések keresése
composer outdated
# Minden frissítése
composer update

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások