Wordpress en private forks

Door GrimaceODespair op donderdag 27 november 2014 00:06 - Reacties (3)
CategorieŽn: PHP, WordPress, Views: 2.249

Als je vaker WordPress opzet, loont het de moeite om te kijken naar een geautomatiseerde oplossing voor een standaardinstallatie. Enter composer. Composer is de apt-get, de NuGet, de npm, de rpm, ... van PHP. Met andere woorden: het zou de bedoeling moeten zijn om enerzijds gemakkelijk packages te maken, die je anderzijds even gemakkelijk kunt consumeren.

Eťn van de problemen waar je met package managers wel eens tegenaanloopt bij het ontwikkelen, is dat je graag een eigen aangepaste versie van een package zou uitproberen, alvorens je het in het wild loslaat. Het goede nieuws is dat Composer dit ondersteunt, het slechte nieuws dat dit redelijk ondergedocumenteerd is.

De meeste handleidingen gaan ervanuit dat je een eigen Satis or Toran repo moet opzetten. Het kan echter ook zonder.

Voor mijn eigen welzijn en om te voorkomen dat ik dit over een aantal maanden opnieuw moet opzoeken, volgt hier hoe je te werk moet gaan.
packages.json
Maak een custom repository aan (C:\Development\packages.json) met maar 1 package, bv:


XML:
1
2
3
4
5
6
7
8
9
10
11
{
    "package": {
        "name": "myfork/bedrock",
        "version": "1.2.7",
        "source": {
          "url": "C:/Development/MyFork/bedrock",
          "type": "git",
          "reference": "master"
        }
    }
}



Merk op dat dit geen reguliere packages.json is, aangezien er "package" (enkelvoud) in plaats van "packages" staat. Dit is een ongedocumenteerd feature van Composer.

In deze repo kan je naar hartelust je eigen rotzooi committen zonder het openbaar te maken. Ik weet niet zeker of composer ook je openstaande changes meeneemt, dus het kan zijn dat je wel alles lokaal moet committen.
fork
Maak je eigen lokale fork van de repo die je wilt gebruiken voor je create-project. In mijn geval is dat roots/bedrock, een coole Bootstrap-install van WordPress. Mijn issue met de standaardinstallatie, was de locatie van de web-root, die ik per se "public_html" wilde laten heten ipv "web". In mijn eigen fork kon ik dat gemakkelijk aanpassen, en via onderstaand commando deze adaptatie installeren.


code:
1
composer create-project MyFork/bedrock --repository-url C:\Development\packages.json Web



Bovenstaand commando installeert dan WordPress in de Web folder, relatief tov je huidige pad.

Geen rocket science, maar als je niet vertrouwd bent met Composer en Satis, kan bovenstaande samenvatting je aardig wat tijd schelen.

Geen dank :P

Volgende: WooCommerce installeren via Composer 12-'14 WooCommerce installeren via Composer
Volgende: In-band bulk import met SqlServer 12-'13 In-band bulk import met SqlServer

Reacties


Door Tweakers user himlims_, donderdag 27 november 2014 10:36

klinkt leuk, kende dit nog niet. ben beetje met odoo aan het spelen, ook leuk, maar dit ziet er iets dynamischer uit (qua configuratie)

Door Tweakers user TheNephilim, donderdag 27 november 2014 15:03

Ik heb hier lokaal gewoon een WordPress Network draaien. Werkt ook relatief goed en dan hoef je naast het invullen van een subdir, naam en e-mailadres niks meer te doen.

Composer is inderdaad ook wel een mooie oplossing, al kost het gezien eigen aanpassingen vaak net even teveel tijd als je updates oid. hebt.

Door Tweakers user GrimaceODespair, donderdag 27 november 2014 20:29

TheNephilim schreef op donderdag 27 november 2014 @ 15:03:
Composer is inderdaad ook wel een mooie oplossing, al kost het gezien eigen aanpassingen vaak net even teveel tijd als je updates oid. hebt.
Ja, voor syncs gebruik ik dan ook FileZilla. Niet foolproof, maar wel retehandig als je Gesynchroniseerd Bladeren gebruikt. Vooral het automatisch detecteren van veranderde bestanden, komt erg van pas voor kleine wijzigingen.

Ik heb ook eventjes Capistrano overwogen, maar daarvoor heb je shell access nodig op je doelserver, en dat is een randvoorwaarde die ik niet wil creŽren.

Reageren is niet meer mogelijk