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

Phillip Shipley:
Creating a PHP Nexmo API Client using Guzzle Web Service Client – Part 4
Apr 15, 2015 @ 09:56:21

Phillip Shipley continues his series looking at creating a client for the Nexmo API with his latest post, part four focusing on the testing of the current connections and state of the code.

At this point in this series we have a complete PHP client for the Nexmo APIs. Hopefully I’ve been able to teach some good practices and designs in the process of developing it, but I know many of you test-driven-development advocates are probably screaming that I’ve left out the most important part: testing, and testing early. Well, in order to keep these tutorials focused I’ve saved the testing to the end, and actually when testing API clients I find it easier to write the tests afterwards, but I’ll get into that later.

He points out that running tests on code that connects to APIs it a bit tricky as you don't want it to make actual API requests every time you run the tests. Instead he shows how to use Guzzle mock responses and the Mockable.io service (when you do actually need to test that HTTP requests are made). He includes the code examples to create the Guzzle mock response as well as a brief look at how to use Mockable along with your current tests with an "override" on the base URL.

tagged: series tutorial part4 guzzle nexmo api client testing mockresponse mockableio

Link: http://www.phillipshipley.com/2015/04/creating-a-php-nexmo-api-client-using-guzzle-web-service-client-part-4/

NetTuts.com:
Building Your Startup With PHP: Localization With I18n
Mar 09, 2015 @ 10:43:08

In the latest part of their series of "building a startup" application in PHP, NetTuts.com looks at supporting internationalization with the functionality of the Yii framework.

This is part four of the Building Your Startup With PHP series on Tuts+. In this series, I'm guiding you through launching a startup from concept to reality using my Meeting Planner app as a real life example. Every step along the way, we'll release the Meeting Planner code as open source examples you can learn from. We'll also address startup-related business issues as they arise. In this tutorial, I wanted to step back and add I18n internationalization support to our application before we build more and more code.

They start off with a look at some of the overall goals of internationalization (i18n) and about how it works in the Yii system. It uses placeholders with a key/value system to replace the data based on which language is selected. They show you how to configure Yii's support including default language, sorting of the data and files to exclude when looking for i18n configurations. With this configuration in place they show how to use the command line tool to extract these messages out into separate folders for easier management and faster reference. Finally they show how to select a language and use the Yii code generator together with the translations to create models and forms.

tagged: build startup series part4 internationalization i18n localization language yii framework

Link: http://code.tutsplus.com/tutorials/building-your-startup-with-php-localization-with-i18n--cms-23102

SitePoint PHP Blog:
Single Page App with Laravel and EmberJS
Sep 01, 2014 @ 15:28:33

The SitePoint PHP blog has posted the fourth part in their "REST App with Laravel and EmberJS" series today. In this latest tutorial they focus in on the frontend and investigate how Ember works how to get started in your application.

In this part, we will see how Ember works, how to use Ember Data and how to build something simple with it. Router, Route, Model, Template and Store are some of the concepts of Ember. I’m not going to explain every one of those, so if you feel stuck, use the documentation.

They dive right into the code, getting a simple Ember "App" instance set up and configured. They add in a REST adapter to connect it to the backend API and lay out a few of the routes. They then create the models to represent the data and link each to a route. Next they get into views and creating the interface and frontend markup (using Handlebars templating). A gif is included showing the results and how things should look at this point.

tagged: tutorial series emberjs part4 laravel rest api

Link: http://www.sitepoint.com/single-page-app-laravel-emberjs/

NetTuts.com:
Refactoring Legacy Code: Part 4 - Our First Unit Tests
May 19, 2014 @ 13:57:41

NetTuts.com has posted the fourth part of their series guiding you through some recommended steps for refactoring legacy code. In this new post they build on the previous steps and focus more on the first steps into unit testing.

One of the key moments of refactoring a totally legacy code is when we start extracting small pieces from it and we start writing targeted unit tests for those small pieces. But this can be quite difficult, especially when you have code that is written so that it would be hard to compile or run if pieces of it are missing. We can't safely do large surgeries on a code we still barely understand and only a golden master test keeps us breaking it totally. Fortunately there are some techniques that can help us.

There's a brief introduction to unit testing and how it can be useful in a refactoring situation. They help you locate some isolated methods to start with and include a sample test (using PHPUnit). They talk about handling dependency injection, refactoring the tests themselves and working with dependencies across environments. Hints on isolating parts of the code that can be and how to refactor the tests to match are also included.

tagged: refactor legacy code series part4 unittest phpunit

Link: http://code.tutsplus.com/tutorials/refactoring-legacy-code-part-4-our-first-unit-tests--cms-21146

SitePoint PHP Blog:
Using Solarium with SOLR for Search – Advanced
May 08, 2014 @ 11:56:46

The SitePoint PHP blog has finished off their series showing you how to integrate searching with SOLR (via Solarium) into your PHP application. In this last part of the series, Lukas White gets into some of the more advanced topics around searching and handling the resulting output in your views.

