Tools and workflow for PHP Development. One of the reasons I started this my blog and this podcast was because I’m always interested in how people do their job. There are a few podcast I listen to and follow, and people talk about things they are using or excited about but, it is always just […]
Tools and workflow for PHP Development.
One of the reasons I started this my blog and this podcast was because I’m always interested in how people do their job. There are a few podcast I listen to and follow, and people talk about things they are using or excited about but, it is always just a piece of what they are using – they might talk about a framework or an ide or this or that, but everything is piece meal and I sometimes wish they would talk about how it all fits together. Well that’s the whole point of this podcast today – to share what tools I use and the work flow that I employ.
So I’m a Web Developer – I started developing in PHP because my partner – who was the primary developer for our company decided to use PHP – this was 2003 – the dynamic web was still very young – PHP was the hotness and that’s what we went with. I’ve never run into any issues with it – I know everyone has an opinion when it comes to languages – but I’ve not run into a specific instance where PHP wouldn’t work for us. So I’ve stuck with it all of these years.
What types of Projects do I work on?
I mostly work by myself although I have worked with teams in the past. I primarily have 4 different types of jobs I work on – Simple Websites (simple meaning – a website for a client), WordPress Websites (used for Microsites or for clients that want or need WordPress), Marketing Campaign websites or systems (usually thousands of pages, and need advance analytics and realtime results tracking), and Custom Web Applications (systems and apps that need a web interface – has users / reports / exports / all kinds of custom created madness). I’ll walk you through my work flow and process for each of these.
Custom Website Development
– Using Custom PHP CMS system (Utilizes PHP, Mysql, Nginx, HTML, CSS, Javascript)
– Sites for Clients small and medium sized businesses (Lawyers, hotels, lawn care, spas, neighborhood associations – primarily small locally own businesses)
My typical workflow for these type of jobs
DESIGN
-start out with a static flat designed graphic in Photoshop. I usually do around 3 designs based on graphical elements they provide me as well as content / color / general direction they give me. I usually talk with the client, get some ideas, see what they like and I base my designs off of those discussions.
FRONT END DEVELOPMENT
* Slice up my graphics in Photoshop
* That process usually requires me saving my graphical files in different formats depending on the graphic usage (gif or PNG 8 for text / JPG for photos / PNG 24 for logos or graphics that need antialiasing)
* Once sliced I usually start a blank html / css file on my local machine
* Preview in Firefox
* For layout like this I use lightweight editor / probably Sublime Text
* Start with placing elements first to match my design (HTML and CSS)
* As it gets more complicated I might move my css from inside my html document and put it in a separate linked file
* If this is a responsive site I may begin working with my CSS media queries at this point
* I just want to match my layouts as close as possible
* I might do some cross browser testing (although I don’t do much)
* After the layout is finished I will start integrating Javascript and advanced CSS (sprites / rollovers / gradients / web fonts)
* Flexslider / lightbox /
(still primarily focused on layout and making sure it looks close to my initial design)
* once it looks good it’s time to move on to backend and functionality
BACK END DEVELOPMENT
The tools I use primarily for setting up my backend isTerminal on a Mac or PUTTY on a Windows machine
Tools and workflow for PHP Development.
One of the reasons I started this my blog and this podcast was because I’m always interested in how people do their job. There are a few podcast I listen to and follow, and people talk about things they are using or excited about but, it is always just a piece of what they are using – they might talk about a framework or an ide or this or that, but everything is piece meal and I sometimes wish they would talk about how it all fits together. Well that’s the whole point of this podcast today – to share what tools I use and the work flow that I employ.
So I’m a Web Developer – I started developing in PHP because my partner – who was the primary developer for our company decided to use PHP – this was 2003 – the dynamic web was still very young – PHP was the hotness and that’s what we went with. I’ve never run into any issues with it – I know everyone has an opinion when it comes to languages – but I’ve not run into a specific instance where PHP wouldn’t work for us. So I’ve stuck with it all of these years.
What types of Projects do I work on?
I mostly work by myself although I have worked with teams in the past. I primarily have 4 different types of jobs I work on – Simple Websites (simple meaning – a website for a client), WordPress Websites (used for Microsites or for clients that want or need WordPress), Marketing Campaign websites or systems (usually thousands of pages, and need advance analytics and realtime results tracking), and Custom Web Applications (systems and apps that need a web interface – has users / reports / exports / all kinds of custom created madness). I’ll walk you through my work flow and process for each of these.
Custom Website Development
– Using Custom PHP CMS system (Utilizes PHP, Mysql, Nginx, HTML, CSS, Javascript)
– Sites for Clients small and medium sized businesses (Lawyers, hotels, lawn care, spas, neighborhood associations – primarily small locally own businesses)
My typical workflow for these type of jobs
DESIGN
-start out with a static flat designed graphic in Photoshop. I usually do around 3 designs based on graphical elements they provide me as well as content / color / general direction they give me. I usually talk with the client, get some ideas, see what they like and I base my designs off of those discussions.
FRONT END DEVELOPMENT
BACK END DEVELOPMENT
The tools I use primarily for setting up my backend isTerminal on a Mac or PUTTY on a Windows machine
Once I’ve set up my accounts and created my folders it is time to finish setting up the database for the CMS
WORK WITH THE SERVER
The tool I use most for SFTP into the server is Transmit on Mac or Winscp on Windows
– Remote SFTP into server user account I’d just set up in terminal
IMPLEMENT CMS
CONTENT MIGRATION
CUSTOM WORDPRESS Installations
– Set these up on a different server
– Host Gator hosted
– Cpanel for user management
– 1 push installs
Designing is the same as above
Photoshop / slice / HTML CSS construction
Frontend Dev work
Sublime Text
SFTP through Transmit on Mac or Winscp on Windows
In this instance it would require breaking my flat file into a WordPress template. Additional functionality is actually harder with WordPress because you have to adhere to WordPress’s Codex and it is a little harder (comparatively) to set up a WordPress site with custom functionality – I feel that if you are going with WordPress then you obviously have some widget or custom theme that you want to use so you are going to use those.
LARGE MARKETING PROJECTS
These projects might be email marketing or Pay per click advertising campaigns – They would have a landing page or thousands of landing pages. These are usually setup for lead generation and are custom built to track analytics / reporting / KPIs / ROI /
– Still Designed in Photoshop
– Sliced / HTML / CSS / Front end stuff
– Developed on a local machine or dev server
– typical development is a MAMP installation on my mac pro
– Run the site on a local port
– Sequel Pro or PHP Myadmin for local db
– Sublime Text for php and local code
These are usually hosted on hostgator – either the shared hosting or a VPS
CUSTOM WEB APPLICATIONS and WEB SYSTEMS
These systems may be management systems, tracking systems – any kind of custom developed web application. These systems are developed on the same web systems as all of the other stuff is on – Linux OS, Apache, Mysql, PHP base
examples of this might be job tracker, lead managment, custom web applications
– Development is very similar Photoshop / html / css
for these systems I will almost always use an IDE to manage their development
– PHP Storm for development
– MAMP install
– Transmit for
– Git for Subversion and code management
FRAMEWORKS and RESOURCES
– JQuery – Google as my CDN
– Webfonts – Google
– Email – Google Aps (but I stopped recommending them once they got rid of the free plan)
I also do alot of email marketing campaigns.
EMAIL MARKETING PROJECTS
Email marketing campaigns to solicit prospects or leads. We typically use Email Brain for the actual email sending because their pricing really meets our needs – you pay per send – Our campaigns are very infrequent and is usually a one off or two off type of sends – they aren’t like newsletters or anything of a repeating nature.
In these instance I use
– Mysql to create and manage my records
– I find Importing and exporting is easy Mysql
– haven’t had any issues handling record sets in the hundreds of thousands
– export to csv
– Use Email brain for email marketing
– Configure my graphics to change out depending on the record set I import into Email brain
– this way we can tailor our marketing to each email we send
– I might change out the graphics depending on the records demographic information
– It has great tracking and reporting
– also it is really good at recognizing fake emails validating my data
So That’s how I do my job – I hope this has been informative – I really don’t know how standard my practices are – but I can assure you I only get looked at like I’m crazy about 55% of the time.