WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5....

27
Skomponuj WordPressa Piotr Niewiadomski Tech Lead & WordPress Dev

Transcript of WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5....

Page 1: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Skomponuj WordPressa

Piotr NiewiadomskiTech Lead & WordPress Dev

Page 2: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Agenda

1. Czym (nie) jest Composer?2. Podstawy3. Skomponuj WordPressa4. Tips & Tricks5. Pros & Cons

Page 3: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Composer = *Menedżer zależności

Composer to system zarządzania pakietami dla języka PHP, dostępny jako aplikacja wiersza poleceń, która dostarcza i standaryzuje format zarządzania zależnościami skryptami i bibliotekami.

*per-project (npm, bundler) nie globalnie (yum, apt)

Page 4: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Composer = Wiersz poleceń

$ composer require fortawesome/font-awesome twbs/bootstrap

Page 5: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

źródło: https://wpart.pl/composer-wordpress-cz-1/

Page 6: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Composer = composer.json

{ "require": { "twbs/bootstrap": "^3.3", "fortawesome/font-awesome": "^4.7" }}

$ composer install

Page 7: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Skąd te paczki?

Page 8: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Skomponuj WordPressa

1. Instalacja i aktualizacja WordPressa2. Instalacja i aktualizacja wtyczek/motywów3. Automatyzacja wdrożeń4. Generowanie wtyczek/motywów

Page 9: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Problem = Spójność środowisk

Posiadamy wiele stron opartych o zbliżoną konfigurację i zawierających podobne zależności, na przykład w postaci:● wtyczek ● motywów ● bibliotek● samego WordPressa

Page 10: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Oldschool = Repozytoria projektówwp-adminwp-contentwp-includesindex.phplicense.txtreadme.htmlwp-activate.phpwp-blog-header.phpwp-comments-post.phpwp-config-sample.phpwp-cron.phpwp-links-opml.phpwp-load.phpwp-login.phpwp-mail.phpwp-settings.phpwp-signup.phpwp-trackback.phpxmlrpc.php

Page 11: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Dziel i zwyciężaj = Repozytoria paczekcomposer.json

Page 12: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Paczka = WordPress{ "require": { "johnpbloch/wordpress": "*", }, "extra": { "installer-paths": { "wp-content/mu-plugins/{$name}/": ["type:wordpress-muplugin"], "wp-content/plugins/{$name}/": ["type:wordpress-plugin"], "wp-content/themes/{$name}/": ["type:wordpress-theme"], "wp-content/{$name}/": ["type:wordpress-dropin"] }, "wordpress-install-dir": "wp-core" }}

Page 13: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Paczka = Wtyczka/Motyw{ "repositories": [ { "type": "composer", "url": "https://wpackagist.org" } ], "require": { "wpackagist-plugin/wordpress-seo": "*", "wpackagist-theme/twentynineteen": "1.3" }}

Page 14: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Repozytoria = Packagist + WPackagist

Page 15: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Własny Packagist = packages.json{

"packages": {"vendor/repository": {

"dev-master": {"name": "vendor/repository","version": "dev-master","type": "wordpress-plugin","source": {

"type": "git","url": "[email protected]:vendor/repository.git","reference": "master"

}}

}}

}

Page 16: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Płatne wtyczki = Archiwa{ "repositories": [ { "type": "zip", "url": "https://connect.advancedcustomfields.com/index.php?

a=download&p=pro&k={%PLUGIN_ACF_KEY}&t={%version}",

... }, { "type": "zip", "url": "https://wpml.org/?

download=6088&user_id={%PLUGIN_WPML_USER_ID}&subscription_key={%PLUGIN_WPML_SUBSCRIPTION_KEY}&version={%version}",

... } ]}

Page 17: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Własne paczki = Prywatne repozytoria{

"repositories": [{

"type":"package","package": { "name": "vendor/repository", "version": "dev-master", "source": {

"url": "https://github.com/vendor/repository.git", "type": "git", "reference": "master"}

}}

],"require": {

"vendor/repository": "dev-master"}

}

Page 18: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

WordPress = Zależność

wp-contentwp-corecomposer.jsoncomposer.lockwp-config.php.htaccess

$ composer install

Page 19: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Konfiguracja = wp-config.phpdefine( 'WP_CONTENT_DIR', __DIR__ . '/wp-content' );define( 'WP_CONTENT_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/wp-content' );

Page 20: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Konfiguracja = .htaccessRewriteRule ^((wp-content).*) $1 [L]RewriteRule ^(.*)$ /wp-core/$1 [L]

Page 21: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Aktualizacje?

..."scripts": { "post-update-cmd": [ "wp plugin deactivate --all" ]}

$ composer update

podziękowania dla: Krzysztof Dróżdż

Page 22: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Nowy projekt = motyw?

$ composer create-project roots/sage

Page 23: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Nowy projekt = wtyczka?

$ composer create-project clearcode/wordpress-plugin

Page 24: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Nowy projekt = Własna paczka?

{ "name": "clearcode/test", "description": "opis", "type": "wordpress-plugin", "require": { "php": "^7.2" }, "license": "GPL", "minimum-stability": "dev"}

$ composer init

Page 25: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Composer = Zysk

1. Spójność środowisk.2. Łatwość wdrożeń/instalacji/aktualizacji.3. Bezproblemowy rollback.4. Czyste repozytoria projektów.5. Stosowanie się do zasady DRY.6. Separację "zależności" od treści.7. Poprawione bezpieczeństwo.

Page 26: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

Research = Gotowe rozwiązania

Clearcode - WordPress Boilerplatehttps://github.com/ClearcodeHQ/wordpress

Bedrock - WordPress Stackhttps://github.com/roots/bedrock

WordPress- Composer Forkhttps://github.com/johnpbloch/wordpress

Page 27: WordPressa Skomponuj - WordUp Silesia€¦ · Podstawy 3. Skomponuj WordPressa 4. Tips & Tricks 5. Pros & Cons. Composer = *Menedżer zależności Composer to system zarządzania

[email protected]://clearcode.cc

Dziękuję za uwagę

Pytania?Konkurs!