Question

I am in the process of putting the finishing touches to a very complex webapp which will go into beta shortly. My PHP coding style involves writing scores of small scritps that get reused in different "container" scripts via require statements. In the past I have used eAccelerator to speed up my scripts and the results have been pretty impressive (I have commonly got improvements of x 4). However, the current app is in a different league and is liable to attract a far greater number of users than anything I have previously done. I am in the process of establishing just what I can do on the server to offer a fluid and fast user experience. I have never used Zend Server before (and it does have a steep asking price) so I thought it best to get some feedback on whether it might be able to help with any of the following

  • Continue to live with my "scores of used & reused PHP scripts" coding style and my mySQL database.
  • Offer better bug tracking/error reporting/monitoring
  • Accelerated performance
  • Profiling to identify the bits of my code that are taking the longest to execute/could do with tweaking etc.

I have just downloaded the trial Windows version of Zend Server to try out on my local WAMP installation. However, there are still only 24h in a day so before I embark on that it would be useful to know if I am barking up the wrong tree here. Any tips would be much appreciated.

Was it helpful?

Solution

In my opinion its definitely worth a try for you. It has some unique features you won't easily get with other configurations/products that could be beneficial in the future.

To address your points:

  • Continue to live with my "scores of used & reused PHP scripts" coding style and my mySQL database.

    It certainly won't have a problem with your reused include files. More details when I get to performance.

  • Offer better bug tracking/error reporting/monitoring

    Yes. The code tracing feature is great for tracking down bugs. Through the management interface you can clearly see PHP error messages from all of your servers in one place without digging through log files.

  • Accelerated performance

    If you enable the bytecode cache you will see improved performance like you see with eAccelerator. The bytecode cache will make loading your frequently required scripts much faster than having PHP parse them on each request. In addition you can leverage the caching API to cache results of database queries (natively without having to set up something like Memcached or a file cache).

  • Profiling to identify the bits of my code that are taking the longest to execute/could do with tweaking etc.

    Code tracing gives you some of this which is especially helpful in a production environment. But you can always use something like XDebug or Zend Debugger for more advanced code profiling.

Another nice feature is the session clustering. It sounds like it wont be long before you need to be running multiple web servers. When you do get to that point, making sure your PHP sessions are available to all servers wont be an issue and you won't have to set up a database or memcached session handler, you can use the Zend Server session manager which ensures if a server goes down, any session data created on that server will be available to the others.

It's not like you can't get all of this stuff using other free products but depending on your budget and schedule it can streamline a lot of technical considerations and be managed by one product instead of having to support several products to ensure the operation of your site. If that has value for you then it may be worth considering.

In addition, you can pay extra for support. I have no experience with Zend telephone support so I can't really comment on that but you have the option to have someone available to help.

OTHER TIPS

It may help, but it's not necessarily the best option.

About better bug tracking and error reporting, it depends a lot what you have already. If you have been using a mechanic for long time and you are used to it, usually changing it causes some problems or delay, plus your mechanic could be very good one.

About the scores, there should be no problem since you will still have a record of usage of files.

About profiling, again it depends in what you have already in place.

About performance, personally I don't think it will be much better that using what you already mention plus good programming practices, and I'm not talking about microbenchmarking of your scripts, but proper use of loops, unseting things that you don't need, avoiding cycles, avoiding double checks of files or external resources, etc.

If in your local tests you find a big improvement, then you may decide to use it or take the time to analyse the reports and decide if the improvements can be achieved with better code, use of cache, better .htaccess or use of headers or use Zend.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top