Skip to content
Snippets Groups Projects
Commit 33785858 authored by lucha's avatar lucha
Browse files

Revert "contrariamente a quanto dicono nella documentazione, si può fare...

Revert "contrariamente a quanto dicono nella documentazione, si può fare spacchettare tutto nella stessa directory, senza creare una directory wp/ per core"

Si può fare, ma se viene fatto un update di wordpress core poi si perdono tutti i temi/plugin/etc.

Ho cambiato leggermente la struttura delle directory generate, ed ho spiegato tutto dentro README.md

This reverts commit 19f27161.
parent 44c7ae2d
No related branches found
No related tags found
No related merge requests found
vendor/*
auth.json
mu-plugins-src/*
app/*
......@@ -72,11 +72,28 @@ Per ri-applicare tutte the patches senza aggiornare le dipendenze (per fare prim
composer update nothing
```
# Struttura delle directory di Wordpress
# Struttura delle directory generate
Composer non è contento di spacchettare due dipendenze nella stessa directory. Quindi separa wordpress-core in ```app/wp```, mentre c'è un ```app/wp-content``` dove vengono spachettati i vari temi/plugins/etc. Bisognerà fare dei magheggi per riscrivere le URL. [Vedi qui](https://www.smashingmagazine.com/2019/03/composer-wordpress/) e [qui](https://roots.io/docs/bedrock/master/server-configuration/#apache-configuration-for-bedrock).
Composer quando aggiorna un pacchetto, rimuove tutti i file che trova nella directory dove deve essere spacchettato, prima di mettere quelli nuovi (di modo che non rimangano file "vecchi"). Questo vuol dire che se si aggiorna wordpress-core dopo aver installato temi e pacchetti, questi ultimi vengono rimossi, **a meno che** non siano stati installati in una directory separata.
Altenativamente, possiamo rimettere tutto a posto quando creiamo l'immagine Docker, che forse è la cosa più semplice da fare.
Mi sembra che di suo composer segua l'ordine dei requirement nel file json nell'ordine in cui sono scritti, per cui forse non è un problema. L'alternativa, sicuramente più "stabile", è separare le directory in questo modo:
- una directory ```app/``` dove troveremo tutto il codice che dovrà andare dentro il container
- una directory ```vendor/``` dove verranno spacchettate alcune dipendenze di cui però solo alcuni file vengono copiati, tramite il meccanismo dei ```drop-in```, dentro ```app/```. I drop-in non cancellano nessun file quindi non abbiamo problema a mandare più cose dentro la stessa destinazione.
A sua volta ```app/``` è strutturata così:
- una directory ```app/wp-core``` dove viene spacchettato il codice di wordpress core
- una directory ```app/wp-root``` che sarà la root di wordpress dove mettere tutto il resto
In particolare dentro ```app/wp-root``` avremo
- una directory ```wp-content``` separata dove spacchettare temi, plugin, traduzioni
- una directory ```wp-includes``` separta dove mettere alcune librerie js
- ci sono inoltre dei file "spuri", principalmente di r2db e hyperdb, che vanno messi in giro. Questi al momento sono:
+ ```db.php``` e ```advanced-cache.php``` che vanno in ```app/wp-root/wp-content```
+ ```db-config.php```, ```r2db/```, ```wp-nginx-map-json.php``` e ```wp-nginx-map.php``` che devono stare nella root di wordpress, quindi li mettiamo direttamente in ```app/wp-root/```
Al momento di creare il container, ci dobbiamo ricordare che i contenuti di ```app/wp-core``` vanno copiati dentro ```app/wp-root```, e che questa è l'unica directory che va tenuta dentro il container.
# Come dovrebbe funzionare a regime
......
......@@ -93,26 +93,26 @@
"noblogs/remove-gravatar": "^0.1.0"
},
"extra": {
"wordpress-install-dir": "app/",
"wordpress-install-dir": "app/wp-core",
"installer-types": ["bower-asset", "npm-asset"],
"installer-paths": {
"mu-plugins-src/{$name}": [
"vendor/{$name}": [
"wpackagist-plugin/hyperdb",
"wpackagist-plugin/disable-wordpress-updates",
"wpackagist-plugin/wpmu-new-blog-defaults",
"wpackagist-plugin/more-privacy-options",
"wpackagist-plugin/disable-emojis",
"type:wordpress-muplugin"],
"app/{$name}": ["type:wordpress-dropin"],
"app/wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
"app/wp-content/themes/{$name}/": ["type:wordpress-theme"],
"app/wp-includes/js/{$name}/": ["type:npm-asset", "type:bower-asset"]
"app/wp-root/{$name}": ["type:wordpress-dropin"],
"app/wp-root/wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
"app/wp-root/wp-content/themes/{$name}/": ["type:wordpress-theme"],
"app/wp-root/wp-includes/js/{$name}/": ["type:npm-asset", "type:bower-asset"]
},
"wordpress-language-dir": "app/wp-content/languages/",
"wordpress-language-dir": "app/wp-root/wp-content/languages/",
"wordpress-languages": [ "en_GB", "it_IT" ],
"patches-file": "composer.patches.json",
"dropin-paths": {
"app/wp-content/mu-plugins" : [
"app/wp-root/wp-content/mu-plugins" : [
"package:wpackagist-plugin/disable-wordpress-updates:disable-updates.php",
"package:wpackagist-plugin/wpmu-new-blog-defaults:cets_blog_defaults.php",
"package:wpackagist-plugin/more-privacy-options:ds_wp3_private_blog.php",
......@@ -120,8 +120,8 @@
"package:noblogs/ai-mu-plugins:embed.php,remove-password-change-notification.php,send-smtp-email.php",
"package:noblogs/noblogs-wp-ssl:noblogs-wp-ssl.php"
],
"app/wp-content": ["package:wpackagist-plugin/hyperdb:db.php", "package:wpackagist-plugin/wp-super-cache:advanced-cache.php"],
"app": ["package:noblogs/r2db:db-config.php,nginx-map/wp-nginx-map-json.php,nginx-map/wp-nginx-map.php"]
"app/wp-root/wp-content": ["package:wpackagist-plugin/hyperdb:db.php", "package:wpackagist-plugin/wp-super-cache:advanced-cache.php"],
"app/wp-root": ["package:noblogs/r2db:db-config.php,nginx-map/wp-nginx-map-json.php,nginx-map/wp-nginx-map.php"]
}
}
}
......@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "9379ac8609fce3a62060ed5a3ab21343",
"content-hash": "ebc9141a092ac29f1a6071d970eaefa5",
"packages": [
{
"name": "bjornjohansen/wplang",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment