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

Exakat Blog:
Make everything private in your PHP classes
Oct 06, 2017 @ 09:25:25

In a new post to the Exakat blog they propose an interesting idea: making everything private in your PHP classes with the basic idea being that you can more easily move from a place with more control (private) to less control (protected/public).

It is a good recommendation to make everything private in a class : constants, methods, properties. With private, comes a tighter control on the element : no one from outside may use it, limiting the unwanted impact on the object. Of course, some of the class has to be accessible from the outside, or the object may only be manipulated as a token.

[...] Eventually, when the code matures, it becomes desirable to apply the above principle of encapsulation. This helps keeps the code clean and made of independent components. This is the beginning of a long hunt.

They show how the results look for an Exakat scan of a class and go through each of the results touching on class constants, methods and properties. It also catches when a class property is a "constant" and not modified - or able to be modified - by any means. The post ends with a recommendation to "update your code with your brain" based on the interpretation of the results.

tagged: private visibility class exakat scan results recommendation

Link: https://www.exakat.io/make-everything-private-php-classes/

Herberto Graca:
Packaging & namespacing
Sep 01, 2017 @ 13:06:38

In a recent post to his site Herberto Graca shares some of his thoughts around packaging and namespacing and how it relates to the overall architecture of your application.

The architecture of a system is the high-level view of that system, the big picture, the system design in broad strokes. The architectural decisions are the structural decisions in the system, the ones that affect the whole code base, the ones that define where everything else will be built on top of.

Amongst other things, architecture is responsible for deciding the systems: components, relationships between components [and] principles guiding the design and evolution of components and relationships.

In other words, these are the design decisions that are more difficult to change as the system evolves, it’s the foundations that give support to feature development.

The post then goes on to talk about "spaghetti" architecture, what makes for a more maintainable codebase and how this impacts the overall structure. He shares a few of the "packaging principles" previously defined by Robert C. Martin and the concept of "screaming architecture" (it should be very clear about how it's structured).

tagged: packaging namespacing principles architecture recommendation

Link: https://herbertograca.com/2017/08/31/packaging-code/

SitePoint PHP Blog:
Being a Full Stack Developer (Update)
Jun 19, 2017 @ 12:57:37

The SitePoint PHP blog has made an update to their "Being a Full Stack Developer" article covering what it means to be "full stack" and various technologies that can be used (or skills to learn) to get there.

A full stack developer who can get from a prototype to full MVP (minimum viable product) is often considered a jack of all trades, master of none, and with good reason. To define the modern full stack developer, we first need to focus on what the full stack developer used to be.

The article talks about what it use to mean (back around the early 2000s) to be "full stack" and some of the things they needed to know. He then goes through the things you'll need to know now to be considered basically on the same level:

  • [Basic] Server Admin / Devops
  • Cloud [Services]
  • Back End [Development]
  • Front End [Development]
  • Design
  • Logging
  • Mobile

He ends the post by answering the question "is it worth it" to be a full stack developer versus focused on one thing, basically boiling down to two things. First, that most devs aren't actually full stack (even if they say they are) and that it can help to have this experience to, at the least, be able to approach a wide range of projects easier.

tagged: fullstack developer definition recommendation technology learn

Link: https://www.sitepoint.com/full-stack-developer/

CloudWays Blog:
Why Industry Leaders Think Managed Cloud Hosting Is A Better Option
Jun 15, 2017 @ 10:57:20

On the CloudWays blog there's a new post with comments from several members of the PHP community about why they feel that managed cloud hosting is a better option when it comes to hosting their applications.

Not many people realize that their choice of hosting solution could determine the success or failure of their project. Even the best code base fails to perform to its maximum potential because of a hosting solution that fails to provide appropriate support.

[...] In order to understand why many industry leaders recommend managed cloud hosting for PHP projects, it is important to understand the benefits of these hosting solutions. In effect, managed cloud hosting offers three important benefits.

These three benefits involve the offloading of the usual hassles of server management, improved security and scalability. Members of the PHP community that contributed their opinions include:

  • Anna Filina
  • Adam Wathan
  • Josh Lockhart
  • Tessa Mero
  • Matt Stauffer
  • Manuel Lemos

Check out the full article to read their thoughts on why managed cloud hosting is the way forward.

tagged: managed cloud hosting recommendation community member quotes

Link: https://www.cloudways.com/blog/why-managed-hosting-is-better/

Delicious Brains:
Our Struggles to Stay Healthy While Working From Home Part 2
Feb 03, 2017 @ 10:43:18

The Delicious Brains blog has an interesting post, the second part of a series, talking about staying healthy - both mentally and physically - while working from home. In this new article several people share their own ideas, habits and experiences that have helped them keep up while being a part of a remote team.

It’s been just over a year since we posted about our struggles to stay healthy whilst working from home in a remote team. In that time we’ve had two new members join the team, one full company meetup and one regional, one new baby, two engagements and three home moves, so I thought it was about time we give an update on where we are with our health. Ian did promise an update 6 months after the last, but don’t hold it against him.

He post shares thoughts and comments from eight different people, each with their own unique experiences and recommendations (what works for some doesn't for others). Most of the suggestions include recommendations of regular exercise, making mental health a priority and better sleep habits.

tagged: health remote working team recommendation exercise sleep mentalhealth

Link: https://deliciousbrains.com/struggles-stay-healthy-working-from-home-part-2/

DaedTech Blog:
Avoid these Things When Logging from Your Application
Dec 06, 2016 @ 11:53:48

On the DaedTech blog Erik Dietrich has written up a list of a few things he suggests avoiding when using logging functionality in your application. The suggestions range from the actual contents of the message out to some logging best practices.

It seems almost strange to talk about avoiding things while logging. After all, logging is your last line of defense or your salvation in many cases. [...] Well, it turns out that, while logging may be a highly inclusive activity in terms of what should be included, there are ways to create problems. You want to be liberal in terms of what you log, but judicious and wise in terms of how you log it. You don’t want to indulge in a feckless free-for-all when it comes to the calls you make to your application’s logger.

So what are these problems, and how to avoid them? Let’s take a look at some things that can come back to bite you.

He points out the following (common) bad practices he has seen during his time developing:

  • Forgetting Context
  • Cryptic Codes
  • Spamming the Log File
  • Unsafe Logging Calls
  • Mixing Application Logic with Logging

He ends the post with a suggestion of "sensible logging" - capturing as much meaningful information as possible while not overdoing it. Logs can be a powerful ally when hunting down an issue or trying to provide documentation of a security issue. Log wisely, log on purpose.

tagged: logging practices recommendation avoid list

Link: http://www.daedtech.com/avoid-things-logging-application/

SitePoint PHP Blog:
9 Hot Tips to Enhance Your Spark Experience
Sep 29, 2016 @ 10:59:26

The SitePoint PHP blog has posted an article for the Laravel Spark users out there, sharing their top nine tips for getting the most out of the popular "boilerplate" tool.

A while ago, I wrote about a product I wanted to build, to allow easy remote backups for Pagekit sites. I’ve been working on it (periodically) since then, and have come across a few interesting bits of advice.

I decided to use Laravel Spark as the foundation for the product, and I thought it would be helpful to share the advice. Whether you’re just starting your Spark app, or are in maintenance mode, I think you’ll find some of these tips useful!

His tips cover a wide range of the product's features:

  • You Don’t Have to Keep All the Base Files
  • Use Simple Repositories
  • Don’t use caret (^) Laravel dependencies
  • Host on Forge
  • Re-Arrange Middleware

Each of these comes with a description and, where appropriate, a bit of code to help clarify the point.

If you’re on the fence about trying Spark, I can recommend it. It’s given my product a head-start it wouldn’t have had otherwise. Hopefully these tips will save you even more time.
tagged: tips top9 laravel spark usage recommendation example

Link: https://www.sitepoint.com/9-hot-laravel-spark-tips/

Intracto Blog:
How to save a kitten by writing clean code
Jun 03, 2016 @ 12:52:50

On the Intracto blog there's a new post from Joeri Timmermans talking about writing clean code with some good suggestions you can easily incorporate into your current processes.

So you came here to save a kitten? That's wonderful, but the real reason we're both here is to talk about clean code. In this blog post I'll be sharing some of my personal experiences and tips. But before we dive into the tips and tricks part, let's talk about what we, as developers, do and why we do it.

He touches on several topics including:

  • Best vs Fastest
  • Reading vs Writing
  • File and Folder Organization
  • Naming [conventions and clarity]

He also makes the recommendation to "return often", keep things DRY and makes a few recommendations of PHP-specific tools that can help.

tagged: clean code recommendation process development opinion

Link: http://blog.intracto.com/how-to-save-a-kitten-by-writing-clean-code

SitePoint PHP Blog:
PredictionIO and Lumen: Building a Movie Recommendation App (Part 2)
Apr 06, 2016 @ 14:30:42

The SitePoint PHP blog has posted the next part in their series about using Predictive.IO and Lumen to create a simple movie recommendation application (part one is here). In this second part of the series they build on the environment created in the previous article and start developing the actual application.

In the intro, we covered the basics of PredictionIO and installed its dependencies. In this part, we’re going to build the movie recommendation app.

The tutorial starts with a brief configuration section to ensure you have your API keys configured correctly. Then it gets into the code:

  • Pulling the data from the Movie DB API
  • Creating the endpoint to perform the endpoint
  • Picking random movies to show the user and recording their reactions (like/dislike)
  • Creating the endpoint to recommend movies

Finally they share the configuration to set up the application deployment and train it with some example content you provide through some basic interactions. Finally they help you set up a cron job to train and redeploy the application every five minutes with the latest interaction information.

tagged: tutorial predictionio series part2 movie recommendation implement application

Link: http://www.sitepoint.com/predictionio-and-lumen-building-a-movie-recommendation-app/

SitePoint PHP Blog:
PredictionIO: Bootstrapping a Movie Recommendation App
Apr 05, 2016 @ 11:22:11

On the SitePoint PHP blog they've posted a tutorial showing you how to use the Prediction.IO server to create a movie recommendation application. Prediction.io is "an open source Machine Learning Server built on top of state-of-the-art open source stack for developers and data scientists create predictive engines for any machine learning task".

In this tutorial, I’m going to walk you through PredictionIO, an open-source machine learning server, which allows you to create applications that could do the following: recommend items (e.g. movies, products, food), predict user behavior, identify item similarity and rank items.

You can pretty much build any machine learning application with ease using PredictionIO. You don’t have to deal with numbers and algorithms and you can just concentrate on building the app itself.

The tutorial, the first part of a series, refreshes some older instructions for getting the Prediction.IO system up and running. He walks you through the creation of an AWS instance for the server a few different ways (Vagrant, Docker, etc). He then talks about the use of the Movie API from MovieDB and the two parts of the application that will be implemented on top of it: a learning phase and a recommendation phase. They show how to use Prediction.io to create the recommendation engine and make the new application on top of it. He helps you install some dependencies to use in the PHP side of the application and briefly explains what they're for.

This wraps up part one of the series. In the second part he starts putting this all to use and creates the PHP functionality to lay on top of the machine learning engine and handle learning and recommendations for users.

tagged: predictionio machinelearning server tutorial movie recommendation application part1 series

Link: http://www.sitepoint.com/predictionio-bootstrapping-a-movie-recommendation-app/