From 33785858d3a3d359e469eb38b171746025fe4ea9 Mon Sep 17 00:00:00 2001
From: lucha <lucha@paranoici.org>
Date: Sat, 26 Sep 2020 11:39:14 -0700
Subject: [PATCH] =?UTF-8?q?Revert=20"contrariamente=20a=20quanto=20dicono?=
 =?UTF-8?q?=20nella=20documentazione,=20si=20pu=C3=B2=20fare=20spacchettar?=
 =?UTF-8?q?e=20tutto=20nella=20stessa=20directory,=20senza=20creare=20una?=
 =?UTF-8?q?=20directory=20wp/=20per=20core"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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 19f271616b70fb9edfe3064d4ade1245c3ca4e7a.
---
 .gitignore    |  1 -
 README.md     | 23 ++++++++++++++++++++---
 composer.json | 20 ++++++++++----------
 composer.lock |  2 +-
 4 files changed, 31 insertions(+), 15 deletions(-)

diff --git a/.gitignore b/.gitignore
index 7ee8d0f8..40fad208 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
 vendor/*
 auth.json
-mu-plugins-src/*
 app/*
diff --git a/README.md b/README.md
index 2b0f57f3..95026264 100644
--- a/README.md
+++ b/README.md
@@ -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
 
diff --git a/composer.json b/composer.json
index 68b8c339..67750669 100644
--- a/composer.json
+++ b/composer.json
@@ -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"]
         }
     }
 }
diff --git a/composer.lock b/composer.lock
index 24a26a1c..86b7caff 100644
--- a/composer.lock
+++ b/composer.lock
@@ -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",
-- 
GitLab