PHP

PhpStorm PHPCodeSniffer and… CodeIgniter style guide

This article is related to my previous one about setting up PHPCodeSniffer with CodeIgniter coding standards.

Installation on Linux boxes is pretty yeasy:

sudo pear channel-update pear.php.net
yum install php-pear-PHP-CodeSniffer php-phpunit-phpcpd

On Mac OS X you have couple options. Pear or Homebrew:

brew install php-code-sniffer

And following that, on regular boxes CodeSniffer will be here:

/usr/share/pear/PHP/CodeSniffer/Standards

on Mac OS CodeSniffer will be located here:

/usr/lib/php/pear/PHP/CodeSniffer/Standards or… /usr/local/Cellar/php-code-sniffer/1.5.6/CodeSniffer/Standards

CodeIgniter standard can be downloaded from this location  https://github.com/thomas-ernest/CodeIgniter-for-PHP_CodeSniffer

PHPUnit and CodeIgniter 3.0

PHPUnit and CodeIgniter 3.0

Quick tutorial how to setup proper unit testing with PHPUnit and CodeIgniter 3.0.
We need couple elements

  1. CodeIgniter – we are working with version 3.0rc3
  2. PHPUnit  – latest one

If you don’t have phpunit installed globally, you can go with composer, just add section to your composer.json

{
  "require-dev": {
    "phpunit/phpunit": "4.1.*"
  }
}

and then
composer.phar install
and after while we have
./vendor/bin/phpunit
working phpunit.

let’s create phpunit.xml.dist

next step will require create separate bootstrap file for PHPUnit. Just copy cp index.php tests/Bootstrap.php
We have to make 2 small amends.

Apache and PHP on OS X Yosemite

Apache and PHP on OS X Yosemite

It’s just a short instructions how to run Apache and PHP on OS X Yosemite.

PHP and Apache are already there – just need to run Apache and enable PHP. Video showing up whole process is available here:

Here you can check out exact changes.

Firsting first – we have to run Apache

sudo apachectl start

Then make some changes in httpd.conf file

sudo nano /etc/apache2/httpd.conf

HHVM on Amazon EC2 in 2 minutes

HHVM on Amazon EC2 in 2 minutes

Probably you already heard about  HHVM . As on their website:

HHVM is an open-source virtual machine designed for executing programs written in Hack  and PHP . HHVM uses a just-in-time (JIT) compilation approach to achieve superior performance while maintaining the development flexibility that PHP provides.

Using simple terms – HHVM allows you run scripts written in PHP but much, much more faster. Obviously you the main purpose of HHVM is to run HACK language, but it works pretty good with PHP itself.

PHP, work queues

PHP, work queues

Biggest pain point in PHP is lack of asynchronous calls. The only reasonable way is to use some kind of “backend” processing and task list to execute. Some people use cron to run given script each n-minutes and execute tasks. But there is a little bit more “professional” approach.  Beanstalk is a simple, fast work queue. Idea is pretty simple – you can just throw tasks into queue and then have background worker which is pulling data from pipe and executes task.

Couple ideas: sending emails, processing images, making heavy queries into database. But the best part of it – you don’t have to use PHP for back processing. It could be anything, because protocol us universal and worker and client doesn’t have to be in the same language. So you can schedule task in PHP, and run it in Go. I’m not going too much into details. Just run some examples.