Jump to content
electrode

My current Dev setup 2019 Edition

Recommended Posts

I've been writing PHP for 3 years or more now and I thought it would be great to share how I do it.

 

#IDE

I mainly use PHPStorm or sometimes VSCode when I need to check a snippet in another project

Here's a screenshot of my PHPstorm IDE

 

319968139_Screenshot2019-03-06at2_41_54PM.thumb.png.a09fab3f750b6e4ab0a45ee155d0b847.png

 

I'm a dark themes fan and I¬†also like skulls art¬†ūüėČ

 

#TERMINAL

 

1155495393_Screenshot2019-03-06at2_44_32PM.thumb.png.f60850b6b8e3ea5f2476c0ae840e5f80.png

My terminal of choice is iTerm2. I'm using the Z shell and Oh My Zsh.

The color scheme used is a slightly modified version of Solarized Dark. I'm using several hands crafted aliases and functions.

 

MacOS # 

I love to use the latest version of the MacOS and even signed up for the beta program to receive beta updates ( I get a hell of bugs and glitches sometimes though but meeh)

 

Screenshot_2019-03-06_at_2_47.13_PM.thumb.png.f5d0544abd86a360bcbf54c6e0bd38ff.png

 

#Dev Environment

 

  • To run my PHP projects locally I use Laravel Valet
  • PHPmyAdmin and SequelPro¬†for SQL database management
  • Gitkraken to manage my GIT Repos ( i don't like writing git commands)
  • Sometimes I want to stream movies or watch a tutorial while coding so I use Helium Browser, it can float anywhere in your windows.
  • POSTMAN¬†to test API calls
  • Blisk Browser to test my websites across all screens one time
  • ¬†I love the 1995 keyboard kinda sound while typing so I installed Tickeys ¬†
  • I love to document and plan my projects before I start them so I use Trello¬†to do that ( a project management tool)
  • I do a lot of copy and paste and sometimes I wish to go back to what I've copied e.g yesterday or a month ago I use Paste¬†for that ( a clipboard manager)
  • Sometimes I exceed my 8GB ram on my laptop and my cooling fan makes a very loud noise, so for me to monitor my ram usage and avoid the noise I installed RunCat¬† ¬†(¬†The cat runs at the speed according to the CPU usage of your Mac.)

These are the main tools I use daily though for now, if I come across any better ones or ones not listed here I will update this thread.

What do you think?

Share this post


Link to post
Share on other sites

Line 56, you can use

auth()->user()->email

rather than

Auth::user()->email

and you won't get the highlighting error, since the facade will be registered.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
2 minutes ago, SRB said:

Line 56, you can use

 

auth()->user()->email


auth()->user()->email

 

rather than

 

Auth::user()->email


Auth::user()->email

 

and you won't get the highlighting error, since the facade will be registered.

Thanks for that.

Share this post


Link to post
Share on other sites
12 minutes ago, SRB said:

Line 56, you can use

 

auth()->user()->email


auth()->user()->email

 

rather than

 

Auth::user()->email


Auth::user()->email

 

and you won't get the highlighting error, since the facade will be registered.

Random off topic posts about some code in a screenshot haha.

I really like the Material One Dark theme for PHPStorm:

image.thumb.png.4c91d2e7626f69b8127f1cf05119af0d.png

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)
4 hours ago, Dave said:

Random off topic posts about some code in a screenshot haha.


 

You're looking at it wrong - it's an off topic post sharing knowledge about laravel facades within his screenshots ūüėõ

Anywho, on topic now I am back at home!

Programming IDE's / Editors;

PHP      : PHPStorm
React    : VS Code
Python   : PyCharm
Just Cuz : Sublime Text 3

Themes

I use Darcula wherever I can. Love it, love it, love it.

Terminals

Mac, MacBook and linux user, so default terminals on each of them, although did recently install Hyper

Local Dev Environment

Host Management : laravel/valet for MacOS & Valet Linux for Linux.
Database Access : "$ mysql -A" or SequelPro (Although, I wish MySQL Workbench and SequelPRo would have a love child. Both have pro's and con's)
Project Management : Asana
Code Management : BitBucket
Image Manipulation : Photoshop
 

Edited by SRB

Share this post


Link to post
Share on other sites
Posted (edited)
7 hours ago, SRB said:

Line 56, you can use

 

auth()->user()->email


auth()->user()->email

 

