Workflow / toolchain? What's yours like?

smalpierre

New member
I'm primarily a PHP developer (at least for web apps), and I'm frequently pressed into service as a front end developer.

I don't do ANY graphic design - I have GIMP and Inkscape since I'm not paying for Photoshop / Illustrator - I rarely use them, and even then I'm resizing, or exporting to change formats ... nothing creative.

So here's the tools I use:

IDE / dev tools-
PHPStorm
MySql Workbench

Toolchain-
Git
Ruby with the following 4 gems:
Sass - which is needed
Susy 2
Compass - only because it's easier to set up the compass transpiler than the scss one in PHPStorm
Haml - which I'm starting to use, but might drop it later.
FileZilla - if you consider it part of the toolchain. It's not used in development, only deployment so ...

Of the 3 Ruby gems, I'd really like to only have the Sass compiler, and I'd rather use LibSass - a C++ library that is MUCH faster but it's a pain, and Haml - which I have no idea if there's a non-Ruby transpiler. I think there's a PHP one, but I want a compiled binary like LibSass.

When I'm done with my current project, I'm going to be looking into getting rid of Ruby and Compass in favor of using LibSass for Sass, and something else for Haml.

My workflow goes something like this right now (and I hope to change it when I get rid of Ruby!):

Create a directory, and populate it with my skeleton backend system then point the local dev server at it.
Create a PhpStorm project out of it, and a Compass project, then initialize a Git repository there, and exclude the PhpStorm project directory (.idea folder) and the ruby config file. Then I set up the config.rb file to include things other than compass - like Susy that I might be using in that project. At this point, I set up the PhpStorm projects file watchers for Sass and Haml, and set up Git in the ide.

On the test server (external LAMP server) I create a new site for it, and I have a procedure to setup Git repos for 3 tier deployment. At this point, I can start working and make git commits to the local repo, and when I've got it to where I want a client to start testing it I use git to push to the test server, and send them a link. They can play with that now, as I work on more stuff locally.

Then begins a cycle of features being added, changes being made, and pushes to test. At some point, they tell me to go live and I git push the site up to the production webserver. When database changes have to be pushed, I replicate with MySql Workbench. If I can't get direct database access, I'll output the sql to make the changes, log into their hosting account and run it with phpmyadmin ...

It sounds a little crazy - but git is WAY faster than ftp - and if I bork something I can reverse it easily! usually I exclude things like image directories from git and FTP them up - at least I do if they're heavy.

And that's all there is to it - cut dry and simple right? :D


Oh, and if they don't have git on the production server, I backup production, and ftp up from test the old school way.
 

GigaGreg

Moderator
Staff member
Wow such a great topic buddy.

I am primarly a web designer / User Interface Designer and I use many different tools depending on what I really need.

Developing tools:
Brackets, Notepad++, FileZilla, Html5, CSS3, JavaScript

Design tools:
Adobe Photoshop, Illustrator, GIMP, Fireworks, Adobe Flash.

Devices: Apple Macbook, PC

I design and create graphics as much as I can, sometimes I combine already created assets together to complete graphic elements. At the moment I am working on a project for College work which is a game, I have combined different pre-made assets that are free to use, thanks to http://opengameart.org/

I tend to design websites only, because this is so fun and give me a lot of power to do so even though I design in a very simple way it is still very good and look professional.

At home for viewing php scripts related to my simple websites I use XAMPP which is the best for local host servers.

I have a lot to do at the college at the moment which means that I cannot learn new things that would be cool to have, but I am trying to learn new stuff all the time and trying to keep up with them.
 

smalpierre

New member
If you're doing a lot of CSS3, I'd highly suggest Sass 3 with the scss syntax. You don't have to integrate it into your dev environment like I have, you can set a file watcher on the command line that runs in the background so any time your scss file gets saved, it automatically runs the transpiler.