Archive for the ‘Php News’ Category

Kurt Payne’s Blog: User register_tick_function to profile your code

Kurt Payne has a new post to his blog showing how to use register_tick_function with a callback to help benchmark and profile your application to find its pain spots.

A profiler gives you the ability to trace the performance of your code through every function call and create an overview of your system’s performance over a certain time period and helps you make intelligent decisions about where to look for problems. [...] But what if you’re in an environment where you can’t install [the xdebug or xhprof] extension? Luckily, php has a built-in function called register_tick_function that gives you a way to hook in to every user function that’s called. With this, you can write a profiler yourself.

A bit of sample code illustrates his method – it defines a “do_profile” function and assigns it with the register_tick_function call. This function generates a debug backtrace and echos out the function path it took to get to that spot (output is included). He provides code for a bit more useful profiling and points out that it could easily be graphed to help visualize the problems. Also included are a few caveats to watch out for when using this method of profiling.

Ben Selby’s Blog: DocBlox Plugin For Sublime Text 2

Ben Selby has released a Sublime Text 2 plugin for the popular PHP-based documentation generation project DocBlox.

It seems that the editor of the moment is Sublime Text 2 and sadly I have to tip my hat to Gary Rockett for showing it off to me one day.. Since that day, I’ve been a 100% convert. [...] So, I decided to peak into the PHPUnit [plugin from Stuart Herbert] to see if I could create a DocBlox Plugin. It turns out you have to write Plugins in Python, which is interesting, since I know very little python. There seemed to be enough code there to get me going, so I now have a working DocBlox Plugin.

The result is a plugin that, once installed gives you a new context menu option to “Generate documentation” for the selected file. The console shows the progress of the build. You can get the plugin from Package Control or by grabbing it from github directly.

Etsy Code as Craft: Rasmus Lerdorf – PHP in 2012

In case you weren’t able to make it (or missed the live stream) Rasmus Lerdorf gave a presentation last night at Etsy as a part of their “Code as Craft” series. They recorded the session and you can watch it here.

He talks about a few things:

  • the history of the PHP language
  • the state of PHP currently
  • what’s coming up in 2012
  • and touches some on the upcoming PHP 5.4 features.

You can find more about their “Code as Craft” series (and other videos) on the Etsy page.

Jeremy Cook’s Blog: Implementing the ArrayAccess Interface

Jeremy Cook is back with the next part of his series looking at the handy features PHP’s SPL provides. In this new post he looks at the ArrayAccess interface and how it can make your data more accessible to PHP’s own array handing functions.

ArrayAccess allows you to treat an object that implements it as if it is an array for the purposes of setting, unsetting and retrieving data from it. Please note the emphasis in the last sentence! ArrayAccess does not make an object behave like an array in any other way. If you pass an object that implements ArrayAccess to a PHP array function such as in_array() you’ll still get an error. This will become a little clearer with some of the examples below.

He shows what you’ll need to use this interface in your class – implementing the interface and defining a set of four methods to get/set and check for the value in your array. He includes a practical example of pulling data back from an API and wrapping it in a class to make accessing it simpler (also implementing the Countable interface as well, see the previous post for more on that). Code is include to illustrate how it can be used.

Server-Side Magazine: 10 Questions with Facebook Research Engineer – Andrei Alexandrescu

The Server-Side Magazine site has posted an interview (10 questions) with Andrei Alexandrescu, a research engineer currently working at Facebook.

Today we caught up with Andrei Alexandrescu for a “10 Question” interview. He is a Romanian born research engineer at Facebook living in the US, you can contact him on his website erdani.com or @incomputable. We will talk about some of the juicy stuff that going on at Facebook, so let’s get started.

Their questions include:

  • What’s your development setup?
  • What do you think of PHP as a language from your perspective, regarding that Facebook was initially written in PHP then transformed to C++ using HipHop for PHP. What are the pros and cons of using C++ over PHP at Facebook?
  • Currently, what kind of research do you conduct at Facebook? (or is this confidential?)
  • Tell us a little bit about the D programming language, in contrast to C, PHP, Ruby and others. In what fields can someone apply D?
  • Also, what kind of advice can you give for developers who are considering to apply to Facebook? What kind of skills is Facebook looking for in a potential candidate. Is it really important to be a graduate CS? What kind of skills do the majority of Facebook employees possess?

Read the full interview for his answers to these and other interesting questions.

Anson Cheung’s Blog: Top 10 PHP Best Security Practices for Sys Admins

In this recent post to his blog Anson Cheung provides a set of helpful hints for sysadmins to follow when installing (or just securing) the PHP installations on their systems.

PHP is widely used for various of web development. However, misconfigured server-side scripting would create all sorts of problem. And here are php security best practices that you should aware when configuring PHP securely. Nowadays most of the web servers are operated under Linux environment (like: Ubuntu, Debian…etc). Hence, in the following article, I am going to use list top 10 ways to enhance PHP Security Best Practices under Linux environment.

His tips include:

  • Reducing the built-in PHP modules
  • Logging all PHP errors
  • Disabling remote code execution
  • Disabling dangerous PHP functions
  • Write protection on Apache, PHP & MySQL configuration files

/Dev/Hell Podcast: Episode 4: The Cool Kids Club

The latest episode of the “/dev/hell” podcast has been released – Episode 4: “The Cool Kids Club”.

Our fourth episode is all ready for your listening pleasure. In this exciting episode we focus on “The Conference Experience” and discuss why programming conferences are so important to developers. Chris talks about why CodeMash was so awesome and the awesome talks full of awesomeness that he attended. Ed talks about his own experiences with speaking and attending conferences, complete with a total derail by Chris on why a certain conference rubbed him the wrong way. Oh yeah, you also find out our opinions on what constitutes a “well-written PHP application”. I’m sure you will be surprised by our answers.

You can either listen to this latest episode either via the in-page player or you can download the mp3 directly.

PHPMaster.com: Bending XML to Your Will

PHPMaster.com has a new tutorial posted today about “bending XML to your will” – working with XML data using the XML Parser and SimpleXML functionality already included with PHP.

If you’ve ever worked with the Twitter or Facebook APIs, looked at RSS feeds from a website, or made use of some type of RPC calls, you’ve undoubtedly experienced working with XML. [...] Knowing how to process XML data is a crucial programming skill today, and thankfully, PHP offers multiple ways to read, filter, and even generate XML. In this article I’ll explain what exactly XML is, in case you haven’t had any experience with it yet, and then dive into a few ways you can use PHP to bend XML to your will.

He introduces the concepts and syntax behind XML first for those not accustomed and quickly moves into the tools to parse it. First he looks at the XML Parser, an event-based parser, and SimpleXML, an easy way to access the contents of a well-formed XML document. Snippets of code are provided for each to show you how to put them into practice.

Reddit.com: PHP.net gets a new design. Opinions divided

In this recent post on Reddit.com, there’s some good discussion/feedback about the proposed redesign of PHP.net.

Opinions from commentors range widly:

  • “The layout’s nice. But those colors are downright disgusting.”
  • “To be honest, the new version is 100x better.”
  • “It’s definitely way better than the old design but still not exactly great is it?..”
  • “Much more profressional. Welcome to the 21st century PHP.net.”

Have an opinion on the new layout? voice it here!

PHPMaster.com: The Liskov Substitution Principle

On PHPMaster.com today there’s a new post from Alejandro Gervasio about a part of the SOLID development methods – the Liskov Substitution Principle – the idea that objects should be replaceable with instances of their subtypes without a change to the architecture of the application.

Even when the formal definition of the LSP makes eyes roll back (including mine), at its core it boils down to avoiding brittlely-defined class hierarchies where the descendants expose a behavior radically different from the base abstractions consuming the same contract.

He includes an example with a “deleted scene” from the Matrix depicting an attempted override of the PDO functionality with a subclass that, unfortunately, does not match the original’s structure/method definitions. The problem was in the difference between the method signature for the “query” method. It help resolve situations like this he recommends creating a “contract” in the form of an interface your code can implement, forcing it to conform to a certain structure. Using this, he provides a rewrite of the “PdoAdapter” class to match the original signature