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.
Miért Bedrock?
Szekció neve “Miért Bedrock?”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-contentmappa elkülönítve az alkalmazás gyökérkönyvtárától - Környezeti változók -
.envfájl alapú konfiguráció (dotenv) - Biztonságosabb - A webroot csak a publikus fájlokat tartalmazza
- Egyszerű deploy - Alkalmas modern deployment workflow-khoz
Mappastruktúra
Szekció neve “Mappastruktúra”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ókTelepítés
Szekció neve “Telepítés”Előfeltételek
Szekció neve “Előfeltételek”- PHP >= 8.0
- Composer
Új projekt létrehozása
Szekció neve “Új projekt létrehozása”composer create-project roots/bedrock projekt-neveKörnyezeti változók beállítása
Szekció neve “Környezeti változók beállítása”Másold le a .env.example fájlt .env néven és töltsd ki:
cd projekt-nevecp .env.example .envSzerkeszd 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.htmlAUTH_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'Pluginok és témák kezelése
Szekció neve “Pluginok és témák kezelése”A Bedrock alapértelmezetten a WPackagist repository-t használja.
Plugin telepítése
Szekció neve “Plugin telepítése”# WordPress.org pluginokcomposer require wpackagist-plugin/wordpress-seo
# Prémium pluginok (ha van Composer repository-juk)composer require developer/premium-pluginTéma telepítése
Szekció neve “Téma telepítése”composer require wpackagist-theme/flavorWordPress core frissítése
Szekció neve “WordPress core frissítése”composer update roots/wordpressKörnyezetek kezelése
Szekció neve “Környezetek kezelése”A Bedrock támogatja a különböző környezeteket a WP_ENV változó segítségével:
development- Fejlesztői környezetstaging- Tesztkörnyezetproduction- Éles környezet
Környezet-specifikus beállítások
Szekció neve “Környezet-specifikus beállítások”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);Must-Use pluginok
Szekció neve “Must-Use pluginok”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" ] } }}Deployment
Szekció neve “Deployment”Git-alapú deployment
Szekció neve “Git-alapú deployment”A Bedrock tökéletesen alkalmas Git-alapú deployment-re:
# .gitignore már megfelelően van beállítvagit initgit add .git commit -m "Initial commit"Composer install a szerveren
Szekció neve “Composer install a szerveren”composer install --no-dev --optimize-autoloaderWebszerver konfiguráció
Szekció neve “Webszerver konfiguráció”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; }}Bedrock + Sage téma
Szekció neve “Bedrock + Sage téma”A Roots csapat Sage témáját kifejezetten Bedrock-kal való használatra tervezték:
# Sage téma telepítésecomposer require roots/sage
# Vagy közvetlenül a themes mappábacd web/app/themescomposer create-project roots/sage tema-nevePrémium pluginok kezelése
Szekció neve “Prémium pluginok kezelése”Prémium pluginokhoz, amelyek nem érhetők el WPackagist-en, több lehetőséged van:
1. Privát Composer repository
Szekció neve “1. Privát Composer repository”{ "repositories": [ { "type": "composer", "url": "https://connect.developer.com" } ]}2. Közvetlen ZIP letöltés
Szekció neve “2. Közvetlen ZIP letöltés”{ "repositories": [ { "type": "package", "package": { "name": "developer/premium-plugin", "version": "1.0.0", "type": "wordpress-plugin", "dist": { "url": "https://example.com/plugin.zip", "type": "zip" } } } ]}3. Satispress
Szekció neve “3. Satispress”A SatisPress WordPress plugin segítségével saját Composer repository-t hozhatsz létre a prémium pluginjaidból.
Hasznos parancsok
Szekció neve “Hasznos parancsok”# Projekt létrehozásacomposer create-project roots/bedrock
# Függőségek telepítésecomposer install
# Plugin hozzáadásacomposer require wpackagist-plugin/plugin-neve
# Plugin eltávolításacomposer remove wpackagist-plugin/plugin-neve
# Frissítések keresésecomposer outdated
# Minden frissítésecomposer update