Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

UserSnap Blog:
A Practical Guide to Building Fast Web Applications in the Cloud
Aug 14, 2015 @ 10:44:58

On the UserSnap blog Luciano Mammino has provided a guide to building fast applications in the cloud using PHP and several tools and techniques. He offers a list of six rules to follow to make building the applications fast (and fast applications).

In this post Luciano highlighted some of the most common principles you should consider while building high performing web applications (specifically on the backend part). The following concepts discussed here can be applied to any language and framework. Though this post will cover some concrete examples, design patterns and tools that are mostly used in the PHP ecosystem.

His list of rules includes tips like:

  • Avoid premature optimization
  • Defer the work you don’t need to do immediately
  • Use cache when you can
  • Prepare your app for horizontal scalability when possible

Each point comes with a paragraph or two of explanation as to why it's an issue to watch out for and some tips to help prevent it as well as tools that can help.

tagged: guide practical fast application top6 tips tools

Link: http://usersnap.com/blog/building-web-applications-cloud/

Luciano Mammino:
6 Rules of thumb to build blazing fast web server applications
Jul 28, 2015 @ 09:48:33

Luciano Mammino has posted six tips for blazing fast web applications to his site. These tips aren't as much specific to the code (though they're related) as they are general good practices around architecture, development work and common issues.

In this post I will try to highlight some of the most common principles that you have to take under consideration when you want to achieve a great level of performance while building a web application (specifically on the backend part). I believe the concepts discussed here can be applied to any language and framework even if, due to my specific experience, I will mention some examples, design patterns, conventions and tools that are mostly used in the PHP world.

His post lists out six main rules along with some description and links to other tools for each:

  • Avoid premature optimization
  • Do the minimum amount of work to solve the problem
  • Defer the work you don't need to do immediately
  • Use cache when you can
  • Understand and avoid the N+1 query problem with relational databases
  • Prepare your app for horizontal scalability when possible

There's lots of good tools mentioned here so find one that fits your needs and helps solve the issue. There's also some good articles mentioned, giving more information about a particular topic or other perspectives on how to solve it a different way.

tagged: tips rulesofthumb fast web application optimize work cache nplusone scale horizontal

Link: http://loige.co/6-rules-of-thumb-to-build-blazing-fast-web-applications

Lorna Mitchell:
PHP 7 Benchmarks
Jul 06, 2015 @ 12:42:55

Lorna Mitchell has posted some preliminary PHP7 benchmarks from the current alpha release (alpha2). Good news - it's fast....very fast.

If you know anything at all about PHP7, you probably know it's fast. But did you know how fast? The alpha is out and looks very robust, so I decided I would create a new set of benchmarks to include it. Graphs first, disclaimers later :)

This graph shows the time it takes for each version of PHP to perform the same task, on average, with oldest PHP on the left and moving forward in time. [..] The benchmark is the Zend/bench.php that lives in the PHP sourcecode (run ten times for each version of PHP using the php7dev VM on an average laptop, and then the mean result for each version calculated). The script runs through a series of taxing algorithms, giving a sense of how quickly a series of computational instructions can be executed.

She also talks briefly about how this can effect more real-world applications, how realistic it is to upgrade from older installs (much less painful on 5.5 or 5.6) and some things you can do to help improve PHP7 for everyone. This includes testing, working on bugs and adding extensions to this list to ensure they're made PHP7 compatible.

tagged: php7 benchmark fast realworld help testing bugfix extension

Link: http://www.lornajane.net/posts/2015/php-7-benchmarks

Community News:
The DooPHP Framework
Jul 29, 2009 @ 11:49:53

The DooPHP framework has officially laid their claim on being one of the "fastest MVC based PHP frameworks available" with features like URI routing, RESTful API support, ORM support and a flexible license.

DooPHP is a rapid development framework for PHP using commonly known design patterns like MVC and ORM, reduces development costs and helps developers write less code. The framework itself is designed with main focus on its core performance rather than the wide range of features. It is for those who need a more structured project but do not wish to spend much time on learning a framework or a new language.

Features included in the framework are things like: internationalization support, templating, logging/profiling, E_STRICT compliance and being "Ajax friendly". If you're interested in seeing just how fast the framework is in comparison, check out their benchmarks.

They seem a little bit suspicious, though, in comparison to some other numbers generated by the Yii framework project.

tagged: doophp framework speed fast benchmark

Link:

Job Posting:
FAST (Recruiter) Seeks PHP Developer (St. Louis, MO)
Sep 05, 2008 @ 08:22:24

Company FAST (Recruiter)
Location St. Louis, MO
Title PHP Developer
Summary

This role is for a programming developer. The programming developer is responsible for developing software according to specification and standards for a packaged software application.

Technical experience is required, and domain knowledge within the functional components is a plus.

Software developer responsibilities include.

  • Perform programming activities to deliver software according to specification and standards.
  • Work with project manager and functional lead to ensure clarity of specification.
  • Perform software build activities to ensure compliance with standards and best practices for the software package.
  • Demonstrate ability to perform programming tasks.
  • Must be a self-starter; possess excellent communication and organizational skills along with the ability to work well under pressure.
  • Assist with the development of procedures and processes to improve operational efficiency.
  • Work in an environment that adheres to work plans/schedules and status reporting.
  • Work effectively with internal and external clients.
  • Additional duties as assigned.

Education/ Work experience requirements:

  • Bachelor degree or equivalent. Equivalent combination of education and experience may be substituted for degree.
  • Strong skills in web application components such as PHP, SOAP, Tomcat, Struts, JSP’s, and MySQL.
  • Familiarity with object oriented programming techniques and common design patterns
  • Working knowledge of Linux is highly desirable
  • Experience with Web Services a plus
  • Demonstrate a strong track record as a programmer
  • 2+ years programming experience in web application environment
  • Demonstrate the ability to meet deadlines and solve issues.
  • Possess good judgment, positive attitude and professional demeanor.
  • Dependable, with excellent organizational skills.
  • Strong interpersonal skills, and be flexible in a dynamic team environment.
  • Ability to multi-task meeting multiple deadlines

Please email Katie Scheuermann at kscheu@fastsearch1.com

tagged: job post fast recruiter developer stlouis mo

Link:

Cormac's Blog:
Fast server-side rejection of large image uploads using $_FILES
Aug 29, 2008 @ 12:58:04

Recently on his blog Cormac has posted a quick little tutorial on making things a bit faster when rejecting file uploads in PHP that are just a bit too large.

Discovered today you can report to a user if the file(s) he/she is uploading is too large without having to wait for the file to finish uploading by checking $_FILES.

The key is the "error" field in the $_FILES array that actually returns its value before the upload is finished if the size of the file is larger than the MAX_FILE_SIZE set in the POSTed information of the form. The Content-length header is sent before the actual payload (the file upload data) so PHP can interpret that before the upload starts and kick it back with an error if it's too large.

tagged: file upload maxfilesize contentlength fast tutorial

Link:

SitePoint PHP Blog:
Rasmus Lerdorf - PHP frameworks? Think again.
Aug 29, 2008 @ 08:47:12

On the SitePoint PHP blog, David Peterson shares some of the comments and thoughts that Rasmus Lerdorf (creator of PHP) had recently on a good range of topics (including frameworks).

This is the fist time I have heard Rasmus Lerdorf speak and it was entertaining to say the least. Refreshing would another way to describe it, I enjoy hearing real opinions and not holding back - Rasmus doesn't hold back.

He talked about frameworks (and why they're not the best thing for the job), how you can make PHP fast (or can you?) and some mention of the semantic web and Drupal.

tagged: rasmuslerdorf framework drupal semantic optimize fast extension

Link:

Christopher Jones' Blog:
PHP PECL OCI8 1.3.2 Beta Available
Apr 18, 2008 @ 09:32:00

Christopher Jones has posted an announcement about the latest release of the PECL OCI8 package (version 1.3.2 Beta) hitting the streets:

I've released PECL OCI8 1.3.2 Beta - the latest release of PHP's OCI8 extension with support for Connection Pooling and Fast Application Notification. The release is based on the current PHP 5.3 development branch.

He notes another change in this release - a "session release" bit of functionality persistent connections will do when nothing is referencing them anymore, mking them work a bit more like normal connections. Issues that could be caused by this can be corrected with a new setting (oci8.old_oci_close_semantics) in your php.ini.

tagged: oracle oci8 pecl beta release connection pooling fast application notification

Link:

Nick Halstead's Blog:
Tweetmeme - building stuff fast in PHP
Jan 29, 2008 @ 07:52:00

Nick Halstead has pointed out a website, written in PHP he's created to help make a little bit of sense out of the links that go flying past in your twitter client - tweetmeme.

What is it? It tracks the public timeline from twitter and picks up any links that get posted. It then follows each link to find final destination and then categorizes the content into blogs / video / images / audio. This project really shows what is possible using PHP if you know what you are doing.

Most of the work was done by another developer, Stuart Dallas as one of four that worked on the project together. It's written in PHP5 and uses only about 20 PHP files to get the job done. You can also check out the launch post over on tweetmeme's blog for more information on the service.

tagged: fast tweetmeme twitter links stream category

Link:

Jonathan Street's Blog:
Lightning Fast Sites & Better Benchmarks
Sep 25, 2007 @ 12:56:00

Jonathan Street has a few tips for developers out there looking to speed things up on their site - seven tips towards "lightning fast sites".

I was recently creating a small tool in PHP and found myself hitting the max execution time and getting a fatal error. As it was only for my personal use I just bumped up the max execution time but it made me stop and think about how I could improve the speed of those scripts I do put up for public use. Most people aren't going to wait for 60 seconds for a page to load. Naturally I hit the internet looking for tips.

The tips he came across (each including the simple benchmarks to show the differences) were:

  • sizeof vs count
  • is_int vs is_integer
  • chop vs rtrim
  • doubleval vs floatval
  • fwrite vs fputs
  • implode vs join
  • ini_alter vs ini_set

Be sure to also check out his follow up post talking about building better benchmarks to test the sorts of tips he's given above.

tagged: lightning fast tip benchmark lightning fast tip benchmark

Link: