PHP ClassesFast PHP Error Monitoring and Bug Fixing with Rollbar (24.8.2016, 05:37 UTC)
By Samuel Adeshina
Regardless of how good you are as a developer, you will always ship code to production that will have bugs or does not deal with situations that were unanticipated.

Therefore you always need to have a tool that can monitor the errors on the server side, so you can act promptly and fix issues as quickly as possible.

Read this tutorial to learn how you can use Rollbar to keep track of your PHP Web applications issues.
Anna FilinaConFoo Montreal 2017 Calling for Papers (23.8.2016, 17:16 UTC)

ConFoo | March 8-10, 2017 | Montreal, CanadaWant to get your web development ideas in front of a live audience? The call for papers for the ConFoo Montreal 2017 web developer conference is open! If you have a burning desire to hold forth about PHP, Java, Ruby, Python, or any other web development topics, we want to see your proposals. The window is open only from August 21 to September 20, 2016, so hurry. An added benefit: If your proposal is selected and you live outside of the Montreal area, we will cover your travel and hotel.

You’ll have 45 minutes to wow the crowd, with 35 minutes for your topic and 10 minutes for Q&A. We can’t wait to see your proposals. Knock us out!

ConFoo Montreal will be held on March 8-10, 2017. For those of you who already know about our conference, be aware that this annual tradition will still be running in addition to ConFoo Vancouver. Visit our site to learn more about both events.

SitePoint PHPUp and Running with the Fastest PHP Framework on PHP7 in 5 Mins (23.8.2016, 16:00 UTC)

You may remember our past infatuation with Phalcon, the fastest PHP framework.

In this post, we'll go through the process of getting it up and running in 5 minutes on one of our Homestead Improved instances. If you're not interested in why or what Phalcon is, just skip ahead to "Setting it up".

Phalcon PHP logo


If you're not familiar with it, Phalcon is a PHP framework written in Zephir, a language mid-way between C and PHP that helps in developing PHP extensions without having to know C. It's a golden middle ground which lets PHP developers develop highly optimized modules for their programming language environment without the overhead of learning a completely new language, because Zephir compiles into C, which is what PHP extensions are made of.

Originally, Phalcon was an extension written in pure C - which made it incredibly fast. However, this also introduced massive overhead in fixing bugs or inspecting what's going on under the hood when something doesn't work the way it should. It also took ages to add new features, since developing in C is so much more difficult. In version 2, Phalcon was rewritten in Zephir, but as PHP 7 was looming on the horizon and announced a dramatic departure from the extension API of PHP 5+, Zephir could not compile code to PHP 7 compatible extensions and was left behind in PHP 5 land.

Continue reading %Up and Running with the Fastest PHP Framework on PHP7 in 5 Mins%

Brandon SavageThe Software Dilemma (23.8.2016, 12:00 UTC)

Any time software and business come together, there is an inherent conflict between “get it done fast” and “do a good job”. This conflict often comes to a head when deadlines are missed, whether through unrealistic expectation or underestimation on the part of the developers. The dilemma between quantity, speed and feature set isn’t going […]

The post The Software Dilemma appeared first on

Voices of the ElePHPantInterview with Adam Harvey (23.8.2016, 10:00 UTC) Link
PHP ClassesNotable PHP package: CakePHP 2.x Container (23.8.2016, 07:40 UTC)
By Manuel Lemos
Dependency injection is design pattern often used implement functionality on one class using objects from external classes without hardcoding the dependency between the two classes.

Several PHP frameworks implement their own dependency injection containers but since each one implements it in a different way, a generic container interface was defined to allow to call components of one framework to be called from by components of any other framework.

The package implements a component with the generic dependency injection container interface so application services and other types of applications not based on CakePHP can be easily used with CakePHP.

Read this article to learn more details about how this notable PHP package works.
SitePoint PHPFramework-Agnostic PHP Cronjobs Made Easy with Crunz! (22.8.2016, 16:00 UTC)

In this article, we're going to learn about a relatively new job scheduling library named Crunz. Crunz is a framework-agnostic library inspired by Laravel's Task Scheduler, but improved in many ways. Full disclosure: I'm the author and am welcoming contributions and comments on how to improve it further!

Clock photo

Before getting started, you should have a firm grasp of cronjobs, so please read our in-depth walkthrough if you're unfamiliar with how they work.


To install it, we use Composer as usual:

composer require lavary/crunz

A command-line utility named crunz will be symlinked to vendor/bin of our project. This command-line utility provides a set of useful commands, which we'll discuss shortly.

How Does it Work?

Instead of a installing cron jobs in a crontab file, we define them in one or several PHP files, by using the Crunz interface.

Here's a basic example:

// tasks/backupTasks.php

use Crunz\Schedule;

$schedule = new Schedule();
$schedule->run('cp project project-bk')

return $schedule;

To run the tasks, we install an ordinary cron job (a crontab entry) which runs every minute, and delegates the responsibility to Crunz's event runner:

* * * * * /project/vendor/bin/crunz schedule:run

The command schedule:run is responsible for collecting all the PHP task files and runs the tasks which are due.

Task Files

Task files resemble crontab files. Just like crontab files, they can contain one or more tasks.

To create a task file, we need to decide where we want to keep them. The location doesn't matter as long as we let Crunz know the location. Normally, we create our task files in tasks/ within the project's root directory. However, we can keep them outside of the project's directory if there's a reason for that.

By default, Crunz assumes all the task files reside in the tasks/ directory within the project's root directory.

There are two ways to specify the source directory: configuration file (more on this below) and as a parameter to the event runner command:

* * * * * /project/vendor/bin/crunz schedule:run /path/to/tasks/directory

Continue reading %Framework-Agnostic PHP Cronjobs Made Easy with Crunz!%

PHP ClassesHow to Create Your Own Software Product Business Without Quitting Your Day Job (22.8.2016, 07:36 UTC)
By Manuel Lemos
Many developers want to create their own software product business but they still need money to support themselves, and so cannot quit their day jobs.

Watch this very short video to learn about a simple tip on how you still can create your own business without having to quit your current job.
SitePoint PHPQuick Tip: Solution to Paypal IPN Always Returning “Invalid” (19.8.2016, 16:00 UTC)

Paypal logo

When developing with PayPal's IPN simulator, you might run into the situation where it keeps returning "Invalid" when verifying the message, regardless of the encoding you set or all conditions matching and being valid.

The Paypal developers team is notorious for ignoring all inquiries, and the docs are famously hard to read, so debugging these issues is incredibly hard and can cost you hours upon billable hours. I've even gone as far as set up a live server for testing the IPN simulator, for fear Ngrok was at fault when testing locally, and even added a certificate to the endpoint to get HTTPS going - no dice. In the end, the solution was - as is usually the case - simple but obscure.

Continue reading %Quick Tip: Solution to Paypal IPN Always Returning “Invalid”%

PHP ClassesNotable PHP package: PHP UDP Hole Punching (19.8.2016, 07:34 UTC)
By Manuel Lemos
When you want to connect to a remote machine that is connected to a group of peers but you do not know its address, one common solution is to connect to central server and ask the addresses of the peers to communicate with them.

This technique is used by NAT servers (Network Address Translators) that are often running on router machines in order to route requests to remote machines from local network computers.

This process is called hole punching because it uses an intermediary server to get the addresses of the remote machines, so the client can communicate with them.

This PHP package implements a server with one class that can keeps the list of connected client machines and returns the list of peer addresses and ports.

The client class connects to the server class to get the peer machine address list, so it can send messages to them using UDP packets.

Read this article to learn more details about how this notable PHP package works.
LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP