Answer the question
In order to leave comments, you need to log in
What does an advanced php developer environment consist of?
From next week I want to start learning php and I want to start learning by setting up the environment.
Therefore, my question is - what modern tools does the php developer's environment consist of today?
And surely someone will have the idea to advise an advanced IDE that offers a lot of tools out of the box. But no. I already have PHPStorm installed, but I like to set everything up myself.
And yes, I have Windows from which I do not want to leave. I also know that an excellent alternative to LAMP is OpenServer, which I have been familiar with for a long time. But this acquaintance was many years ago and something else may have appeared ...
Answer the question
In order to leave comments, you need to log in
I've edited the answer so it makes more sense.
Below are the tools that I personally use and the reasons why.
(in 90% of cases, php -S 0.0.0.0:8000 is enough for web development)
virtual machines become needed:
- when you get tired of reinstalling the host system due to an abundance of junk
- when you work with several projects that have specific ( different) environment settings (php, web server, database)
- when you get tired of solving problems in a team due to the fact that the environment is configured differently
Remember what you changed and when, not a person, but a machine.
It's necessary:
- in order not to spoil all the work for the past year by pressing del
- to determine which of the team is the villain and ruined everything
- so as not to think about how to transfer the latest version of the project from one machine to another
It is necessary when you are lazy to remember all the links for all php libraries, download them yourself, include them in autoload
Tests are needed:
- when you want to feel safe and sleep well at night, forgetting about nightmares about broken code
- when everything broke again in production
- when you wrote one new feature, but broke three
A good console is nice to use, the work goes faster.
one window in the console, then tmux comes to you.
As a bonus, get the opportunity to pair programming completely free
Tired of opening a bunch of windows for tmux every time, try it)
- Drawn for something unusual?
- Want to write code more efficiently?
In general, the ci server is an animated machine. This is your Tamagotchi, you feed him good code, he rejoices and you see a nice green light. If you gave with a code from will say that it is not tasty. Well, if you tell him that he is rotten, he will yell bad words at you for a long time. Over time, he grows and learns to do more serious things, and will begin to help you:
His skills:
- he can do 10-minute tests himself
- prepare and publish a project
- tell about your code, even what you don’t know
In order not to feed ci with bad products, it would be good to check what you did before sending it to the server. What not to forget is to do the git job itself.
gulp is another helper for you.
how if used as file watcher + livepreview, you can forget about F5 in browser
Same as composer but for managing assets. This is me about all sorts of jQuery and Bootstrap
Even if you don’t want to install it as a host system, you still need to know it. your code will work on it)
To write code in our team, everyone uses Vim (although there are no projects in PHP anymore, but when they were, Vim was also used exclusively). Our technical director Kirill Mokevnin talked about his favorite editor in one of the webinars .
Well, Vagrant + Docker (both for local development, and for sales and the deployment process itself).
PHPStorm + Atom (for quick editing)
MAMP (LAMP Server)
What else is needed for happiness?)
There is of course a bunch of software to work with this or that. For example, to work with the database, to compress and generate twig from jade - Gulp, etc.
PhpStorm+plugins (theme - Darcula)
Mercurial + TortoiseHg and Git
Docker (no need to install LAMP)
ConEmu and Putty (if Windows)
Navicat (or other convenient phpmyadmin)
Google Chrome
Notepad++ (if Windows)
Evernote (for pieces of code and scripts )
PHP (for running small scripts)
Composer
Filezilla
Microsoft Office / Google Docs
Pocket (for saving articles from Habr)
Foobar (music)
f.lux (so that your eyes do not get tired in the evening)
PuntoSwitcher
I have been using notepad++ for many years.
No IDE is needed)))
but this is a hard option for those who write code, and do not use endless hints and auto-completion. It's faster for me to write the code by hand, rather than sit and choose what auto-completion offers.
If I have to write on Linux, I use geany.
As for the server only on Linux nginx + phpfpm, again, I’m not a supporter of doing it under Windows
. Also, everyone in the team uses sublime. Seems to suit.
Linux host machine,
PhpStorm (pros: integrates with the database, sFtp, Vagrant, Composer, Git, Docker, SSH and more...),
Vagrant or Docker depends on the project (I configured LEMP Doсker for my own),
Git - where without control versions,
Composer - of course, you can't do without a package manager,
Vim for editing in the console or via SSH,
Codeception - for testing (mega cool thing, there is even for JS)
CI Server - makes life very easy,
envoyer.io - deployer.
Hands not from the 5th point, and a fresh head.
Ubuntu or Debian. Be sure to have some kind of VCS (git or mercurial).
Dark editors.
I develop in a virtual machine (Ubuntu Server under Xubuntu Desktop), in an environment close to production.
Hands growing from the right place, configured Dedic configured nginx + php-fpm, git for the pool and the phpStorm editor, nothing else is needed.
There is no version control system in your list . If you are not using Github or Bitbucket yet, they have Windows clients with a visual UI that are easy to learn. Having understood and "felt" the logic of version control systems, you can already send commands through the console later.
Well, Composer , of course. By the way, it already exists in your OpenServer, out of the box. Or option number 2 - use the functionality of PhpStorm itself, it also supports the composer + there will be a more visual interface inside the editor.
Generally speaking, you can arrange some of your solutions as composer packages, this is very convenient for centralized updates in all projects at once.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question