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

Cal Evans:
Mautic Step 2 – Cron Jobs
Jul 11, 2017 @ 09:16:40

Cal Evans has posted the second part of his series as he works through the installation and configuration of the Mautic PHP-based marketing automation tool. In this part of the series he focuses on cron jobs.

This time we are talking about the cron jobs necessary to make Mautic run. Mautic has several commands that are necessary to execute that are not web based. They are run from the command line manually (dumb idea) or using a scheduler like cron on Linux. As with my “Installing Mautic” post, this post is only interesting to those of you self-hosting Mautic.

There is a great manual page on this titles “Cron Jobs”. It tells you a lot of what I’ll tell you here. If you haven’t read it yet, I highly recommend you start there.

He talks about each of the four jobs that, if you're using the system yourself, will want to run often: one for handling segments, two for campaigns and another for sending messages. He also talks about the main problem he ran into during his work with the cron jobs - permissions issues. He shares how he resolved this issue with an extra line in his crontab (after changing the user they ran as) and ends with some extra advice against wide open permissions.

tagged: mautic series part2 install configure cronjob cron tutorial marketing automation

Link: https://blog.calevans.com/2017/07/10/mautic-step-2-cron-jobs/

Symfony Finland:
Drop-dead simple SASS builds in Symfony Flex with Webpack Encore
Jul 10, 2017 @ 10:17:42

The Symfony Finland site has an article posted introducing you to Symfony Encore, a tool that makes it simpler to manage frontend libraries and dependencies via Webpack.

Symfony Encore is a wrapper for the JavaScript module bundler Webpack. Webpack is used to manage Front End assets like JavaScript, CSS and image for browser consumption, often with conversion step from a source format like SASS. Encore provides an opinionated way to add Webpack to your Symfony projects.

[...] Earlier this year I experimented with sharing a state object with Symfony and different front end tools. Recently I ported the Symfony 3 application to Symfony Flex. Now I will continue the evolution of the app by adopting Symfony Encore to the project.

The article briefly introduces Encore and what functionality it provides before getting to the installation (via yarn) and configuration that it installs by default. The post then goes through the setup of SASS, using assets in your pages and running builds.

tagged: symfony tutorial encore webpack assets build sass install configure

Link: https://symfony.fi/entry/drop-dead-simple-sass-builds-in-symfony-flex-with-encore-webpack

Laravel News:
Homeboy Allows You to Automate Adding Sites to Homestead
Jul 10, 2017 @ 09:27:32

On the Laravel News site there's a quick post highlighting a tool that can be use to help automate adding sites to your local Homestead environment - Homeboy.

Homeboy is a new package for Laravel Homestead that allows you to add a new local development site quickly. Once you run the command line tool, it will update your host file to point your dev domain, update your Homestead.yaml file to include mapping to for the new project and create a database mapping, and finally, it’ll re-provision Vagrant.

The post also includes a screencast the project has shared showing the tool in use (though the choice of soundtrack is questionable). It basically works as a shortcut to adding the changes to the files yourself, making it simpler to spin up new sites and environments quickly.

tagged: homeboy laravel homestead environment setup configure tool

Link: https://laravel-news.com/homeboy-allows-you-to-automate-adding-sites-to-homestead

Joe Ferguson:
Install and Configure PHP 7.1 on Cloud 9 Workspaces
Jul 07, 2017 @ 09:32:03

Joe Ferguson has a new post to his site showing you how to install PHP 7.1 on a Cloud9 workspace to get the latest features of PHP (they run PHP 5.5 by default).

July 8th I’m giving a general PHP training day at the Fedex Institute of Technology and because I’m targeting absolute beginners I wanted to use Cloud 9. Cloud 9 is an online editor that gives you a full linux workspace to build your project in. The first thing I noticed was the container Cloud 9 provides is running PHP 5.5.

He provides the contents of the bash script you can run via the Cloud9 interface that will install PHP 7.1 and several dependencies. It also updates a few configurations to work with PHP 7.1 and restarts the Apache instance to have it all take effect. He's posted this as a repository on GitHub to make it even easier and shows how to set up the Cloud9 workspace using it as a base.

tagged: install configure cloud9 workspace install php71 tutorial

Link: https://www.joeferguson.me/install-and-configure-php-7-1-on-cloud-9-workspaces/

CloudWays Blog:
Generate Documentations For PHP Projects Through Sami
Jul 06, 2017 @ 13:47:46

On the CloudWays blog there's a new tutorial posted showing you how to create project documentation with Sami, a tool that takes the DocBlock information already in your code and makes it into something more human-readable.

Developers regularly create large blocks of code that form parts of API’s and other mid to large level projects. While there is a (more or less) agreed upon convention for code writing, every developer has a personal comment and documentation writing standards. Some add small cryptic notes while others attach full-length Google Docs that document the method or class in painful details. This problem becomes very severe when the number of end users increases and there is a need for proper documentation of the project.

[...] DocBlocks are important because they are used by a well known Symfony document generator package called Sami. Very popular in PHP community, Sami also provides the ability to create custom twig templates and work with versioned documentation on GitHub. In this article, I will use Sami and a GitHub project Sync Mysql data with Elasticsearch to automatically generate documentation.

The tutorial then helps you get the Sami package installed via Composer and how to execute it to ensure it's working as expected. Next it points you to a project to clone to help with the MySQL-to-Elasticsearch interface. It then helps with the creation of a configuration file, the results of a build and some additional tips for customizing the configuration for your environment.

tagged: tutorial documentation generation sami docblock install configure theme

Link: https://www.cloudways.com/blog/generate-documentations-for-php-projects-through-sami/

Joe Ferguson:
Using Homestead with CakePHP Framework
Jul 03, 2017 @ 09:10:09

In a new post to his site Joe Ferguson shows you how to use the Homestead VM to run a CakePHP instance for local testing and development needs.

Interested in checking out CakePHP? You can easily spin up a new CakePHP project and add Homestead just as easy as any other modern PHP project.

He then walks you through the setup process:

  • Creating a new project
  • Starting up Homestead
  • Changing the webroot to match CakePHP's needs
  • Bringing up the VM
  • Configuring the database

Each step is accompanied by screenshots and/or console output to help you ensure you're on the right track.

tagged: homestead cakephp framework tutorial install configure

Link: https://www.joeferguson.me/using-homestead-with-cakephp-framework/

SitePoint PHP Blog:
Getting Started with Sulu CMS on Vagrant The Right Way
Jun 05, 2017 @ 15:15:10

The SitePoint PHP blog has posted a tutorial showing you how to get started with Sulu CMS and Vagrant. Sulu CMS is a content management system based on Symfony.

In this tutorial, we’ll learn how to get started with Sulu CMS the right way – meaning, we’ll deploy a Sulu “Hello World” instance using Homestead Improved and be mindful of performance issues and configuration values while we’re at it. We’ll also cover some common pitfalls, all in an attempt to get a good base set up for future Sulu tutorials. It is recommended you follow along with the instructions in this post and drop a comment with any problems you might run into.

The tutorial walks you through the installation of the Sulu CMS instance but you'll need to have Vagrant already installed and running. Next up they show you how to configure the system to work along with Vagrant including database setup, running the build and ensuring the system is up and running. There's a bit at the end with some pitfalls and FAQs to help you get started on the right foot.

tagged: sulucms vagrant tutorial install configure

Link: https://www.sitepoint.com/getting-started-sulu-cms-vagrant-right-way/

Hackernoon.com:
Laravel in Docker
May 05, 2017 @ 12:13:32

On the Hackernoon.com site they've posted a tutorial showing you how to set up a Docker image of a Laravel application to help speed up your development using the framework and standardize the environment it lives in.

With this article you’ll learn how to prepare a Docker image of a Laravel application, push it to the registry, and use Docker in Continuous Delivery.

The post starts with a brief introduction of the two technologies at play, the Laravel framework and Docker, and what they provide. The tutorial then walks you through the entire process of setup, configuration and deployment of the Docker image:

  • Install Docker
  • Write a Dockerfile (including the install of Laravel)
  • Build Docker image (and Run)

At this point you have the image set up and ready to serve Laravel requests so they move on to sharing the image out on a Docker registry. In this case they opt to deploy it to hub.docker.com and use the login and push commands to quickly and easily share your creation. Finally they provide some use cases for this kind of deployment including creating standard development environments, using them for testing and keeping a consistent environment between development, staging and production.

tagged: laravel framework docker tutorial configure deploy dockerhub environment

Link: https://hackernoon.com/laravel-in-docker-ceed4465352

Hackernoon.com:
How to configure PHPStorm to use PHP-CS-Fixer
Apr 25, 2017 @ 10:47:46

On the Hackernoon site there's a recent tutorial showing you how to hook the PHP-CS-Fixer tool into PhpStorm for easy execution during development rather than after.

The PHPStorm IDE by JetBrains is probably one of my favorite editors. It has its flaws (constant indexing…) but overall its a great tool for me. However, my focus today is not on PHPStorm per say but rather how to add the awesome functionality of using project page. Depending on your platform you will need to make some decisions, namely how you configure the rules of PHP-CS-Fixer. I am currently on Windows but I will try to make sure these instructions work in both *nix and Windows environments.

He then walks you through some prerequisites (both pieces of software installed basically) and the decisions to make based on your platform. He then provides screenshots and descriptions showing where to go in the PhpStorm IDE to add the PHP-CS-Fixer as a new "Tool", the working directory to use and how to set up a keymap to execute the tool. He includes an example of the output when things are correctly configured and working together.

tagged: configure phpstorm phpcs phpcsfixer tool tutorial install combine setup ide

Link: https://hackernoon.com/how-to-configure-phpstorm-to-use-php-cs-fixer-1844991e521f

SitePoint PHP Blog:
How Can I Use Laravel Envoyer or Deployer with SemaphoreCI?
Apr 04, 2017 @ 11:16:59

The SitePoint PHP blog has posted a tutorial showing you how to use Laravel Envoyer or Deployer with SemaphoreCI and popular continuous integration service.

Test automation, continuous integration, and continuous delivery are quite widespread in the community now. This brought to life multiple services trying to make the process more enjoyable and less overwhelming for developers, so they can focus on delivering software instead of building/configuring tools to do that. One of those services is SemaphoreCI.

In this article, we’re going to cover how to use our own deploy scripts and tools to continue the deployment process after a successful test.

They then show you how to create the Deployer configuration file to make the deployment to the remote Digital Ocean servers of a Laravel-based application. Most of the steps are in copying the local files up to the remote server as a "staging" environment. He then hops back over to the SemaphoreCI service to create the deployment plan for the project using the "deployer.phar" command line tool, linking it to the push of new code. They then move to the same process just defined via the Laravel Envoyer tool and a similar command line call.

tagged: laravel envoyer deployer semaphoreci tutorial setup configure plan

Link: https://www.sitepoint.com/how-can-i-use-laravel-envoyer-or-deployer-with-semaphoreci/