Skip to content

Latest commit

 

History

History
102 lines (58 loc) · 3.36 KB

Toolset.md

File metadata and controls

102 lines (58 loc) · 3.36 KB

(If there are no experience with some specific tool, you are welcomed to name some alternatives)

Junior Level

Linting with php build-in linter

Code style checks with PHPCS (*)

Dependency management with Composer (*)

  • Ways to autoload dependencies in Composer;
  • composer.json vs composer.lock

Live templates in IDE

Error handling with Whoops

Carbon: a simple PHP API extension for DateTime

Debugging app with Kint

Editorconfig as a way to share common settings between different IDEs and editors (*)

Generation of universally unique identifiers with uuid library

Experience with one of the following template engines: Twig, Plates, Aura View etc

Middle Level

Code complexity check with PHPMD

Code debug with xDebug. (*)

  • Possibilities
  • Simple and conditional breakpoints.

Code profiling with xDebug

Code profiling with XHProf

Fake data generation with Faker

PSR-7 HTTP message interfaces: Laminas Diactoros (*)

PSR-15: HTTP Server Request Handlers PSR-15 middlewares

Experience with one of the following DB migration tools: Phinx, Doctrine Migrations etc (*)

Active Record ORM: Eloquent or similar (*)

Data Mapper ORM: Doctrine or similar (*)

Logging with Monolog (*)

Loading environment variables from .env file with PHP dotenv (*)

Experience in setting up a web-server: Apache or Nginx

  • Apache + mod_php vs Nginx + php-fpm

Running scripts with cron (*)

Developing composer libraries as a way to reuse code.

Setting up VCS-hooks to run some tools (like pre-push hook for PHPUnit and PHPCS)

Composer scripts, events, hooks

Makefile as a way to share reusable scripts

Working with queues using RabbitMQ, Kafka, Gearman, etc

Experience with one of the following routers: Aura Router, Route (php league) etc

Senior Level

Setting up a consistent development environment using virtualization (*)

  • Vagrant
  • Docker:
    • Dockerfiles, pure and based on existing images
    • docker-compose to join separate images into encapsulated network

Experience with one of the following CI servers: Jenkins/Hudson/Bamboo/TeamCity etc

Deployment with Deployer or similar

Experience with one of the hosted CI servers: TravisCI, ScrutinizerCI etc

Experience with one of the following DI Containers: Laravel service container, Symfony service container, Pimple, Container, PHP-DI etc

Memcache (*)

Filesystem abstraction with a Flysystem (The PHP League)

Working with API: Swagger, ApiDoc, SAMI etc

Event-driven programming with ReactPHP

Using Supervisord for php scripts

Aggregation profiling using Live Profiler(lifeprof), New Relic, Pinba 2

Stats aggregation using StatsD, Graphite, Datadog, Grafana, etc

Monolog aggregation services. Logstash, Rapid7, etc

Links: