Tools

Tools

#php
PHP static analysis - Exakat
PHP static analysis - Exakat
"Exakat provides a real time PHP static analyser from PHP 5.2 to PHP 7.2-dev that check PHP version compliance, spot security risks, reinforce development best practices or validate your code in continus integration based on a PHP expertise knowledge base with more than 300 analyzers."
PHP static analysis - Exakat
ricbra/rabbitmq-cli-consumer: Consume RabbitMQ messages into any cli program
ricbra/rabbitmq-cli-consumer: Consume RabbitMQ messages into any cli program

"If you are a fellow PHP developer just like me you're probably aware of the following fact: PHP really SUCKS in long running tasks.

When using RabbitMQ with pure PHP consumers you have to deal with stability issues. Probably you are killing your consumers regularly just like me. And try to solve the problem with supervisord. Which also means on every deploy you have to restart your consumers. A little bit dramatic if you ask me.

This library aims at PHP developers solving the above described problem with RabbitMQ. Why don't let the polling over to a language as Go which is much better suited to run long running tasks."

ricbra/rabbitmq-cli-consumer: Consume RabbitMQ messages into any cli program
DependencyWheel: An Interactive Visualization Of Package Dependencies
DependencyWheel: An Interactive Visualization Of Package Dependencies
"Modern development use package managers (composer, npm, bundler, etc.). Applications depend on a large number of packages, which depend themselves on other packages. The Dependency Wheel visualization attempts to reveal the entire dependency tree of any PHP library using Composer for dependency management. Each chord in the disc represents a dependency. Try hovering on packages to mask other dependencies. All rendering is done client-side, in JavaScript. Built with d3.js"
DependencyWheel: An Interactive Visualization Of Package Dependencies
phpro/grumphp: A PHP code-quality tool
phpro/grumphp: A PHP code-quality tool

"Sick and tired of defending code quality over and over again? GrumPHP will do it for you! This composer plugin will register some git hooks in your package repository. When somebody commits changes, GrumPHP will run some tests on the committed code. If the tests fail, you won't be able to commit your changes. This handy tool will not only improve your codebase, it will also teach your co-workers to write better code following the best practices you've determined as a team.

GrumPHP has a set of common tasks built-in. You will be able to use GrumPHP with a minimum of configuration."

phpro/grumphp: A PHP code-quality tool
Glide - HTTP based image manipulations
Glide - HTTP based image manipulations
"Glide is a wonderfully easy on-demand image manipulation library written in PHP. It’s straightforward API is exposed via HTTP, similar to cloud image processing services like Imgix and Cloudinary. Glide leverages powerful libraries like Intervention Image (for image handling and manipulation) and Flysystem (for file system abstraction)."
Glide - HTTP based image manipulations
d11wtq/boris
d11wtq/boris

"Python has one. Ruby has one. Clojure has one. Now PHP has one, too. Boris is PHP's missing REPL (read-eval-print loop), allowing developers to experiment with PHP code in the terminal in an interactive manner. If you make a mistake, it doesn't matter, Boris will report the error and stand to attention for further input.

Everything you enter into Boris is evaluated and the result inspected so you can understand what is happening. State is maintained between inputs, allowing you to gradually build up a solution to a problem."

d11wtq/boris
sobstel/metaphore
sobstel/metaphore

"PHP cache slam defense using (memcached) semaphore to prevent dogpile effect (aka clobbering updates, stampending herd or Slashdot effect).

Problem: too many requests hit your website at the same time to regenerate same content slamming your database. It might happen after the cache was expired.

Solution: first request generates new content while all the subsequent requests get (stale) content from cache until it's refreshed by the first request."

sobstel/metaphore
Magallanes — A PHP Deployment Tool
Magallanes — A PHP Deployment Tool
"Magallanes is a deployment tool for PHP applications built with PHP itself, it's quite simple to use, manage and extend. It will get your application to a safe harbor. You can instruct Magallanes to deploy your code to all the servers you want (via rsync over ssh), and run tasks for that freshly deployed code. You can also instruct Magallanes to run tasks before the deployment starts (e.g: a vendors install) and after the deployment is done (e.g: clear some caches)."
Magallanes — A PHP Deployment Tool
Spec BDD with phpspec — phpspec documentation
Spec BDD with phpspec — phpspec documentation

"phpspec is a development tool, designed to help you achieve clean and working PHP code by using a technique derived from test-first development called (spec) behaviour driven development, or SpecBDD.

The technique consists of describing the next object behaviour (spec) you are about to implement, using a tool like phpspec, then writing just enough code to quickly satisfy that specification and finally stopping to refactor the last increment, allowing the emergent design to guide the direction. This is done in small iterative steps."

Spec BDD with phpspec — phpspec documentation
virtPHP
virtPHP

"virtPHP is a tool for creating and managing multiple isolated PHP environments on a single machine. It's like Python's virtualenv, but for PHP.

virtPHP creates isolated environments so that you may run any number of PHP development projects, all using different versions of PEAR packages and different PECL extensions. You may even specify a different version of PHP, if your system has various installations of PHP.

To install multiple versions of PHP, we suggest taking a look at the phpenv and php-build projects and using virtPHP with them, to manage multiple virtual PHP environments.

Note: virtPHP is currently only targeted to command line php (php-cli) for *nix based systems."

virtPHP