Sergey
Sergey

Reputation: 1173

Organizing PHP development in a team (environment, configuration, etc)

We've been battling this problem for some time now, and can't seem to find a perfect solution that would satisfy all the requirements of making life easier for developers.

Right now we have the following setup:

So the main problem we are having is that everything is slow...

Branching out to any of the solutions that would have multiple server configurations brings up a problem that there is a chance of having different configurations everywhere, which will introduce additional layer of uncertainty and possibly bugs in production.

Development and debugging under windows is not possible because of linux dependencies in the code (like POSIX functions).

So how do organizations solve these problems? What kinds of set up are you using? What kinds of problems are you facing, and how to you resolve them?

Upvotes: 4

Views: 1782

Answers (1)

Pascal MARTIN
Pascal MARTIN

Reputation: 401172

One solution that works in some situations is to :

  • Have the code on your local disk, on the physical computer running windows
    • This code is the one you're modifying with your IDE
    • So, IDE is working as fast as possible : no SMB access for each file.
  • Also have the code on the Linux server
    • So Apache runs fast : the code is present on the server
  • Use some kind of synchronisation mecanism, to push every modification made on a file on the Windows machine to the Linux server, via the SMB share.
    • Using Eclipse, the FileSync plugin does a good job, over the SMB share.
    • WinSCP can also be used, to keep a remote and local folder synchronized, over an SSH connexion


Advantages :

  • All local operations are fast
  • All server operations are fast

Drawbacks :

  • You must always use the tool that ensures synchronisation (For instance, with FileSync, everything must be done in Eclipse -- and nothing in any other software)
    • Note : for SVN, no need to use Tortoise : there are plugins that integrate into Eclipse (Subversive, for example)
  • Not sure about debugging
  • Modifications done directly on the Linux machine might not (depending on the solution) get synchronized to the windows desktop.


Still, the best (fastest and most powerful) solution is generally to use only one computer -- that would run Linux, in your case, and not Windows.

  • Your tools will most likely work under Linux
  • If needed, you can install Windows in a Virtual Machine, for some software that don't run on Linux
  • It'll encourage everyone in your team to know Linux better ; which is always useful, when your production environment is not Windows ;-)

Upvotes: 3

Related Questions