In the first three parts we installed and configured SOLR and Solarium and started building an example application for searching movies. We’ve also looked at faceted search. We’re going to wrap up the series by looking at some more advanced features of SOLR, and how to use them with Solarium.

He's broken up the rest of the tutorial to talk about a few of these more advanced features like:

  • Highlighting search matches in the output of documents (depending on the type of match)
  • Using the searching for an autocomplete
  • Configuring and making the request with an array-based configuration (a more manual process)
  • Adding additional cores to the search (allowing for more flexibility on search styles and configurations)

He also points to two other resources that could be handy along your path to SOLR dominance: the SOLR reference guide and the official Solarium documentation.

tagged: solr search solarium library tutorial series part4 advanced

Link: http://www.sitepoint.com/using-solarium-solr-search-advanced/

NetTuts.com:
SOLID: Part 4 - The Dependency Inversion Principle
Feb 14, 2014 @ 11:53:22

NetTuts.com has posted the next part in their series (the looking at the SOLID development principles discussing the Dependency Inversion Principle, the final letter in the "SOLID" acronym.

It would be unjust to tell you that any one of the SOLID principles is more important than another. However, probably none of the others have such an immediate and profound effect on your code than the Dependency Inversion Principle, or DIP in short. If you find the other principles hard to grasp or apply, start with this one and apply the rest on code that already respects DIP.

They start off with a basic definition of the dependency inversion principle and an example of it in a more real world situation. They use it to separate out the handling of reading and rendering PDFs and eBooks. It's just some basic code, no real functionality, but it gives you an idea of how to architect the application.

tagged: dependency inversion principle solid development part4 series

Link: http://code.tutsplus.com/tutorials/solid-part-4-the-dependency-inversion-principle--net-36872

Dutch Web Alliance:
The definitive remote debug and unittest with PHPStorm guide: part 4
Dec 20, 2013 @ 09:52:28

The Dutch Web Alliance has posted the fourth part of their series looking at remote debugging with PHPStorm. If you want to start from the beginning, you can find the first part of the series here (along with a table of contents for the other parts).

Unit testing should play a pretty big part in your daily PHP work. With the help of PHPUnit, writing and executing those tests is fairly simple. But in a remote environment we run into some issues which we try to solve in this blogpost. I’m not going to tell you the basics of unit-testing, as we assume you already are familiar with this. If not, There are lots of blog posts on this subject.

With some tests already in place, they show you how to get PHPStorm all set up and working. First they talk some about how the IDE makes its connection to the remote server via a "proxy" script. There's a few problems with this method, so they show a different approach using the "PHP on Server" configuration setting. They walk you through the setup of this feature (with screenshots) and how to "trick" it using a dummy phpunit.xml file.

tagged: unittest phpstorm series remote debug guide part4

Link: http://dutchweballiance.nl/techblog/the-definitive-remote-debug-and-unittest-with-phpstorm-guide-part-4/

Zend Developer Zone:
AJAX Chat Tutorial 4
Dec 18, 2006 @ 12:13:00

The Zend Developer Zone has posted part four of their Ajax Chat Tutorial series (part 1, part 2, part 3) today focusing on enhancing the structure they've already created.

In part 4 of this tutorial we take a look at adding a new MessageAction method to our current Controller. This will expect one piece of information: a new chat message.

Of course, plenty of code is included and they show how to work with JSON messages over XML for simplicity's sake (via an updated IndexController).

tagged: ajax chat tutorial part4 indexcontroller json messageaction ajax chat tutorial part4 indexcontroller json messageaction

Link:

Zend Developer Zone:
AJAX Chat Tutorial 4
Dec 18, 2006 @ 12:13:00

The Zend Developer Zone has posted part four of their Ajax Chat Tutorial series (part 1, part 2, part 3) today focusing on enhancing the structure they've already created.

In part 4 of this tutorial we take a look at adding a new MessageAction method to our current Controller. This will expect one piece of information: a new chat message.

Of course, plenty of code is included and they show how to work with JSON messages over XML for simplicity's sake (via an updated IndexController).

tagged: ajax chat tutorial part4 indexcontroller json messageaction ajax chat tutorial part4 indexcontroller json messageaction

Link:

Nefarious Designs:
Object-Oriented PHP Part 4: PHP5's Improved Features
Aug 31, 2006 @ 10:29:29

Nefarious Designs continues their object-oriented PHP series with part four posted today, a look at some of the new features that PHP5 brings to the table.

After a welcome break, over the late summer public holiday here in England, here's the final part in my object-oriented PHP series. Sorry about the rather extended pause since "Part 3: Taking Relationships Further".

Having already looked at definition, relationships and taking those relationships further, I'm going to look at how PHP5's new Object Model introduces more advanced functionality.

In this latest part they look at clas constants, abstract classes, object interfaces, and magic methods (including overloading).

tagged: object oriented php5 improved features tutorial part4 object oriented php5 improved features tutorial part4

Link: