PHP CompatInfo

Amazing tool to quickly check the minimum required PHP version of your application. You can also learn the new and deprecated things between the PHP versions while looking what is making your requirements to higher, etc.

Still running your unit tests with a couple of different PHP versions is also recommended.

PHP CompatInfo.

Docker image with Jenkins CI and full PHP configuration and tools

See it in action here.

Get the source from Github here.

This Docker image follows the http://jenkins-php.org/ configuration for installing Jenkins CI and the PHP testing tools.

It uses Ubuntu 14.04 LTS image.

The PHP 5.5 PPA by Ondřej Surý is used for the latest version of PHP and its extensions.

For Jenkins the Debian deb repo is used.

The deb mirrors.ubuntu.com/mirrors.txt is used for faster local updating/downloading of the apt packages.

DEBIAN_FRONTEND=noninteractive and apt-get -qq are used for automatic silent installs.

date.timezone=Europe/Sofia and ;disable_functions= are set in php.ini

After Jenkins is installed and needs its first update there is a wait of 60 seconds until the update script is called.

The Jenkins server is first updated before installing the plugins.

Currently these plugins are installed: checkstyle cloverphp crap4j dry htmlpublisher jdepend plot pmd violations xunit.

And these PHP testing tools are installed globally through Composer: phpunit/phpunit, squizlabs/php_codesniffer, phploc/phploc, pdepend/pdepend, phpmd/phpmd, sebastian/phpcpd, theseer/phpdox.

Composer installs the tools in /home/jenkins/.composer and makes all of them available globally in /usr/local/bin/.

Composer is set to use git to fetch the dependencies to avoid the GitHub API rate limits.

Port 8080 is exposed and available. This is the default Jenkins’ port.

The default CMD in the image is: “sh /run_all.sh”

Install

First download the image:

docker pull iliyan/jenkins-ci-php:1.0.0

And run it:

Locally:

docker run -d --name jenkins -p localhost:8080:8080 iliyan/jenkins-ci-php:1.0.0

Visible from outside on a hosting server:

docker run -d --name jenkins -p VISIBLESERVERPORT:8080 iliyan/jenkins-ci-php:1.0.0

Alternative usage of the PHP testing tools:

You can download all of the tools from your project’s composer.json file adding them for example in the dev secion like I did here and here.

How to Read and Improve the C.R.A.P Index of your code | Levihackwith.com

I’ve been looking at the CRAP index on my jenkins php configuration inside the Crap4J pages and found this blog post to be helpful about what CRAP is and how to deal with it (use it to your advantage).

How to Read and Improve the C.R.A.P Index of your code | Levihackwith.com.

Creating your first Composer/Packagist package – Junior Grossi

I am going to create my first Packagist package and found this tutorials useful:

Creating your first Composer/Packagist package – Junior Grossi.

and:

http://knpuniversity.com/screencast/question-answer-day/create-composer-package

as well as:

http://grossi.io/2013/testing-your-packagistcomposer-package-locally/

2 websites I am using for language learning

These are my all time favorite websites for language learning:

I’ve started my online language learning with this one: Learn Japanese the Hard Way: http://www.textfugu.com/
Koichi is The Man. He has a successful blog about everything Japanese at http://www.tofugu.com/ and he successfully created this self language learning site for all Japanese loving people like me! :)
I’ve bought the life-time subscription and I am very happy about that!

The second self language learning website I’ve found some time ago and adore is: http://www.rocketlanguages.com/
As you can see there are enormous amount of different languages one may(must?) learn there!
You can even learn in your native language if it’s one of the most used in the world.
This one is not cheap on first sight but after passing the demo for 6 days I’ve realized that I’ve finally found what I was looking for and I’ve bought Everything about the language I was interested with! All courses, all levels! And since then I can only improve my knowledge!

There are other websites and mobile/desktop applications that have to be mentioned here but I wanted to accent on the main websites one should use and everything else will be to compliment his or her language study.