rather than

 

Auth::user()->email


Auth::user()->email

 

and you won't get the highlighting error, since the facade will be registered.

Or install barryvdh/laravel-ide-helper

 

nvm I realized it’s in HTML and probably highlighting due to HMTL errors

Edited by KyleMassacre
  • Like 1

Share this post


Link to post
Share on other sites

I often a times do extensive development (lots of small micro-services) spanning multiple different languages which is listed below. In term's of web server environments - I have been using the docker / kubernetes route for the passed 2 and half years and have never looked back.

Part of this docker / kubernetes environment I make use of a Reverse Proxy / Load Balancer router in-front of the docker containers named Traefik.io - no need for nginx / apache virtual hosts.

Docker has helped me not need to worry about server configuration and the smaller details - now it's as simple as `docker run {{ image name }}` and that image can either be an existing prebuilt image from the huge library over at Docker Hub https://hub.docker.com or you create your own image by using a file named Dockerfile - the final image can then be published to Docker Hub publicly or privately. Some helpful use cases:

  • Need to run a static one page¬†website but don't want to go through the hassle of having to deal with virtual host files? Use a lightweight container with nginx pre-installed and pre-configured, just tell docker which build folder you want to mount on the container.
  • Have a lot of website's to manage on a single server? Use https://traefik.io¬†- a dynamic reverse proxy with built in load balancing capabilities combined with docker making for zero need for web server configuration. Traefik listens on the docker socket for container events (restart, shutdown, high cpu, low cpu,, startup amongst a few) - and these containers simply needs a label (E.G. `- "traefik.frontend.rule=Host:example.com"`) as well as a domain pointed the servers IP Address¬†and the Traefik Reverse Proxy server will handle serving HTTP & HTTPS requests to the correct docker containers based on the domain name. It provides plug & play support for Let's Encrypt + auto-renewal -- pure awesomeness!
    • If you use docker and use the auto scaling functionality, Traefik will see the new containers immediately and start load balancing them.
    • Traefik is the 9th most popular image on Docker Hub with 10M+ downloads at this time while nginx is further down the list.
  • Saved me lot's of time needing to still configure services as well as install services such as PHP and it's subsequent extensions. See screenshot attached of my development machine's¬†services that are needed for all my projects. I can delete the containers / services¬†while keeping the needed data on the host machine and bring the container / service up again with existing data

image.thumb.png.5212d6b852c931d1d34deca90470480c.png

IDE's / Tools / Services to their relevant languages / use cases / needs:

  • JetBrains IntelliJ Community Edition - for Java / Kotlin development as well as sometime's the odd cases of Native Android Development
  • PHPStorm - for the obvious first 3 letters of the application's name ūüėĄ¬†- current place of employment make's use of an already extensively scaffolded starter project¬†which has been built on for the passed¬†12 - 15 years plus / minus, first making use of the Zend framework and then in the last 4 years making the change of the underlying framework to Symfony Silex using an annotation provider for routing thus keeping the route declaration with the class file and it's subsequent endpoints.
    • Additional Tools:
      • xdebug for debugging / code profiling purposes
      • Always have PHPStorm built-in Terminal open.
      • Siege¬†an http load tester and benchmarking utility
  • Visual Studio Code¬†- for all my front-end based applications consisting of NativeScript, Angular, VueJs, HTML, CSS
    • Because I got to experience building Java apps where every variable needs to be type casted - I have become a believer of TypeScript as it enforces type casting. That has saved me a days if not weeks of combined time finding bugs / issues.
  • Chrome Browser - Some developers believe in the Firefox developer tools, but for me and quite a few developers I know, Chrome's Developer Tools¬†is well built and fit's in nicely with Chrome. Also has a dark mode. Bonus.
  • Postman -¬†Manual API endpoint testing
  • API Doc Generators -¬†Swagger for PHP Symfony & Swagger + SpringFox for Java Spring MVC
    • Swagger provides running a list of tests against your API's saving you time during the development lifecycle of an API
  • Digital Ocean -¬†development testing & production based VM's. There's an existing¬†supported driver to allow docker-machine to connect to Digital Ocean to gather information about existing VM's or the ability to create VM's from your own terminal. It's overhead for minimal site's but wonderful for more site's and growth

There is probably quite a few other tools / services that I have not listed. I didn't see anyone making use of docker nor any articles floating about - it's worth looking into!

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...