Composer v2

Composer v2 ja dudestack v2 (esitetty muutos 16.2.2021) tuovat mukanaan useamman breaking changen, eli muutoksia, jotka rikkovat toiminnallisuutta. Nämä aiheuttavat väistämättä pientä legasoitumista uusiinkin projekteihin. Tämä johtuu puhtaasti siitä, että composerin toista versiota eivät kaikki käytössä olevat riipuvuudet ja paketit enää tuekaan, vaan ne pitää päivittää.

Edellisessä työstämässäsi projektissa composer update -komento saattaa aiheuttaa tällaisen virheen:

Avataan composer.json -tiedosto ja korjataan alla olevat rivit vastaamaan näitä versioita (katso tässä kohtaa että WordPress on aina uusimmassa versiossa):

"php": ">=7.2",
"composer/installers": "^1.10.0",
"johnpbloch/wordpress": "5.6.1",
"vlucas/phpdotenv": "^5.3",

Lisätään kaksi uutta pakettia:

"oscarotero/env": "^2.1",
"roots/wp-config": "^1.0"

Poista composer.lock-tiedosto, jos sellainen löytyy. Nyt composer update komennon pitäisi mennä läpi. Jos projekti on vieläkin vanhempi, saattaa composer.json herjata muutakin, kuten wp-cli paketista, joka on aikojen saatossa päivittynyt muodosta "wp-cli/wp-cli": "*", muotoon "wp-cli/wp-cli-bundle": "*", ja Duden plugins-reposta, joka on päivittynyt muodosta dude.fi/plugins muotoon plugins.dude.fi. Näissä projekteissa projektin on oltava kuitenkin 4+ vuotta vanhaa, eli oikeasti legacya. Tarkista uusimmat paketit aina tarvittaessa dudestackin composer.json-tiedostosta.

Tämän jälkeen sivusto palauttaa kuitenkin Fatal errorin:

Fatal error: Uncaught TypeError: Argument 1 passed to Dotenv\Dotenv::__construct() must be an instance of Dotenv\Store\StoreInterface, string given

Tämä johtuu siitä, että vanha sivusto ei tue uutta phpdotenviä. Asia on kuitenkin helppo korjata. Nappaa dudestackista uusimmat config/ alla olevat php-tiedostot, korvaa projektin vastaavat siis uusilla (huom. vain .php-tiedostot, ei .rb-tiedostoja!).

Advanced Custom Fields Pro ja muut maksulliset lisäosat

ACF-Pro:sta on ollut käytössä deprekoitunutta repoa, joka on composer v2:n myötä korvattu uudella. Tästä löytyy infoa dudestackin READMEsta, tässä suora linkki.

Näiden muutosten jälkeen homma toimii taas.

Tämä Handbook kertoo kuinka me teemme asioita Dudella, mutta saa ottaa koppia myös omaan toimintaan. Emme takaa että kaikki meidän jutut toimivat muilla samalla tavalla. Ole mitä olet! Kaikki on avointa GitHubissa: digitoimistodude/handbook