News Feed
Sections




News Archive
feed this:

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

SitePoint PHP Blog:
APIfy Your Legacy App with Toro
August 19, 2014 @ 12:09:39

The SitePoint PHP blog has a new post that wants to help you API-ify your legacy application with ToroPHP, a router that's "designed for minimalists" to make routing and handling RESTful requests easier.

For the Google Summer of Code 2014, I was selected for a project to create a REST API for ATutor. ATutor has hundreds of thousands of lines of code, yet is written in core PHP. Introducing a PHP router class for the API was necessary, but we needed something unintrusive.

The result was the ToroPHP library. He introduces the library with some background about why it was created and some of the goals it was trying to achieve. Next he shows you how to create a simple "Hello World" endpoint that just defines the endpoint and echoes back the string. He shows how to separate out the logic from the route handling via the "urls.php" definition file. He also shows the handling of URL prefixes and mentions user authentication, making a "backbone" for the API and reuse of classes for similar objects.

0 comments voice your opinion now!
tutorial legacy application torophp library api rest

Link: http://www.sitepoint.com/apify-legacy-app-toro/

Rob Allen:
Globally overriding validation messages for ZF2 forms
August 19, 2014 @ 10:46:27

Rob Allen has posted a quick hint about overriding validation messages in a Zend Framework v2 based application. This override is related to the output of a standard form and works globally instead of just on a single form.

One thing that I always do when creating a Zend Framework 2 form is override the validation messages for a number of validators - EmailAddress in particular. I recently decided that I should probably sort this one out once and be done with it. Turns out that it's quite easy assuming that you use the FormElementManger to instantiate your forms.

The post includes all the code you'll need to do the override: a custom validator example, the changes you'll need to make to the configuration and an example of a form that uses the custom handling. He explains each of the parts too, showing how they fit together in your module.

0 comments voice your opinion now!
zendframework2 override validation message form tutorial

Link: http://akrabat.com/zend-framework-2/globally-overriding-validation-messages-for-zf2-forms/

SitePoint PHP Blog:
IronMQ and Laravel Delays and Retries
August 15, 2014 @ 11:07:14

The SitePoint PHP blog has posted the second part of their IronMQ and Laravel series, part 3: IronMQ and Laravel: Delays and Retries. In this latest post Rajiv Seelam looks at how to get the Laravel-based application to overcome some of the limitations of the system.

Previously, we saw how to use Iron push queues with Laravel. All we needed to do was set up an Iron account, add a subscriber URL, push a message to queue, and receive the message. The way Laravel supports Iron push queues out-of-the-box is amazing, but there are always limitations. In this article we focus on those limitations and learn to tackle them.

He briefly talks about the three different scenarios: the happy path where everything works, the job fails and the job being a long running process. He then walks you through code that covers each of these scenarios using subscribers and the IronMQ PHP library for successful handling. He shows the push of a message then how to handle delays and retries, defining them in the job configuration.

0 comments voice your opinion now!
ironmq tutorial series delay retry laravel

Link: http://www.sitepoint.com/ironmq-laravel-delays-retries/

SitePoint PHP Blog:
How to Create a Unique 64bit Integer from String
August 14, 2014 @ 12:55:33

In the latest post to the SitePoint PHP blog Vova Feldman shows you how to create an integer from a hash string that's both 64 bit and unique each time it's generated.

PHP provides the popular md5() hash function out of the box, which returns 32 a hex character string. It's a great way to generate a fingerprint for any arbitrary length string. But what if you need to generate an integer fingerprint out of a URL?

He describes the real-world situation he was facing - a rating widget that needed a randomized integer based on the page using it - and the two "sub-challenges" that make it up: url canonization and the string to unique 64 bit problem. He tackles each problem and shares code snippets showing the process and how it can be put to use. He also includes some interesting metrics at the end of the post showing the level of hash collisions (hint, it's a very low number).

0 comments voice your opinion now!
unique integer string 64bit tutorial md5 hash

Link: http://www.sitepoint.com/create-unique-64bit-integer-string/

Piotr Pasich:
CakePHP with Symfony's2 router
August 13, 2014 @ 09:46:27

Piotr Pasich has a new post to his site today showing you how you can use the Symfony2 router with CakePHP, another popular PHP framework. He talks about some of his own experiences using CakePHP and how one module "left a bitter aftertaste" when using it - the route handling.

The second version of CakePhp still has a lot old-fashioned patterns, singletons or lack of tests, but I can live with that. I saw a lot of better or worse frameworks in my life.

He goes through an example of the CakePHP routing including some sample code and a walk-through of the code that actually handles the request. He points out some of the "clean code" violations it makes and gets started integrating the Symfony2 router instead. He extends the CakePHP router and uses this plugin to bridge between the two. He then can call the Symfony router with only slight modifications to things like the "getPath" calls.

0 comments voice your opinion now!
cakephp symfony2 router integrate plugin tutorial

Link: http://piotrpasich.com/cakephp-with-symfonys2-router/

Geshan Manandhar:
Getting started with PHP (LEMP) on Vagrant, the easiest way
August 11, 2014 @ 12:06:11

Geshan Manandhar has posted a "getting started" guide to getting a LEMP environment up and running (LEMP being Linux, Nginx, MySQL and PHP) through a Vagrant setup.

A software engineer tells to a colleague in his team "Man, it is working on your machine, but why is it not working on mine?", then they both find out that one has Ubuntu 12.04 LTS with PHP 5.3 and the other software engineer on which the code is working is Ubuntu 14.04 with PHP 5.5 after some investigation. If you have ever faced this or similar problem its high time to switch to a portable and a reproducible virtual development environment shared among all team members. This is a context where Vagrant comes into play.

He introduces Vagrant and some of the problems it can help with for development groups. He includes some of the basic terminology and mentions some of the alternatives, including Docker and some of the Google popularity results comparing the two. Finally, he gets down to creating the Vagrant configuration with the PuPHPet service with screenshots of each step of the way. He wraps up the post with a look at how you can determine if things are working and how to add records to your hosts file to make the machine easier to reference.

0 comments voice your opinion now!
lemp vagrant puphpet configure install tutorial automate environment

Link: http://geshan.blogspot.ae/2014/07/getting-started-with-php-lemp-on-vagrant.html#sthash.fPMXLkWP.dpuf

Przemek Sobstel:
Preventing the Dogpile Effect
August 11, 2014 @ 11:47:28

Przemek Sobstel has a recent post investigating an interesting theory in caching of any kind of application, not just PHP ones. He looks at the dogpile effect: when a cache expires and the database or host cannot catch up with so many non-cached requests coming in.

Implementing caching in web apps seems to be simple. You check if value is cached. If it is, you fetch cached value from cache and serve it. If it's not, you generate new value and store in cache for future requests. Simple like that. However, what if value expires and then you get hundreds of requests? It cannot be served from cache anymore, so your databases are hit with numerous processes trying to re-generate the value. And the more requests databases receive, the slower and less responsive they get. Load spikes. Until eventually they likely go down.

He recommends using something called a "semaphore lock" to help prevent this kind of issue from happening. This lock prevents the removal of any stale content until after one process has finished refreshing the requested data. Only once the lock is released are the other processes allows to serve the fresh data. He includes some PHP pseudo-code that illustrates the point: trying to fetch the content, checking for the lock and releasing it when the single process is done with the refresh. He includes a link to a full implementation as well. He's also written up a full library, Metaphore, that integrates this into a full caching system.

0 comments voice your opinion now!
dogpile effect theory cache tutorial metaphore semaphore

Link: http://www.sobstel.org/blog/preventing-dogpile-effect/

SitePoint PHP Blog:
Fast PHP Routing with PHRoute
August 08, 2014 @ 12:16:28

The SitePoint PHP blog has a new post by Francesco Malatesta showing how to use the PHPRoute routing library to handle routing of requests quickly and easily.

PHRoute is an interesting package: it's a fast regular expression based router that you can easily implement in small to medium projects. However, it's not just very fast: there are filters, filter groups and named routes. You can also use a basic controllers system if things are getting bigger. That said, today we will see how to use it and how to implement its features in a sample project. Also, we are going to see what's under the hood: PHRoute is a result of many experiments and tests by different people.

Once installed (via Composer), he shows you how to use it in a simple project that manages book information, including authors and categories. He includes some code examples showing how to set up some simple routes and handle the execution of a closure to fulfill the request. He also shows how to work with parameters in routes, using different verbs, working with filters and working with route grouping. The post ends with a look at using controllers with the routing, making it easier to create more modular architectures.

0 comments voice your opinion now!
routing phproute tutorial introduction

Link: http://www.sitepoint.com/fast-php-routing-phroute/

NetTuts.com:
Setting Up User Authentication in Laravel Using Confide
August 08, 2014 @ 11:05:24

NetTuts.com has posted a new tutorial recently showing how you can use Confide to set up authentication in a Laravel-based PHP application. Confide is a package specifically for Laravel that provides a lot of the usual needs for a user authentication system.

User authentication is part of almost every web application. Although it is common, a deeper look shows that it's not as simple as it may seem. Remember that validation, password recovery, and email confirmation are vital to any decent authentication form. Confide is an authentication solution for Laravel made to reduce the repetitive work involving the management of users. [...] In this tutorial, we'll start from the very beginning by creating our Laravel app using Composer and then: create a signup form with a full set of validation rules, a login form with a "forgot my password" option that will send a link for the user to redefine his password and use Laravel filters to only allow logged users can access a specific route.

The tutorial walks you through creating a simple Laravel application (obviously you can always use one you've already created) and getting Confide installed via Composer. Once you've added the provided lines to the Laravel configuration, you'll be ready to follow along with their examples. They run the migrations to set up the database and show how to view the user pages (and update their look to something a bit more friendly). The remainder of the post shows how to add in the pre-execute validation, via Laravel's filters, to ensure a user is logged in on certain routes.

0 comments voice your opinion now!
tutorial authentication laravel confide library

Link: http://code.tutsplus.com/tutorials/setting-up-user-authentication-in-laravel-using-confide--cms-21866

Ben Ramsey:
Setting Up Jenkins on Amazon Linux for PHP Testing
August 08, 2014 @ 09:36:33

Ben Ramsey has posted a complete walk-through of setting up and configuring Jenkins on an AWS instance for testing your PHP applications.

One of my first tasks at ShootProof was to set up a Jenkins server for continuous integration and get it ready to run unit tests for PHP and JavaScript code. There are plenty of tutorials around the web to help you do just that. This is yet another one, but it's primarily my cleaned-up notes -and less of a tutorial - placed here for my future self to find and provided publicly for all to benefit. These instructions are specifically tailored for setting up Jenkins on an Amazon Linux EC2 instance.

While he doesn't call it a "tutorial" it's still a great step-by-step guide to the things you'll need and the process to follow including commands, installing and starting Jenkins and configuring the environment to execute your tests. The main goal was to set it up for PHP-based applications, but he also throws in the setup of some Javascript testing via Node.js and the PhantomJS/CasperJS combo.

0 comments voice your opinion now!
jenkins tutorial amazon aws instance setup configure linux unittest

Link: http://benramsey.com/blog/2014/08/setting-up-jenkins-on-amazon-linux-for-php-testing/


Community Events





Don't see your event here?
Let us know!


laravel application community unittest configure homestead code wordpress language api threedevsandamaybe podcast interview developer list library release install series introduction

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework