Alright I'll give you an overview of my workflow as well.
Setup
Hardware
- Main machine (desktop):
- Some HP EliteDesk computer I won at a competition
- 8 GB ram, SSD
- Dual 24" full hd screens
- Secondary machine (laptop):
- MacBookAir 13"
- 8 GB ram, SSD
Software on both machines
- Ubuntu 16.04
- PHPStorm
- Other text editors when PHPStorm is too heavy: gedit, VSCode, Bluefish
- Firefox
- Apache, PHP, Mysql installed locally
- Composer, Yarn
Workflow
I have a Flarum install in /var/www/flarum
that I serve via Apache. This install is configured with a workbench
directory where all my extensions are. I plan to change this now that I can use the PHP dev server with Flarum. I usually try to store my projects as ~/Projects/{vendor}/{package}
.
When starting a new extension, I simply clone an existing extension in my workbench
folder. I choose the one which has the most re-usable things for the new project. I then copy other files from other extensions until I have everything I need that already exist.
Then I do some cleanup, I delete the .git
data, change the namespaces, remove content from the README
, etc...
When working on a project I always have a ton of tabs open in my browser. I usually have multiple tabs for Flagrow core as it's my main source of documentation, but also many tabs for other Flagrow projects I'm copying code from.
I commit via the editor I'm using (PHPStorm or VS Code), but I usually use the command line for every other git, gulp, yarn or composer operation.
When testing something, I use a combination of Firefox Private Browsing and Chrome windows to access my app via multiple users at once. I also often launch a ton of PHP dev servers with different configurations, but this does not apply so much to Flarum.
When an extension is ready and published, I have a second local Flarum install with no workbench where I check the composer packages are working.
Oh, and music: I'm usually tuned to Radio Paradise, which is a great web radio with no ads, but I also use Spotify when I want some change (but I'm on a free account so it sucks)
I feel like I'm missing a lot of steps in there, but I already wanted to share this ?