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

Jani Hartikainen:
5 step method to make test-driven development and unit testing easy
Oct 11, 2016 @ 10:23:08

While his examples may be in Javascript, Jani Hartikainen has posted a guide that can help any developer get started with TDD - Test Driven Development - in their new or legacy applications.

What’s the hardest thing in test-driven development or unit testing in general? Writing tests! The syntax or the tools aren’t the problem – you can learn those enough to get started in 15 minutes. The problem is how to take some vague idea in your head about what you want to do, and turn it into something that verifies some function works… before you even wrote the damn thing!

People tell you to use TDD. But how can you possibly write a test for something that doesn’t exist? I don’t even know what the function is going to do yet – or if I actually want two functions instead of one – and instead you want me to think of a test for it? Are you crazy?

How do all those people who tell you to use TDD do it? That’s the thing – test-driven development requires thinking of your code in a different way. And nobody ever tells you how to do that. Until now.

He then breaks down the process of how to turn a "vague idea" into something that can be effectively tested, noting that this change in thought process can sometimes be difficult. He then breaks it down into a set of five steps:

  • Step 1: Decide the inputs and outputs
  • Step 2: Choose function signature
  • Step 3: Decide on one tiny aspect of the functionality
  • Step 4: Implement test
  • Step 5: Implement code

While the above may seem familiar to anyone that's read about TDD before, it's interesting to see how he explains each item with an emphasis on behavior not just the code required. He ends the post with a few more smaller suggestions to help you get on the road to TDD with the same emphasis on behavior rather than functionality.

tagged: tdd testdriven development steps easy unittest behavior

Link: http://codeutopia.net/blog/2016/10/10/5-step-method-to-make-test-driven-development-and-unit-testing-easy/

Easy and Fast Emails with Laravel 5.3 Mailables
Aug 26, 2016 @ 11:32:01

The Scotch.io blog has posted another Laravel-related tutorial, this time focusing in on "mailables", a new feature in the latest release of Laravel (v5.3) that makes sending emails simpler.

Laravel 5.3 has just been released and there are a ton of great new features. One of the major improvements is in how you send mail in your applications.

They start with a look at how you might send emails in previous versions of the Laravel framework using the Mail::send method with a set of options and a callback. The tutorial then moves on to v5.3 and introduces the idea behind "mailables" and some simple examples. They show how to create a custom mailable-based class and the resulting code. They walk you through how to pass data into the email views, changing up the mailer configuration, sending extra parameters and sending the emails. They also include information about email queueing using Laravel's built-in queuing functionality.

tagged: easy email laravel v53 mailable tutorial introduction

Link: https://scotch.io/tutorials/easy-and-fast-emails-with-laravel-5-3-mailables`

Master Zend Framework:
Can You Create Apps in Zend Expressive as Easily as With Laravel?
Jul 27, 2016 @ 13:23:01

On the Master Zend Framework site Matthew Setter has written up a post that tries to answer the question: "can you create Zend Expressive apps as easily as with Laravel?" He works through each of the major features in the frameworks (controllers, routing, views, etc) and compares the two and how easy they make it for the developer.

Laravel is the PHP framework For web Artisans, able to create applications nary with the speed of thought. Zend Framework, on the other hand, is the enterprise-ready framework; one that can build the largest of applications, for companies in the Fortune 500. I was asked, recently, if applications could be built as easily in Zend Expressive as in Laravel. Recently I sought to find out. Here's what I found.

He starts off with more of an "overview comparison" of his own experience building a simple application with Laravel and how, interestingly, there's not an easy way to make a direct comparison between the two. He also mentions picking the right tool for the job and not "fitting a square peg in a round hole" or trying to use the same development practices between the two. From there he then gets into more of the specifics of the features:

  • Forms and Entities (and Form ViewHelpers)
  • Routes and Controllers
  • View Helpers
  • Database Access
  • Data Models
  • Database Migrations and Testing
  • Testing

Each of the sections comes with some brief code snippets and examples from either side of the fence, helping you get a better idea of how they differ. He finishes off the post sharing his own opinions on the comparison between the two....but you'll have to read the article to find out about those.

tagged: laravel zendexpressive framework comparison features easy

Link: http://www.masterzendframework.com/zend-expressive-or-laravel/

SitePoint PHP Blog:
Easier Authentication with Guard in Symfony 3
Dec 22, 2015 @ 09:49:03

The SitePoint PHP blog has posted a new tutorial from author Daniel Sipos showing the Symfony framework users out there how to do easier authentication with Guard, a newer component introduced to the framework to take some of the complexity out of the process.

The Symfony2 security system is a complex part of the framework, one that is difficult to understand and work with for many people. It is very powerful and flexible, however not the most straightforward.

[...] With the release of version 2.8 (and the much awaited version 3), a new component was accepted into the Symfony framework: Guard. The purpose of this component is to integrate with the security system and provide a very easy way for creating custom authentications. It exposes a single interface, whose methods take you from the beginning to the end of the authentication chain: logical and all grouped together.

He starts off with the configuration changes you'll need to add/make to use the Guard component, defining an "in memory" admin user type. He shows how to define the firewall to use a Guard form authenticator and update the security configuration with the path matches and related roles. He then gets into the controller side of things, defining a loginAction and a simple username/password form in the matching view. Finally, he updates the services configuration for the authenticator and creates the full FormAuthenticator class to go along with it. He then explains each piece of this puzzle and how it all works together to make the authentication happen.

tagged: authentication guard symfony3 tutorial easy introduction security

Link: http://www.sitepoint.com/easier-authentication-with-guard-in-symfony-3/

Lakion Blog:
Easy debugging on CI with Mink
Sep 18, 2015 @ 09:44:12

On the Lakion blog there's a post showing you how to debug your application's Behat tests easily as a part of your continuous integration process. In thieir case, they were trying to figure out why builds were breaking on a Travis-CI build instance.

Debugging Behat scenarios while using Mink to simulate the user is not always an easy job. Especially, if they are run on Continuous Integration server. That is why I came up with an idea to make it easier. During repairing our javascript test suite on Sylius everything went as bad as it could go. There were many errors that happened on Travis, but I was not able to reproduce them locally. [...] MinkDebugExtension was written to speed up that boring and tiring part of debugging on CI server. It consists of two parts: Behat extension and useful scripts.

The extension fires after failed steps and makes a log of the issue with content needed to recreate the issue (including possible screenshots). He also describes the scripts that come with it to help you browse through the results, uploading the resulting logs and screenshots to a place for public consumption.

tagged: mink easy debug travisci continuous integration extension log screenshot

Link: http://lakion.com/blog/mink-debug-extension

SitePoint PHP Blog:
Boxing up your Apps as Phars Quickly and Easily with Box
Jun 16, 2015 @ 08:44:27

The SitePoint PHP blog has a new tutorial posted showing you how to easily package up your application with Box to make phar files without the extra hassle of building them yourself.

In this tutorial, we’ll use Box to package a PHP application into a Phar, in order to make it easily distributable and globally installable via Composer.

For his example he uses the PHP portion of the FolderBuilder project and makes a command-line executable that can return the information for a directory as JSON data. He starts by installing the "box" executable command on a local VM and defines the simple configuration file, a "box.json" with some basic settings. He then clones the FolderBuilder project, updates the configuration for the correct locations and files and executes the "build" command. The result is a phar file that contains the PHP script functionality. He also updates the configuration to make the result executable with a "chmod" setting, removing the need to call it with the PHP command line version. He ends the post showing how to test it out, taking the results and dropping them into FolderBuilder to make sure they're 100% correct.

tagged: tutorial build phar archive easy box commandline tool

Link: http://www.sitepoint.com/boxing-apps-phars-quickly-easily-box/

Laravel News:
Learn Laravel 5 with Easy Laravel
Feb 06, 2015 @ 11:19:38

The Laravel News site has a new post today about a book (from Jason Gilmore) wanting to help you learn everything you need to know about Laravel 5 - Easy Laravel 5.

Easy Laravel is a new book by W. Jason Gilmore, focusing entirely on the brand new Laravel 5. Easy Laravel features 8 chapters and over 200 pages to help you learn Laravel 5 quickly by building a real world project. Jason has spent the last 15 years using PHP, during this time he’s written seven PHP books. Including the bestseller, “Beginning PHP and MySQL, Fourth Edition”, that has been in print more than 10 years. He has a gift of explaining things clearly in a very nice style.

The post also includes some Q&A with Jason asking about why he chose to write a book on Laravel, what was the most enjoyable part of the process and what his favorite new feature is. The remainder of the post walks you through the chapters of the book and introduces you to some of the content with a brief summary of each.

tagged: laravelnews laravel easy book learn wjasongilmore interview

Link: https://laravel-news.com/2015/02/learn-laravel-5-easy-laravel/

Mayflower Blog:
Software Architecture Decisions - How to do it Wrong the Hard & Easy Way
Jun 22, 2012 @ 10:55:10

On the MayFlower blog today there's a new post looking at two ways to do software architecture (the easy way and hard way) and some of the traditional practices behind its development.

When it comes to software architecture, stuff gets funny. First we learn everything about it at university. We learn to use it as a part of our main project plan. We learn how to do risk evaluation. [...] Since we didn't have a lot of experience with software back then, the resulting architecture is a badly done, but well documented. This style of software architecture is called "Enterprise Architecture" and usually done by consultants.

They talk about delivering software versus delivering documentation and list some of the actual common reasons software architecture turns out how it does including: "I read about it in a blog", "It worked for me once" and the idea of the "Golden Hammer" of standardized structures.

tagged: software architecture decision planning easy hard


Symfony Blog:
Symfony2: Getting easier (Parts 2 & 3)
May 06, 2011 @ 09:34:51

Continuing on from his first Symfony2 is getting easier post, Fabien Potencier has two new posts in the series looking at other aspects of the framework that have improved to make developers' lives easier.

In part 2 he talks about a patch that's been applied to help with errors in the autoloading process and throw an exception if something's' not found.

Part 3 talks about an update to help make the pathing shorter on the Doctrine configuration files and the ability to move it to a centralized mapping file in the app/config.

tagged: symfony2 framework features improvements easy


What I Love/Hate About PHP
Apr 20, 2011 @ 09:05:20

On DZone.com today there's a new post from Eric Hogue talking about the love-hate relationship he has with PHP (as a developer of five years with it).

I have been programming in PHP for 5 years now. I did not choose this language, I had to learn it to work on the code of the company my bosses bought. Since I started, I heard many rants about how bad PHP is. Some where valid, but a lot of them are just blaming the language for bad code written by bad programmers. I am by no mean an expert in programming languages or PHP, but here is my take on the language I use every day.

His "good" section mentions one of the most popular things about the language - its quality of documentation. He also talks about the interactive shell and the community that surrounds the language. In the "bad" category, though, he points out things like the low barrier for entry ("a blessing and a curse"), the changing order of parameters in function calls and that a constructor of a child class doesn't automatically call the parent's constructor.

tagged: love hate opinion language documentation easy community