My Experience with the Zend Certified PHP Engineer Certification Exam

Yesterday I took the Zend Certified PHP Engineer Certification exam. It was my first time taking a certification exam, and I didn’t really know what to expect. Even though I’ve been writing PHP for a few years and feel pretty comfortable with a lot of the language features and syntax, the study guide review questions were a bit tricky, and even after weeks of review I wasn’t feeling super confident.

I took the exam at one of the approved Pearson Vue exam centers. It is a timed exam – you just sit at a computer and answer a bunch of questions. When I submitted the exam, the results were displayed right away. I passed. No additional details. They just let you know if you pass or fail. But yep, I’m now listed in the Zend Certified Engineer directory!

I am super excited to be considered a Zend Certified PHP Engineer. I love PHP and really enjoy learning more and more about the language every day. However, I do think the exam itself was a bit contrived in that a lot of the questions seemed like they were designed to be purposefully tricky or clever in bizarre ways that you would never really find in day-to-day code.

While reviewing for the exam, I put together a repo of syntax I had never seen before, odd behavior, interesting functions and some basics that don’t hurt to revisit every once in a while. Feel free to check it out on Github.

Implement Interface Sublime Text Plugin

While working in Visual Studio a while back, I noticed a cool little feature that allows you to import method stubs for an interface you are implementing. Since I’m madly in love with Sublime Text, I decided to try and write a plugin that does the same thing.

This was my first stab at a Sublime Text plugin (and my first real look into Python actually), but I think it went pretty well. I don’t spend an ungodly amount of time implementing interfaces, but it was fun putting this together and I think it’s pretty cool. Technically the plugin doesn’t care if the target is an interface. It will work on any class, but it’s meant for interfaces and even abstract classes (if you want to override a method).

Check out the GitHub gist if you want to give the plugin a try. To set it up, save the python files from the gist to your Packages folder. I have mine at C:\Users\USERNAME\AppData\Roaming\Sublime Text 3\Packages\Implementer. Then create a key binding to trigger the plugin. My key binding is below.

Now to trigger the plugin, click on the name of the interface you want to implement and press your key binding (mine is f1). The plugin will give you a list of methods to choose from, or you can implement all of the methods.

I am just using a regular expression to parse the target class. It works pretty well, and it pulls in any parameters and type declarations too. I even tested a few PHP 7 features. Here’s a regex101 test with some examples.

sublime text 3 implement interface plugin